This commit is contained in:
aozhiwei 2024-11-09 10:01:22 +08:00
parent 886f01720a
commit 94336932c0
2 changed files with 50 additions and 10 deletions

View File

@ -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){

View File

@ -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;
}
}