1
This commit is contained in:
parent
ab5da60650
commit
b75d4811da
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
define('TEAMID_KEY', 'team_uuid:');
|
||||
define('RANKING_KEY', 'ranking_list:');
|
||||
|
||||
define('LAST_SESSION_KEY', 'last_session:');
|
||||
|
||||
|
@ -30,6 +30,7 @@ class SeasonController extends BaseAuthedController {
|
||||
private $currRankSeasonMeta = null;
|
||||
private $seasonDb = null;
|
||||
private $missionService = null;
|
||||
private $rankingUnid = 'game_2006_rank';
|
||||
|
||||
public function _handlePre()
|
||||
{
|
||||
@ -116,18 +117,44 @@ class SeasonController extends BaseAuthedController {
|
||||
$this->_rspErr(1, 'params rank error');
|
||||
die();
|
||||
}
|
||||
$users = User::orderBy(User::getUserByRank($rank_param));
|
||||
$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);
|
||||
}
|
||||
$this->_rspData(['info'=>$season_rank]);
|
||||
|
||||
foreach ($rankList as $v){
|
||||
if ($rank_param == $v['rank']){
|
||||
array_push($list,$v);
|
||||
}
|
||||
}
|
||||
$this->_rspData(['info'=>$list]);
|
||||
}
|
||||
|
||||
public function getDataInfo(){
|
||||
@ -262,4 +289,20 @@ class SeasonController extends BaseAuthedController {
|
||||
return $info;
|
||||
}
|
||||
|
||||
private function readRankingList($r,$rankUnid)
|
||||
{
|
||||
$list = $r->get(RANKING_KEY.$rankUnid);
|
||||
if (empty($list)) {
|
||||
return array();
|
||||
}
|
||||
$list = json_decode($list, true);
|
||||
return $list;
|
||||
}
|
||||
|
||||
private function saveRankingList($r,$rankUnid ,$list)
|
||||
{
|
||||
$r->set(RANKING_KEY.$rankUnid , json_encode($list));
|
||||
$r->pexpire(RANKING_KEY.$rankUnid , 6*60*60*1000);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -265,10 +265,10 @@ class TeamController extends BaseAuthedController {
|
||||
return;
|
||||
}
|
||||
}
|
||||
// if ($teamDb['slot_num'] >= 4){
|
||||
// $this->_rspErr(1, 'Maximum size of team');
|
||||
// return;
|
||||
// }
|
||||
if (count($teamDb['member_list'])>$slotNum){
|
||||
$this->_rspErr(1, 'slot_num Insufficient ');
|
||||
return;
|
||||
}
|
||||
$teamDb['slot_num'] = $slotNum;
|
||||
$this->saveTeamDb($r, $teamUuid, $teamDb);
|
||||
$this->_rspOk();
|
||||
|
@ -64,7 +64,7 @@ class UserController extends BaseAuthedController {
|
||||
$this->_setV(TN_RANK_STATUS, 0, 1);
|
||||
}
|
||||
//elo 衰减
|
||||
$this->checkElo($userInfo);
|
||||
$this->dampingElo($userInfo);
|
||||
$userInfo = $this->_getOrmUserInfo();
|
||||
//跟新登录时间
|
||||
$this->_updateUserInfo(array(
|
||||
@ -713,7 +713,7 @@ class UserController extends BaseAuthedController {
|
||||
]);
|
||||
}
|
||||
|
||||
private function checkElo($userInfo){
|
||||
private function dampingElo($userInfo){
|
||||
$time_diff = myself()->_getNowTime()-$userInfo['last_login_time'];
|
||||
if ($userInfo['elo'] > 1500 && floor($time_diff/86400) > 0){
|
||||
$newElo = min(round(pow(log10(floor($time_diff/86400)),1.5)*350),450);
|
||||
@ -742,6 +742,8 @@ class UserController extends BaseAuthedController {
|
||||
'gold' => 0,
|
||||
'diamond' => 0,
|
||||
'level' => 1,
|
||||
'rank' => 0,
|
||||
'score' => 0,
|
||||
'exp' => 0,
|
||||
'last_season_id' => $currSeasonMeta ? $currSeasonMeta['id'] : 0,
|
||||
'score_modifytime' => $this->_getNowTime(),
|
||||
|
@ -163,17 +163,9 @@ class BattleDataService extends BaseService {
|
||||
break;
|
||||
case self::MATCH_MODE_MATCH:
|
||||
{
|
||||
//排位赛
|
||||
$this->updateSeasonData();
|
||||
myself()->_incDailyV(TN_DAILY_RANK_BATTLE_TIMES, 0, 1);
|
||||
|
||||
/*$userInfo = myself()->_getOrmUserInfo();
|
||||
$newScore = FormulaService::calcBattleAfterRankScore($userInfo,$_REQUEST);
|
||||
$newRank = $userInfo['rank'];
|
||||
$newScore = 789;
|
||||
mt\Rank::calcNewRankAndScore( $newRank, $newScore);
|
||||
print_r($newRank.':'.$newScore);die;*/
|
||||
|
||||
//排位赛(和匹配合二为一)
|
||||
// $this->updateSeasonData();
|
||||
// myself()->_incDailyV(TN_DAILY_RANK_BATTLE_TIMES, 0, 1);
|
||||
}
|
||||
break;
|
||||
case self::MATCH_MODE_PVE:
|
||||
@ -535,8 +527,25 @@ class BattleDataService extends BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
// private function updatePvpData()
|
||||
// {
|
||||
// error_log('updateBattleData1');
|
||||
// $this->rankActivityService->updateBattleData();
|
||||
// error_log('updateBattleData2');
|
||||
// $hisBattleData = Battle::getMyBattleData();
|
||||
// if (!isset($hisBattleData)) {
|
||||
// $hisBattleData = array(
|
||||
// 'createtime' => myself()->_getNowTime(),
|
||||
// 'modifytime' => myself()->_getNowTime()
|
||||
// );
|
||||
// }
|
||||
// $this->apply($hisBattleData);
|
||||
// Battle::add(json_encode($hisBattleData));
|
||||
// }
|
||||
|
||||
private function updatePvpData()
|
||||
{
|
||||
|
||||
error_log('updateBattleData1');
|
||||
$this->rankActivityService->updateBattleData();
|
||||
error_log('updateBattleData2');
|
||||
@ -549,94 +558,78 @@ class BattleDataService extends BaseService {
|
||||
}
|
||||
$this->apply($hisBattleData);
|
||||
Battle::add(json_encode($hisBattleData));
|
||||
}
|
||||
|
||||
private function updateSeasonData()
|
||||
{
|
||||
|
||||
error_log('updateBattleData1');
|
||||
$this->rankActivityService->updateBattleData();
|
||||
error_log('updateBattleData2');
|
||||
$this->currSeasonMeta = mt\RankSeason::getCurrentSeason();
|
||||
if (!$this->currSeasonMeta) {
|
||||
return;
|
||||
}
|
||||
error_log('updateBattleData3');
|
||||
$this->seasonDb = Season::find($this->currSeasonMeta['id']);
|
||||
if (!$this->seasonDb) {
|
||||
Season::add($this->currSeasonMeta['id']);
|
||||
$this->currSeasonMeta = mt\RankSeason::getCurrentSeason();
|
||||
if ( $this->currSeasonMeta ) {
|
||||
$this->seasonDb = Season::find($this->currSeasonMeta['id']);
|
||||
}
|
||||
if (!$this->seasonDb) {
|
||||
return;
|
||||
}
|
||||
error_log('updateBattleData4');
|
||||
$this->updateScore();
|
||||
$hisBattleData = Battle::getMyBattleData();
|
||||
if (!isset($hisBattleData)) {
|
||||
$hisBattleData = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
if (!$this->seasonDb) {
|
||||
Season::add($this->currSeasonMeta['id']);
|
||||
$this->seasonDb = Season::find($this->currSeasonMeta['id']);
|
||||
}
|
||||
if (!$this->seasonDb) {
|
||||
return;
|
||||
}
|
||||
error_log('updateBattleData4');
|
||||
$this->updateScore();
|
||||
|
||||
$seasonBattleData = json_decode($this->seasonDb['battle_data'], true);
|
||||
if (!isset($seasonBattleData['today_data'])) {
|
||||
$seasonBattleData['today_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['season_data'])) {
|
||||
$seasonBattleData['season_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['his_week_data'])) {
|
||||
$seasonBattleData['his_week_data'] = array(
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['this_week_data'])) {
|
||||
$seasonBattleData['this_week_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (myself()->_getDaySeconds($seasonBattleData['today_data']['modifytime']) <
|
||||
myself()->_getNowDaySeconds()) {
|
||||
$seasonBattleData['today_data'] = array(
|
||||
'createtime' => $seasonBattleData['today_data']['createtime'],
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (myself()->_getDaySeconds($seasonBattleData['this_week_data']['modifytime']) <
|
||||
myself()->_getMondaySeconds()) {
|
||||
$seasonBattleData['this_week_data'] = array(
|
||||
'createtime' => $seasonBattleData['this_week_data']['createtime'],
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
$oldSeasonDataKills = getXVal($seasonBattleData['season_data'], 'total_kills_times', 0);
|
||||
$this->apply($seasonBattleData['season_data']);
|
||||
$newSeasonDataKills = getXVal($seasonBattleData['season_data'], 'total_kills_times', 0);
|
||||
if ($newSeasonDataKills > $oldSeasonDataKills) {
|
||||
Season::update($this->currSeasonMeta['id'], array(
|
||||
'kills_modifytime' => myself()->_getNowTime(),
|
||||
));
|
||||
Battle::update(array(
|
||||
'kills_modifytime' => myself()->_getNowTime(),
|
||||
));
|
||||
}
|
||||
$this->apply($seasonBattleData['today_data']);
|
||||
$this->apply($seasonBattleData['this_week_data']);
|
||||
Season::update(
|
||||
$this->currSeasonMeta['id'],
|
||||
array(
|
||||
'battle_data' => json_encode($seasonBattleData),
|
||||
)
|
||||
);
|
||||
}
|
||||
$this->apply($hisBattleData);
|
||||
Battle::add(json_encode($hisBattleData));
|
||||
$seasonBattleData = json_decode($this->seasonDb['battle_data'], true);
|
||||
if (!isset($seasonBattleData['today_data'])) {
|
||||
$seasonBattleData['today_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['season_data'])) {
|
||||
$seasonBattleData['season_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['his_week_data'])) {
|
||||
$seasonBattleData['his_week_data'] = array(
|
||||
);
|
||||
}
|
||||
if (!isset($seasonBattleData['this_week_data'])) {
|
||||
$seasonBattleData['this_week_data'] = array(
|
||||
'createtime' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (myself()->_getDaySeconds($seasonBattleData['today_data']['modifytime']) <
|
||||
myself()->_getNowDaySeconds()) {
|
||||
$seasonBattleData['today_data'] = array(
|
||||
'createtime' => $seasonBattleData['today_data']['createtime'],
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
if (myself()->_getDaySeconds($seasonBattleData['this_week_data']['modifytime']) <
|
||||
myself()->_getMondaySeconds()) {
|
||||
$seasonBattleData['this_week_data'] = array(
|
||||
'createtime' => $seasonBattleData['this_week_data']['createtime'],
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
}
|
||||
$oldSeasonDataKills = getXVal($seasonBattleData['season_data'], 'total_kills_times', 0);
|
||||
$this->apply($seasonBattleData['season_data']);
|
||||
$newSeasonDataKills = getXVal($seasonBattleData['season_data'], 'total_kills_times', 0);
|
||||
if ($newSeasonDataKills > $oldSeasonDataKills) {
|
||||
Season::update($this->currSeasonMeta['id'], array(
|
||||
'kills_modifytime' => myself()->_getNowTime(),
|
||||
));
|
||||
Battle::update(array(
|
||||
'kills_modifytime' => myself()->_getNowTime(),
|
||||
));
|
||||
}
|
||||
$this->apply($seasonBattleData['today_data']);
|
||||
$this->apply($seasonBattleData['this_week_data']);
|
||||
Season::update(
|
||||
$this->currSeasonMeta['id'],
|
||||
array(
|
||||
'battle_data' => json_encode($seasonBattleData),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private function updatePveData()
|
||||
|
Loading…
x
Reference in New Issue
Block a user