From 686c953e5db869876118b91042377602c8ced964 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 31 Mar 2022 10:05:15 +0800 Subject: [PATCH] 1 --- sql/marketdb.sql | 1 + webapp/controller/GMController.class.php | 46 ++++++++++++++++++++++++ webapp/models/Hero.php | 2 +- webapp/models/Nft.php | 27 ++++++++++++++ 4 files changed, 75 insertions(+), 1 deletion(-) diff --git a/sql/marketdb.sql b/sql/marketdb.sql index d823f375..7f926330 100644 --- a/sql/marketdb.sql +++ b/sql/marketdb.sql @@ -93,6 +93,7 @@ DROP TABLE IF EXISTS `t_nft`; CREATE TABLE `t_nft` ( `idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id', `token_id` varchar(60) NOT NULL DEFAULT '' COMMENT 'token_id', + `token_type` int(11) NOT NULL DEFAULT '0' COMMENT 'nft类型 0:英雄 1:枪支 2:芯片', `game_id` int(11) NOT NULL DEFAULT '0' COMMENT 'game id', `item_id` int(11) NOT NULL DEFAULT '0' COMMENT '道具id', `owner_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'owner_id', diff --git a/webapp/controller/GMController.class.php b/webapp/controller/GMController.class.php index 7b1eab0d..b333538d 100644 --- a/webapp/controller/GMController.class.php +++ b/webapp/controller/GMController.class.php @@ -1,9 +1,12 @@ function () use($params) { $this->addItem($params); }, + '.addnft' => function () use($params) { + $this->addNft($params); + }, '.addtili' => function () use($params) { $this->addTili($params); }, @@ -59,6 +65,7 @@ class GMController extends BaseAuthedController { .addtili 英雄id 体力值 //添加英雄体力 .getsystime //获取服务器时间 .setsystime //设置服务器时间,示例:.setsystime 2021-12-08 00:00:00 +.addnft 道具id //添加nft END )); } @@ -82,6 +89,45 @@ END )); } + private function addNft($params) + { + $itemId = getXVal($params, 0, 0); + $propertyChgService = new services\PropertyChgService(); + $awardService = new services\AwardService(); + + $itemMeta = mt\Item::get($itemId); + if ($itemMeta) { + $tokenType = Nft::getTokenType($itemMeta); + if ($tokenType == Nft::NONE_TYPE) { + myself()->_rspErr(1, 'param item_id error'); + return; + } else { + SqlHelper::insert( + myself()->_getMarketMysql(), + 't_nft', + array( + 'token_id' => myself()->_getNowTime(), + 'token_type' => $tokenType, + 'game_id' => 2006, + 'item_id' => $itemId, + 'owner_address' => myself()->_getOpenId(), + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime(), + ) + ); + } + } else { + myself()->_rspErr(1, 'param item_id error'); + return; + } + + $this->_rspData(array( + 'text' => 'add nft success', + 'award' => $awardService->toDto(), + 'property_chg' => $propertyChgService->toDto(), + )); + } + private function addTili($params) { $heroId = getXVal($params, 0, 0); diff --git a/webapp/models/Hero.php b/webapp/models/Hero.php index 3f081ffa..77f09e11 100644 --- a/webapp/models/Hero.php +++ b/webapp/models/Hero.php @@ -140,7 +140,7 @@ class Hero extends BaseModel { { return self::internalAddHero( myself()->_getMysql($tokenId), - $gunMeta, + $heroMeta, null, $tokenId); } diff --git a/webapp/models/Nft.php b/webapp/models/Nft.php index 932da042..2bc5e0e3 100644 --- a/webapp/models/Nft.php +++ b/webapp/models/Nft.php @@ -2,15 +2,42 @@ namespace models; +require_once('mt/Item.php'); + use mt; use phpcommon\SqlHelper; class Nft extends BaseModel { + const NONE_TYPE = -1; const HERO_TYPE = 0; const EQUIP_TYPE = 1; const CHIP_TYPE = 2; + public static function getTokenType($itemMeta) + { + switch ($itemMeta['type']) { + case mt\Item::HERO_TYPE: + { + return self::HERO_TYPE; + } + break; + case mt\Item::GUN_TYPE: + { + return self::EQUIP_TYPE; + } + break; + case mt\Item::MATERIAL_TYPE: + { + if ($itemMeta['sub_type'] == mt\Item::MATERIAL_CHIP_SUBTYPE){ + return self::CHIP_TYPE; + } + } + break; + } + return self::NONE_TYPE; + } + public function getNftList($account) { $nftList = array();