From 9f437d888943d583e40685637d1429738eae6916 Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 28 Nov 2022 10:54:44 +0800 Subject: [PATCH 01/21] 1 --- webapp/controller/EventRankingController.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/controller/EventRankingController.class.php b/webapp/controller/EventRankingController.class.php index ce30bf4d..3659a038 100644 --- a/webapp/controller/EventRankingController.class.php +++ b/webapp/controller/EventRankingController.class.php @@ -253,7 +253,7 @@ class EventRankingController extends BaseAuthedController public function settlementRankingAward(){ $id = getReqVal('id', 0); // $currentRankingMeta = mt\EventRanking::getCurrentRanking(); -// $awardList = array(); + $awardList = array(); // if ($currentRankingMeta){ $lastRankingMeta = mt\EventRanking::find($id); if ($lastRankingMeta){ From 3634523778650109f35802b423ecae19aaadd56f Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 28 Nov 2022 13:44:44 +0800 Subject: [PATCH 02/21] 1 --- webapp/services/MissionService.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index 32ea87bc..dbd16e92 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -1074,7 +1074,9 @@ class MissionService extends BaseService { private function calcCegPreview($objects) { - $count = $this->getOfferRewardMissionCount(); +// $count = $this->getOfferRewardMissionCount(); + $count = mt\Parameter::getVal + ('wanted_refresh_mission_num', 0); $cegNum = 0; foreach ($objects as $obj) { $type = $obj['type']; From 846c5140eda515faae3ad613be714ca9334ec663 Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 28 Nov 2022 14:39:38 +0800 Subject: [PATCH 03/21] 1 --- .../controller/BlockChainController.class.php | 22 ++++++++++--------- webapp/services/MissionService.php | 3 ++- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/webapp/controller/BlockChainController.class.php b/webapp/controller/BlockChainController.class.php index af02847d..d5300edb 100644 --- a/webapp/controller/BlockChainController.class.php +++ b/webapp/controller/BlockChainController.class.php @@ -51,16 +51,18 @@ class BlockChainController extends BaseAuthedController { { $trans = array(); foreach (Transaction::all() as $tran) { - array_push( - $trans, - array( - 'trans_id' => $tran['trans_id'], - 'item_id' => $tran['item_id'], - 'action' => Transaction::getActionDesc($tran), - 'status' => Transaction::getStatusDesc($tran), - 'time' => $tran['createtime'], - ) - ); + if (myself()->_getNowTime() - $tran['createtime'] < 24*3600){ + array_push( + $trans, + array( + 'trans_id' => $tran['trans_id'], + 'item_id' => $tran['item_id'], + 'action' => Transaction::getActionDesc($tran), + 'status' => Transaction::getStatusDesc($tran), + 'time' => $tran['createtime'], + ) + ); + } } $this->_rspData(array( 'transactions' => $trans diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index dbd16e92..27dd9652 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -580,6 +580,7 @@ class MissionService extends BaseService { private function refreshOfferRewardMission() { + $this->offerRewartdMission['refreshtime'] = myself()->_getDaySeconds(myself()->_getNowTime()); $wantedRefreshMissionNum = mt\Parameter::getVal ('wanted_refresh_mission_num', 0); if (count($this->offerRewartdMission['missions']) >= 10){ @@ -626,7 +627,7 @@ class MissionService extends BaseService { )); } } - $this->offerRewartdMission['refreshtime'] = myself()->_getDaySeconds(myself()->_getNowTime()); + $this->saveOfferRewardMission(); } From ab1020c877eb467545ab9418c083eeb96a9f91cb Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 28 Nov 2022 14:52:34 +0800 Subject: [PATCH 04/21] 1 --- webapp/services/MissionService.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index 27dd9652..338a813b 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -580,7 +580,6 @@ class MissionService extends BaseService { private function refreshOfferRewardMission() { - $this->offerRewartdMission['refreshtime'] = myself()->_getDaySeconds(myself()->_getNowTime()); $wantedRefreshMissionNum = mt\Parameter::getVal ('wanted_refresh_mission_num', 0); if (count($this->offerRewartdMission['missions']) >= 10){ @@ -627,7 +626,7 @@ class MissionService extends BaseService { )); } } - + $this->offerRewartdMission['refreshtime'] = myself()->_getDaySeconds(myself()->_getNowTime()); $this->saveOfferRewardMission(); } @@ -995,7 +994,9 @@ class MissionService extends BaseService { //(PVE角色NFT每日获得极限(CEG)+PVE武器NFT每日获得极限(CEG))*90%/悬赏任务数量 $totalHeroUpLimit = 0; $totalGunUpLimit = 0; - $count = $this->getOfferRewardMissionCount(); +// $count = $this->getOfferRewardMissionCount(); + $count = mt\Parameter::getVal + ('wanted_refresh_mission_num', 0); $propertyChgService->addUserChg(); foreach ($mission['objects'] as $obj) { switch ($obj['type']) { From 8cc9c610cb1dd1b6fcb4958d8c2c5224184b5016 Mon Sep 17 00:00:00 2001 From: hujiabin Date: Wed, 30 Nov 2022 16:41:08 +0800 Subject: [PATCH 05/21] 1 --- webapp/models/NftActive.php | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/webapp/models/NftActive.php b/webapp/models/NftActive.php index 4973fe51..278a92b7 100644 --- a/webapp/models/NftActive.php +++ b/webapp/models/NftActive.php @@ -8,22 +8,25 @@ use phpcommon\SqlHelper; class NftActive extends BaseModel { public static function upsert($data){ - if ($data['token_id']){ - $where = array( - 'token_id' =>$data['token_id'], - 'daytime' =>myself()->_getDaySeconds(myself()->_getNowTime()), - ); - }else{ - $where = array( - 'uniid' =>$data['uniid'], - 'daytime' =>myself()->_getDaySeconds(myself()->_getNowTime()), - ); - } +// if ($data['token_id']){ +// $where = array( +// 'token_id' =>$data['token_id'], +// 'daytime' =>myself()->_getDaySeconds(myself()->_getNowTime()), +// ); +// }else{ +// $where = array( +// 'uniid' =>$data['uniid'], +// 'daytime' =>myself()->_getDaySeconds(myself()->_getNowTime()), +// ); +// } SqlHelper::upsert (myself()->_getSelfMysql(), 't_nft_active', - $where, + array( + 'uniid' =>$data['uniid'], + 'daytime' =>myself()->_getDaySeconds(myself()->_getNowTime()), + ), array( ), array( From 89c2d705bb15e536d654c5dcdf5a489a91313f15 Mon Sep 17 00:00:00 2001 From: songliang Date: Fri, 2 Dec 2022 16:11:47 +0800 Subject: [PATCH 06/21] add web market doc listSellNfts --- doc/Market.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/Market.py b/doc/Market.py index fc851c38..e127fd7c 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -287,4 +287,28 @@ class Market(object): _common.NftView(), ] }, + { + 'name': 'listSellNfts', + 'desc': '获取上架出售的NFTs', + 'group': 'Market', + 'url': 'webapp/index.php?c=Market&a=listSellNfts', + 'params': [ + ['start', 0, '分页开始偏移'], + ['page_size', 0, '分页大小'], + ['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:上架时间 2:价格 3:星级质量 4:等级 5:能量值 6:生命值 7:攻击力 8:防御力'], + ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], + ['order_asc', 0, '排序方向, 0:从小到大 1:从大到小'], + ['!job_filters', '', '职业过滤'], + ['!search_filters' '', '搜索过滤'], + ['lv_filter', 0, '等级过滤'], + ['!price_filter', 0, '价格过滤'] + ], + 'response': [ + _common.RspHead(), + ['total', 0, '出售的列表总数量(当前过滤配置)'], + ['start', 0, '有效的分页偏移'], + ['page_size', 0, '有效的分页大小'], + ['!nfts', [_common.NftDetail()], 'nft列表'], + ] + }, ] From d1b380b2ee127d3bb819f10f6a80679ccf680426 Mon Sep 17 00:00:00 2001 From: songliang Date: Fri, 2 Dec 2022 19:40:05 +0800 Subject: [PATCH 07/21] ... --- doc/Market.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/Market.py b/doc/Market.py index e127fd7c..d98c390b 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -298,10 +298,10 @@ class Market(object): ['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:上架时间 2:价格 3:星级质量 4:等级 5:能量值 6:生命值 7:攻击力 8:防御力'], ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], ['order_asc', 0, '排序方向, 0:从小到大 1:从大到小'], - ['!job_filters', '', '职业过滤'], - ['!search_filters' '', '搜索过滤'], + ['job_filters', '', '职业过滤'], + ['search_filters' '', '搜索过滤'], ['lv_filter', 0, '等级过滤'], - ['!price_filter', 0, '价格过滤'] + ['price_filter', '', '价格过滤'] ], 'response': [ _common.RspHead(), From a5caec45267e60f678b5e879b5e116aff22c2da3 Mon Sep 17 00:00:00 2001 From: songliang Date: Mon, 5 Dec 2022 10:04:02 +0800 Subject: [PATCH 08/21] ...market... --- doc/Market.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/Market.py b/doc/Market.py index d98c390b..26ee5220 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -293,15 +293,17 @@ class Market(object): 'group': 'Market', 'url': 'webapp/index.php?c=Market&a=listSellNfts', 'params': [ + ['account', '', '账号id'], + ['token', '', 'token'], ['start', 0, '分页开始偏移'], ['page_size', 0, '分页大小'], ['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:上架时间 2:价格 3:星级质量 4:等级 5:能量值 6:生命值 7:攻击力 8:防御力'], ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], ['order_asc', 0, '排序方向, 0:从小到大 1:从大到小'], - ['job_filters', '', '职业过滤'], - ['search_filters' '', '搜索过滤'], + ['job_filters', '', '职业过滤(用|分割)'], + ['search_filters', '', '搜索过滤(用|分割)'], ['lv_filter', 0, '等级过滤'], - ['price_filter', '', '价格过滤'] + ['price_filter', '', '价格过滤(用|分割)'] ], 'response': [ _common.RspHead(), From afefc650b682a8c5aadd4ef4ada07236a6365bb6 Mon Sep 17 00:00:00 2001 From: songliang Date: Mon, 5 Dec 2022 12:05:00 +0800 Subject: [PATCH 09/21] ...market... --- doc/Market.py | 2 +- webapp/controller/MarketController.class.php | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/doc/Market.py b/doc/Market.py index 26ee5220..700137ea 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -298,8 +298,8 @@ class Market(object): ['start', 0, '分页开始偏移'], ['page_size', 0, '分页大小'], ['order_method', 0, '排序方式 0:默认排序(当前指向1) 1:上架时间 2:价格 3:星级质量 4:等级 5:能量值 6:生命值 7:攻击力 8:防御力'], - ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], ['order_asc', 0, '排序方向, 0:从小到大 1:从大到小'], + ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], ['job_filters', '', '职业过滤(用|分割)'], ['search_filters', '', '搜索过滤(用|分割)'], ['lv_filter', 0, '等级过滤'], diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index 0dc4a71f..531669e9 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -534,4 +534,26 @@ class MarketController extends BaseController { myself()->_rspOk(); } + public function listSellNfts() + { + $account = getReqVal('account', ''); + $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); + $search_filters = getReqVal('search_filters', ''); + $search_filter_array = explode('|', $search_filters); + $lv_filter = getReqVal('lv_filter', 15); + $price_filter = getReqVal('price_filter', ''); + $price_filter_array = explode('|', $price_filter); + + echo $price_filter_array; + } + + + } From 2596851e02b237456b5c693e2fc968bd1bc6992c Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 5 Dec 2022 15:52:34 +0800 Subject: [PATCH 10/21] 1 --- .../EventRankingController.class.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/webapp/controller/EventRankingController.class.php b/webapp/controller/EventRankingController.class.php index 3659a038..063a3b06 100644 --- a/webapp/controller/EventRankingController.class.php +++ b/webapp/controller/EventRankingController.class.php @@ -89,6 +89,18 @@ class EventRankingController extends BaseAuthedController $this->myRanked['rewardNum'] = $this->celAward($wave,$type,$ranked)['rewardNum']; $this->myRanked['extraRewardNum'] = $this->celAward($wave,$type,$ranked)['extraRewardNum']; $this->myRanked['modifytime'] = $row['modifytime']; + }else{ + $value = myself()->_getSelfMysql()->execQuery( + 'SELECT * FROM t_rank_activity ' . + 'WHERE wave=:wave AND type=:type account_id=:account_id' . + "LIMIT 1", + array( + ':wave' => $wave, + ':type' => $type, + ':account_id' => myself()->_getAccountId() + ) + ); + $this->myRanked['value'] =$value?$value[0]['value']:0; } array_push($rankingList, array( 'ranked' => $ranked, @@ -201,6 +213,18 @@ class EventRankingController extends BaseAuthedController $this->myRanked['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum']; $this->myRanked['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum']; $this->myRanked['modifytime'] = $row['modifytime']; + }else{ + $value = myself()->_getSelfMysql()->execQuery( + 'SELECT * FROM t_rank_activity ' . + 'WHERE wave=:wave AND type=:type account_id=:account_id' . + "LIMIT 1", + array( + ':wave' => $row['wave'], + ':type' => $row['type'], + ':account_id' => myself()->_getAccountId() + ) + ); + $this->myRanked['value'] =$value?$value[0]['value']:0; } if ($offset<$ranked && $ranked<=$offset+$size){ array_push($rankingList, array( From dbe5ed8ef8cfd4e3db3de621215f998f92284e5a Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 5 Dec 2022 16:05:10 +0800 Subject: [PATCH 11/21] 1 --- .../EventRankingController.class.php | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/webapp/controller/EventRankingController.class.php b/webapp/controller/EventRankingController.class.php index 063a3b06..f9135e3f 100644 --- a/webapp/controller/EventRankingController.class.php +++ b/webapp/controller/EventRankingController.class.php @@ -65,6 +65,8 @@ class EventRankingController extends BaseAuthedController ':type' => $type ) ); + + $this->myRanked['value'] = $this->getMyValue($wave,$type); $data = $this->paginate($rows,$page,$size); $pages = $data['pages']; $rankingList = $data['lists']; @@ -80,6 +82,7 @@ class EventRankingController extends BaseAuthedController ':type' => $type ) ); + $this->myRanked['value'] = $this->getMyValue($wave,$type); $ranked = 0; foreach ($rows as $row) { $ranked += 1; @@ -89,18 +92,6 @@ class EventRankingController extends BaseAuthedController $this->myRanked['rewardNum'] = $this->celAward($wave,$type,$ranked)['rewardNum']; $this->myRanked['extraRewardNum'] = $this->celAward($wave,$type,$ranked)['extraRewardNum']; $this->myRanked['modifytime'] = $row['modifytime']; - }else{ - $value = myself()->_getSelfMysql()->execQuery( - 'SELECT * FROM t_rank_activity ' . - 'WHERE wave=:wave AND type=:type account_id=:account_id' . - "LIMIT 1", - array( - ':wave' => $wave, - ':type' => $type, - ':account_id' => myself()->_getAccountId() - ) - ); - $this->myRanked['value'] =$value?$value[0]['value']:0; } array_push($rankingList, array( 'ranked' => $ranked, @@ -123,6 +114,7 @@ class EventRankingController extends BaseAuthedController ':type' => $type ) ); + $this->myRanked['value'] = $this->getMyValue($wave,$type); $data = $this->paginate($rows,$page,$size); $pages = $data['pages']; $rankingList = $data['lists']; @@ -213,18 +205,6 @@ class EventRankingController extends BaseAuthedController $this->myRanked['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum']; $this->myRanked['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum']; $this->myRanked['modifytime'] = $row['modifytime']; - }else{ - $value = myself()->_getSelfMysql()->execQuery( - 'SELECT * FROM t_rank_activity ' . - 'WHERE wave=:wave AND type=:type account_id=:account_id' . - "LIMIT 1", - array( - ':wave' => $row['wave'], - ':type' => $row['type'], - ':account_id' => myself()->_getAccountId() - ) - ); - $this->myRanked['value'] =$value?$value[0]['value']:0; } if ($offset<$ranked && $ranked<=$offset+$size){ array_push($rankingList, array( @@ -243,6 +223,20 @@ class EventRankingController extends BaseAuthedController ); } + private function getMyValue($wave,$type){ + $value = myself()->_getSelfMysql()->execQuery( + 'SELECT * FROM t_rank_activity ' . + 'WHERE wave=:wave AND type=:type AND account_id=:account_id ' . + "LIMIT 1", + array( + ':wave' => $wave, + ':type' => $type, + ':account_id' => myself()->_getAccountId() + ) + ); + return $value ? $value[0]['value'] : 0; + } + private function celAward($wave,$type,$ranked){ $rankingMeta = \mt\EventRanking::findByWaveOrType($wave,$type); $rewardNum = 0; From b8ccf35460ea7ab338ede4cbb3dc2d1540e94076 Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 10:20:30 +0800 Subject: [PATCH 12/21] ... --- webapp/controller/MarketController.class.php | 42 +++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index 531669e9..b745d2c8 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -551,7 +551,47 @@ class MarketController extends BaseController { $price_filter = getReqVal('price_filter', ''); $price_filter_array = explode('|', $price_filter); - echo $price_filter_array; + $conn = myself()->_getMysql(''); + + $rows = SqlHelper::ormSelect( + $conn, + 't_market_store' + ); + + $nfts = array(); + foreach ($rows as $row) { + $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); + } + + $this->_rspData(array( + "total" => 1000, + "start" => $start, + "page_size" => $page_size, + 'nfts' => $nfts, + )); } From 179636f7e8819c6dac17920b0b10df841565da5c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 6 Dec 2022 10:22:24 +0800 Subject: [PATCH 13/21] ... --- server/game2006service/tasks/factory.js | 2 +- server/game2006service/tasks/season.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/server/game2006service/tasks/factory.js b/server/game2006service/tasks/factory.js index 688f1f0f..de8ac510 100644 --- a/server/game2006service/tasks/factory.js +++ b/server/game2006service/tasks/factory.js @@ -8,7 +8,7 @@ function add(name) { function init() { add('fragment'); add('damping'); - //add('season'); + add('season'); add('feeback'); } diff --git a/server/game2006service/tasks/season.js b/server/game2006service/tasks/season.js index d5aaf410..8fc99ae8 100644 --- a/server/game2006service/tasks/season.js +++ b/server/game2006service/tasks/season.js @@ -7,6 +7,7 @@ const constant = require('../constant'); class Season { seasonList = []; async start() { +console.log("season ranking start1"); while (true) { await this.doRoutine(utils.getUtcTime()); const nowTime = utils.getUtcTime(); @@ -18,7 +19,7 @@ class Season { async doRoutine(nowTime) { try { - console.log("season ranking start"); + console.log("season ranking start2"); // console.time("season ranking"); this.seasonList = []; metaFactory.traverseMetaList("RankSeason", (config, idx) => { @@ -30,7 +31,7 @@ class Season { return true; }); - console.log("season ranking"); + console.log("season ranking",this.seasonList); if (this.checkSeasonEnd(nowTime)) { await this.calcRanking(nowTime); } @@ -180,4 +181,4 @@ function init() { (new Season()).start(); } -exports.init = init; \ No newline at end of file +exports.init = init; From 1456f7ac09043de316f0d037e800b7fd730eae3a Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 10:37:31 +0800 Subject: [PATCH 14/21] ... --- doc/Market.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/doc/Market.py b/doc/Market.py index 700137ea..d8b4d691 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -2,6 +2,22 @@ import _common +class NftIntro(object): + + def __init__(self): + self.fields = [ + ['idx', 0, 'idx'], + ['token_id', '', 'token_id'], + ['token_type', 0, 'nft类型 1:英雄 2:枪支 3:芯片'], + ['createtime', 0, '创建时间(上架时间)'], + ['modifytime', 0, '修改时间(更新价格等)'], + ['s_price', 0, '出售价格-暂定'], + ['c_name', '', '缓存-名称'], + ['c_job', 0, '缓存-职业'], + ['c_lv', 0, '缓存-级别'], + ['c_id', 0, '缓存-idx'], + ['details', [_common.NftDetail()], 'nft列表'], + ] class Market(object): def __init__(self): @@ -310,7 +326,7 @@ class Market(object): ['total', 0, '出售的列表总数量(当前过滤配置)'], ['start', 0, '有效的分页偏移'], ['page_size', 0, '有效的分页大小'], - ['!nfts', [_common.NftDetail()], 'nft列表'], + ['!nfts', [NftIntro()], 'nft列表'], ] }, ] From 77baca607a45de80c9208f798ca1485e49edcf4d Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 10:41:06 +0800 Subject: [PATCH 15/21] ... --- doc/Market.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Market.py b/doc/Market.py index d8b4d691..1bb6c33a 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -16,7 +16,7 @@ class NftIntro(object): ['c_job', 0, '缓存-职业'], ['c_lv', 0, '缓存-级别'], ['c_id', 0, '缓存-idx'], - ['details', [_common.NftDetail()], 'nft列表'], + ['details', _common.NftDetail(), 'nft列表'], ] class Market(object): From 48b05bb88a5b7d65f4e6acfa63a9ab67bf1e5647 Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 10:46:24 +0800 Subject: [PATCH 16/21] ... --- webapp/controller/MarketController.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index b745d2c8..fc8d1e58 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -587,7 +587,7 @@ class MarketController extends BaseController { } $this->_rspData(array( - "total" => 1000, + "total" => count($rows), "start" => $start, "page_size" => $page_size, 'nfts' => $nfts, From ece5b6b66e1e9bb276fe6c9c30bf5e43efe8b442 Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 11:03:13 +0800 Subject: [PATCH 17/21] ... --- webapp/controller/MarketController.class.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index fc8d1e58..c6835ea7 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -558,8 +558,13 @@ class MarketController extends BaseController { 't_market_store' ); + $total = count($rows); + $page_end = $start + $page_size; + if ($page_end > $total) + $page_end = $total; $nfts = array(); - foreach ($rows as $row) { + for ($x = $start; $x < $page_end; $x++) { + $row = $rows[$x]; $nftDb = Nft::getNft($row['token_id']); if (!$nftDb) { myself()->_rspErr(1, 'nft not exists'); From f8f266f0a00f2a66e90b08d91b689968a675e209 Mon Sep 17 00:00:00 2001 From: hujiabin Date: Tue, 6 Dec 2022 11:33:35 +0800 Subject: [PATCH 18/21] 1 --- webapp/models/User.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/webapp/models/User.php b/webapp/models/User.php index 1d9556ec..5b0c3729 100644 --- a/webapp/models/User.php +++ b/webapp/models/User.php @@ -264,6 +264,28 @@ class User extends BaseModel { } } } + for ($i = 0; $i < $len - 1; $i++) { + for ($j = $i + 1; $j < $len; $j++) { + if ($users[$i]['score'] == $users[$j]['score'] && + $users[$i]['score_modifytime'] > $users[$j]['score_modifytime']) { + $tmp = $users[$i]; + $users[$i] = $users[$j]; + $users[$j] = $tmp; + } + } + } + for ($i = 0; $i < $len - 1; $i++) { + for ($j = $i + 1; $j < $len; $j++) { + if ($users[$i]['score'] == $users[$j]['score'] && + $users[$i]['score_modifytime'] == $users[$j]['score_modifytime'] && + $users[$i]['idx'] < $users[$j]['idx'] + ) { + $tmp = $users[$i]; + $users[$i] = $users[$j]; + $users[$j] = $tmp; + } + } + } return $users; } From 1db6804e496d59023d480016445c818bb8292a59 Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 12:40:37 +0800 Subject: [PATCH 19/21] ... --- doc/Market.py | 23 +++++++ webapp/controller/MarketController.class.php | 65 ++++++++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/doc/Market.py b/doc/Market.py index 1bb6c33a..6e2e34d0 100644 --- a/doc/Market.py +++ b/doc/Market.py @@ -329,4 +329,27 @@ class Market(object): ['!nfts', [NftIntro()], 'nft列表'], ] }, + { + 'name': 'listMyNfts', + 'desc': '获取自己的NFTs', + 'group': 'Market', + 'url': 'webapp/index.php?c=Market&a=listMyNfts', + 'params': [ + ['account', '', '账号id'], + ['token', '', 'token'], + ['start', 0, '分页开始偏移'], + ['page_size', 0, '分页大小'], + ['type', 0, '物品类型 1:英雄 2:武器 3:芯片'], + ['job_filters', '', '职业过滤(用|分割)'], + ['search_filters', '', '搜索过滤(用|分割)'], + ['lv_filter', 0, '等级过滤'], + ], + 'response': [ + _common.RspHead(), + ['total', 0, '出售的列表总数量(当前过滤配置)'], + ['start', 0, '有效的分页偏移'], + ['page_size', 0, '有效的分页大小'], + ['!nfts', [NftIntro()], 'nft列表'], + ] + } ] diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index c6835ea7..ab5ffa33 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -21,6 +21,7 @@ require_once('phpcommon/bchelper.php'); use phpcommon\SqlHelper; use models\BoxOrder; use models\Nft; +use models\ use models\BuyRecord; use services\MarketService; use services\LuckyBoxService; @@ -599,6 +600,70 @@ class MarketController extends BaseController { )); } + public function listMylNfts() + { + $account = getReqVal('account', ''); + $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); + $search_filters = getReqVal('search_filters', ''); + $search_filter_array = explode('|', $search_filters); + $lv_filter = getReqVal('lv_filter', 15); + $price_filter = getReqVal('price_filter', ''); + $price_filter_array = explode('|', $price_filter); + + $conn = myself()->_getMysql(''); + + $rows = SqlHelper::ormSelect( + $conn, + 't_market_store' + ); + + $total = count($rows); + $page_end = $start + $page_size; + if ($page_end > $total) + $page_end = $total; + $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); + } + + $this->_rspData(array( + "total" => count($rows), + "start" => $start, + "page_size" => $page_size, + 'nfts' => $nfts, + )); + } } From d5724b11913792cff9f4a1e10fd1fff79142e8f6 Mon Sep 17 00:00:00 2001 From: songliang Date: Tue, 6 Dec 2022 12:49:31 +0800 Subject: [PATCH 20/21] ... --- webapp/controller/MarketController.class.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index ab5ffa33..c65b5aaa 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -21,7 +21,9 @@ require_once('phpcommon/bchelper.php'); use phpcommon\SqlHelper; use models\BoxOrder; use models\Nft; -use models\ +use models\Hero; +use models\Gun; +use models\Chip; use models\BuyRecord; use services\MarketService; use services\LuckyBoxService; @@ -600,7 +602,7 @@ class MarketController extends BaseController { )); } - public function listMylNfts() + public function listMyNfts() { $account = getReqVal('account', ''); $token = getReqVal('token', ''); From b350fbd3957200ec6dedd6498118e632eb0b8f6a Mon Sep 17 00:00:00 2001 From: hujiabin Date: Tue, 6 Dec 2022 13:47:28 +0800 Subject: [PATCH 21/21] 1 --- webapp/models/Gun.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/webapp/models/Gun.php b/webapp/models/Gun.php index e949942a..251c31b9 100644 --- a/webapp/models/Gun.php +++ b/webapp/models/Gun.php @@ -11,6 +11,7 @@ require_once('services/NftService.php'); require_once('services/FormulaService.php'); use mt; +use phpcommon; use phpcommon\SqlHelper; use services\NftService; use services\FormulaService; @@ -105,12 +106,17 @@ class Gun extends BaseModel { myself()->_getMysql($accountId), 't_gun', array( - 'account_id' => $accountId, 'idx' => $gunUniId, ) ); if ($row) { $row['gun_uniid'] = $row['idx']; + if ($row['account_id'] != $accountId) { + $openId = phpcommon\extractOpenId($accountId); + if (!NftService::isEquipOwner($openId, $row['token_id'])) { + $row = null; + } + } } return $row; }