diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index f151aae3..debc1686 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -10,6 +10,10 @@ require_once('mt/Parameter.php'); require_once('models/BoxOrder.php'); require_once('models/Nft.php'); +require_once('models/Hero.php'); +require_once('models/Gun.php'); +require_once('models/Chip.php'); +require_once('models/Fragment.php'); require_once('models/BuyRecord.php'); require_once('services/MarketService.php'); @@ -24,6 +28,7 @@ use models\Nft; use models\Hero; use models\Gun; use models\Chip; +use models\Fragment; use models\BuyRecord; use services\MarketService; use services\LuckyBoxService; @@ -537,6 +542,41 @@ class MarketController extends BaseController { myself()->_rspOk(); } + private function getNftListByAccountAndType($account, $type) { + $nfts = array(); + switch ($type) { + case 1: { + $rows = Nft::getNftListByType($account, $type); + foreach ($rows as &$row) { + $nftDb = Nft::getNft($row['token_id']); + $row['info'] = Nft::toDto($nftDb); + $row['detail'] = Hero::toDtoInfo(Hero::findByTokenId2($row['token_id'])); + } + } break; + case 2: { + $rows = Nft::getNftListByType($account, $type); + foreach ($rows as &$row) { + $nftDb = Nft::getNft($row['token_id']); + $row['info'] = Nft::toDto($nftDb); + $row['detail'] = Gun::toDtoInfo(Gun::findByTokenId2($row['token_id'])); + } + } break; + case 3: { + $rows = Nft::getNft1155List($account, $type); + foreach ($rows as &$row) { + $row['detail'] = Chip::toDto(Chip::getChipByTokenId($row['token_id'])); + } + } break; + case 4: { + $rows = Nft::getNft1155List($account, $type); + } break; + default: { + $rows = array(); + } + } + return $rows; + } + public function listSellNfts() { $account = getReqVal('account', ''); @@ -616,6 +656,8 @@ class MarketController extends BaseController { $token = getReqVal('token', ''); $start = getReqVal('start', 0); $page_size = getReqVal('page_size', 10); + $order_method = getReqVal('order_method', 0); + $order_asc = getReqVal('order_asc', 1); $type = getReqVal('type', 1); $job_filters = getReqVal('job_filters', ''); $job_filter_array = explode('|', $job_filters); @@ -624,7 +666,9 @@ class MarketController extends BaseController { $lv_filter = getReqVal('lv_filter', 15); $account = '0x9a4d9dd2bfcad659975f0f5a480625c7929e9385'; - $rows = Nft::getNftListByType($account, $type); + $rows = $this->getNftListByAccountAndType($account, $type); + // error_log(json_encode($rows[0])); + // $rows = Nft::getNftListByType($account, $type); $total = count($rows); $page_end = $start + $page_size; @@ -638,29 +682,6 @@ class MarketController extends BaseController { $nfts = array(); for ($x = $start; $x < $page_end; $x++) { $row = $rows[$x]; - $nftDb = Nft::getNft($row['token_id']); - if (!$nftDb) { - myself()->_rspErr(1, 'nft not exists'); - return; - } - $nft = Nft::toDto($nftDb); - - $t = $row['token_type']; - switch($t) { - case Nft::HERO_TYPE: { - - } break; - case Nft::EQUIP_TYPE: { - - } break; - case Nft::CHIP_TYPE: { - - } break; - default: { - - } - } - $row['details'] = $nft; array_push($nfts, $row); }