From 522475160855ea09359dad508d4a7ce21d8e2e86 Mon Sep 17 00:00:00 2001 From: hujiabin Date: Tue, 25 Oct 2022 20:26:20 +0800 Subject: [PATCH] 1 --- webapp/controller/SeasonController.class.php | 50 +++++++++++++++++--- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/webapp/controller/SeasonController.class.php b/webapp/controller/SeasonController.class.php index bebaae98..05024abb 100644 --- a/webapp/controller/SeasonController.class.php +++ b/webapp/controller/SeasonController.class.php @@ -95,18 +95,54 @@ class SeasonController extends BaseAuthedController { 'season_reward' => Season::seasonReward($rankMeta) ); - $users = User::orderBy(User::getUserByRank($this->userInfo['rank'])); - $season_rank = array(); - if (count($users)>0){ - foreach ($users as $k=>$user){ - if ($k<20){ + $r = $this->_getRedis($this->rankingUnid); + $rankList = $this->readRankingList($r,$this->rankingUnid); + $list = array(); + if (!$rankList){ + $users = User::orderBy(User::allUser()); + $rewardParamMeta = \mt\Parameter::getByName('rank_ring_reward'); + $rewardParamMetaValue = $rewardParamMeta ? $rewardParamMeta['param_value'] : ''; + $rewardList = explode('|',$rewardParamMetaValue); + if (count($users)>0){ + foreach ($users as $k=>$user){ $userDto = User::getUserByRankMess($user); $userDto['rank_sort'] = $k+1; - array_push($season_rank,$userDto); + switch ($userDto['rank_sort']){ + case 1:$userDto['ring_item_id'] = $rewardList[0];break; + case 2:$userDto['ring_item_id'] = $rewardList[1];break; + case 3:$userDto['ring_item_id'] = $rewardList[2];break; + default : $userDto['ring_item_id'] = 0; + } + array_push($rankList,$userDto); + } + foreach ($rankList as $k=>$value){ + if ($value['rank_sort'] <= 200){ + $cec = 999; + $rankList[$k]['rewardCEC'] = $cec; + }else{ + $rankList[$k]['rewardCEC'] = 0; + } } } + $this->saveRankingList($r,$this->rankingUnid,$rankList); } - $info['season_rank'] = $season_rank; + foreach ($rankList as $v){ + if ($this->userInfo['rank'] == $v['rank']){ + array_push($list,$v); + } + } +// $users = User::orderBy(User::getUserByRank($this->userInfo['rank'])); +// $season_rank = array(); +// if (count($users)>0){ +// foreach ($users as $k=>$user){ +// if ($k<20){ +// $userDto = User::getUserByRankMess($user); +// $userDto['rank_sort'] = $k+1; +// array_push($season_rank,$userDto); +// } +// } +// } + $info['season_rank'] = $list; $this->_rspData(['info'=>$info]); // print_r($info); }