diff --git a/webapp/controller/OutAppCircuitController.class.php b/webapp/controller/OutAppCircuitController.class.php index ffe2eaec..3bd88b40 100644 --- a/webapp/controller/OutAppCircuitController.class.php +++ b/webapp/controller/OutAppCircuitController.class.php @@ -58,6 +58,7 @@ class OutAppCircuitController extends BaseController { $redis = $this->_getRedis($this->redis_key_circuit_ranking); if (! $redis->exists(CIRCUIT_RANKING_KEY.$this->redis_key_circuit_ranking)){ $rows = Circuit::getCircuitList($currentCircuitMeta['circuit_season']); + error_log(json_encode($rows)); $sortRows = myself()->arraySort($rows, 'cumulative_score', 'desc'); $list = $this->_extractRankingInfo($sortRows); $redis->set(CIRCUIT_RANKING_KEY.$this->redis_key_circuit_ranking , json_encode($list)); @@ -117,6 +118,7 @@ class OutAppCircuitController extends BaseController { $redis = $this->_getRedis($this->redis_key_circuit_phase_ranking); if (! $redis->exists(CIRCUIT_RANKING_KEY.$this->redis_key_circuit_phase_ranking)){ $rows = Circuit::getCircuitPhaseList($currentStageMeta['circuit_season'],$currentStageMeta['circuit_phase']); + error_log(json_encode($rows)); $sortRows = myself()->arraySort($rows, 'cumulative_score', 'desc'); $list = $this->_extractRankingInfo($sortRows); $redis->set(CIRCUIT_RANKING_KEY.$this->redis_key_circuit_phase_ranking , json_encode($list)); @@ -218,7 +220,12 @@ class OutAppCircuitController extends BaseController { $this->_rspErr(1,'未满足结算条件'); } - private function _extractRankingInfo($data){ + private function _extractRankingInfo($data) + { + return myself()->_callServiceStatic('CircuitRankingService', 'extractRankingInfo'); + } + + private function _extractRankingInfoOld($data){ $rankingList = array(); $ranking = 0; foreach ($data as $k=>$row){ diff --git a/webapp/services/CircuitRankingService.php b/webapp/services/CircuitRankingService.php index da6d9a2b..8577aa8a 100644 --- a/webapp/services/CircuitRankingService.php +++ b/webapp/services/CircuitRankingService.php @@ -77,11 +77,6 @@ class CircuitRankingService extends BaseService { public static function genAndroidData() { - $currentCircuitMeta = mt\CircuitTime::getCurrentCircuit(); - if (!$currentCircuitMeta){ - $this->_rspErr(1, 'current stage Have not yet started'); - return ; - } $currentStageMeta = mt\CircuitTime::getCurrentStage(); if (empty($currentStageMeta)) { myself()->_rspErr(1, 'currentStageMeta Is empty'); @@ -100,16 +95,16 @@ class CircuitRankingService extends BaseService { 't_circuit_battle_phase', array( 'account_id' => $row['robot_id'], - 'season' => $currentCircuitMeta['id'], - 'phase' => $currentStageMeta['id'], + 'season' => $currentStageMeta['circuit_season'], + 'phase' => $currentStageMeta['circuit_phase'], ), array(), array( 'account_id' => $row['robot_id'], 'is_android' => 1, 'cumulative_score' => 10, - 'season' => $currentCircuitMeta['id'], - 'phase' => $currentStageMeta['id'], + 'season' => $currentStageMeta['circuit_season'], + 'phase' => $currentStageMeta['circuit_phase'], 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime(), ) @@ -118,4 +113,42 @@ class CircuitRankingService extends BaseService { myself()->_rspOk(); } + public static function extractRankingInfo($data){ + $rankingList = array(); + $ranking = 0; + foreach ($data as $k=>$row){ + ++$ranking; + $userDb = null; + $heroDb = null; + $heroId = 0; + $skinId = 0; + if ($data['is_android']) { + } else { + $userDb = User::find($row['account_id']); + $heroDb = Hero::findByAccountId($userDb['account_id'],$userDb['hero_id']); + $skinDb = HeroSkin::findByAccountId($heroDb['skin_id'], $userDb['account_id']); + $heroId = $heroDb ? $heroDb['hero_id']:0; + $skinId = $skinDb ? $skinDb['skin_id']:0; + } + $rewardWeight = \mt\CircuitReward::getRewardWeight($ranking); + if ($userDb){ + $info = array( + 'account_id' => $userDb['account_id'], + 'name' => utf8_encode($userDb['name']), + 'head_id' => $userDb['head_id'], + 'head_frame' => $userDb['head_frame'], + 'hero_id' => $heroId, + 'skin_id' => $skinId, + 'ranking' => $ranking, + 'weight' => $rewardWeight, + #'score' => $row['cumulative_score'], + 'score' => number_format($row['cumulative_score'], 2, '.', ''), + 'score_boost' => number_format($row['score_boost'], 2, '.', ''), + ); + array_push($rankingList,$info); + } + } + return $rankingList; + } + }