This commit is contained in:
songliang 2022-12-12 10:45:43 +08:00
parent 02cf3e43f2
commit 7a145ea2af
2 changed files with 74 additions and 22 deletions

View File

@ -339,7 +339,7 @@ class Market(object):
['token', '', 'token'],
['start', 0, '分页开始偏移'],
['page_size', 0, '分页大小'],
['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:上架时间 2:价格 3:星级质量 4:等级 5:能量值 6:生命值 7:攻击力 8:防御力'],
['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:等级 2:能量值 3:星级 4:tokenid'],
['order_asc', 0, '排序方向, 0:从小到大 1:从大到小'],
['type', 0, '物品类型 1:英雄 2:武器 3:芯片'],
['job_filters', '', '职业过滤(用|分割)'],

View File

@ -542,7 +542,24 @@ class MarketController extends BaseController {
myself()->_rspOk();
}
private function getNftListByAccountAndType($account, $type) {
private function getNftListByAccountAndType($account, $type, $order_method, $order_asc)
{
$sortByLevel = function ($a, $b) use ($order_asc) {
};
$sortByStar = function ($a, $b) use($order_asc) {
};
$sortByPower = function ($a, $b) use($order_asc) {
};
$sortByTokenId = function ($a, $b) use ($order_asc) {
if ($order_asc == 1) {
return $b['token_id'] - $a['token_id'];
} else {
return $a['token_id'] - $b['token_id'];
}
};
$nfts = array();
switch ($type) {
case 1: {
@ -552,7 +569,19 @@ class MarketController extends BaseController {
$row['info'] = Nft::toDto($nftDb);
$row['detail'] = Hero::toDtoInfo(Hero::findByTokenId2($row['token_id']));
}
} break;
switch ($order_method) {
case 1:
usort($rows, $sortByLevel);
break;
case 2:
usort($rows, $sortByPower);
break;
case 3:
usort($rows, $sortByStar);
break;
}
}
break;
case 2: {
$rows = Nft::getNftListByType($account, $type);
foreach ($rows as &$row) {
@ -560,16 +589,39 @@ class MarketController extends BaseController {
$row['info'] = Nft::toDto($nftDb);
$row['detail'] = Gun::toDtoInfo(Gun::findByTokenId2($row['token_id']));
}
} break;
switch ($order_method) {
case 1:
usort($rows, $sortByLevel);
break;
case 2:
usort($rows, $sortByPower);
break;
case 3:
usort($rows, $sortByStar);
break;
}
}
break;
case 3: {
$rows = Nft::getNft1155List($account, $type);
foreach ($rows as &$row) {
$row['detail'] = Chip::toDto(Chip::getChipByTokenId($row['token_id']));
}
} break;
switch ($order_method) {
case 1:
usort($rows, $sortByLevel);
break;
case 2:
usort($rows, $sortByPower);
break;
}
}
break;
case 4: {
$rows = Nft::getNft1155List($account, $type);
} break;
usort($rows, $sortByTokenId);
}
break;
default: {
$rows = array();
}