From d158fd8b6dd0e30fc76a3a697f557db7d3994e6d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 4 Apr 2022 10:47:05 +0800 Subject: [PATCH] 1 --- webapp/controller/MarketController.class.php | 28 +++++--------------- webapp/models/BoxOrder.php | 2 ++ webapp/services/MarketService.php | 3 +++ 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index 276726d4..259e263f 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -202,29 +202,15 @@ class MarketController extends BaseController { 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime() ); - if ($itemMeta['type'] == mt\Item::BLIND_BOX_TYPE) { - for ($i = 1; $i <= 3; ++$i) { - if ($i <= 3) { - $tokenId = phpcommon\setOrderIdSubIdx($orderId, $i); - $tokenType = 0; - $fieldsKv['bc_mint_need' . $i] = 1; - $fieldsKv['bc_mint_tokenid' . $i] = $tokenId; - $fieldsKv['bc_mint_itemid' . $i] = $itemId; - $fieldsKv['bc_mint_token_type' . $i] = $tokenType; - } - } - } else { - $tokenType = Nft::getTokenType($itemMeta); - if ($tokenType == Nft::NONE_TYPE) { - myself()->_rspErr(500, 'server internal error'); - return; - } else { - $i = 1; + $items = array(); + MarketService::openBox($itemMeta, $items); + for ($i = 1; $i <= BoxOrder::MAX_NFT_NUM; ++$i) { + if ($i <= count($items)) { $tokenId = phpcommon\setOrderIdSubIdx($orderId, $i); - $fieldsKv['bc_mint_need' . $i] = 1; $fieldsKv['bc_mint_tokenid' . $i] = $tokenId; - $fieldsKv['bc_mint_itemid' . $i] = $itemId; - $fieldsKv['bc_mint_token_type' . $i] = $tokenType; + $fieldsKv['bc_mint_need' . $i] = $items[$i]['need']; + $fieldsKv['bc_mint_itemid' . $i] = $items[$i]['item_id']; + $fieldsKv['bc_mint_token_type' . $i] = $items[$i]['token_type']; } } if (MarketService::isTestMode()) { diff --git a/webapp/models/BoxOrder.php b/webapp/models/BoxOrder.php index 8a976e6e..e85fec80 100644 --- a/webapp/models/BoxOrder.php +++ b/webapp/models/BoxOrder.php @@ -7,6 +7,8 @@ use phpcommon\SqlHelper; class BoxOrder extends BaseModel { + const MAX_NFT_NUM = 3; + public function getSoldNum($batchIdx) { $row = myself()->_getMarketMysql()->execQueryOne diff --git a/webapp/services/MarketService.php b/webapp/services/MarketService.php index 9c3febfd..b4a0d817 100644 --- a/webapp/services/MarketService.php +++ b/webapp/services/MarketService.php @@ -287,6 +287,9 @@ class MarketService extends BaseService { } } } + if (count($items) > BoxOrder::MAX_NFT_NUM) { + $items = array(); + } } else { $tokenType = Nft::getTokenType($itemMeta); if ($tokenType != Nft::NONE_TYPE) {