game2006api/webapp/services/SeasonService.php
2022-10-18 11:18:41 +08:00

61 lines
1.8 KiB
PHP

<?php
namespace services;
require_once('mt/Rank.php');
require_once('mt/Season.php');
require_once('models/User.php');
require_once('models/Season.php');
use mt;
use models\User;
use models\Season;
class SeasonService extends BaseService {
public function checkSeason($userInfo)
{
$initRankMeta = mt\Rank::getInitRank();
$currRankMeta = mt\Rank::get($userInfo['rank']);
$dropRankMeta = mt\Rank::get($currRankMeta ? $currRankMeta['drop_rank'] : 0);
$currSeasonMeta = mt\Season::getCurrentSeason();
if ($currSeasonMeta && $currSeasonMeta['id'] != $userInfo['last_season_id']) {
//掉档
if ($dropRankMeta) {
myself()->_updateUserInfo(array(
'rank' => $dropRankMeta['rank'],
'score' => $dropRankMeta['min_score'],
));
}
}
if ($initRankMeta && $userInfo['rank'] < $initRankMeta['rank']) {
myself()->_updateUserInfo(array(
'rank' => $initRankMeta['rank'],
'score' => $initRankMeta['min_score'],
));
return false;
}
return true;
}
//赛季结束后奖励及重置排位段位
public function seasonAward($userInfo){
$currRankMeta = mt\Rank::getRankById($userInfo['rank']);
$dropRankMeta = mt\Rank::getRankById($currRankMeta ? $currRankMeta['next_season'] : 1);
$award =array();
if ($currRankMeta){
$award = Season::seasonReward($currRankMeta);
if ($dropRankMeta) {
myself()->_updateUserInfo(array(
'rank' => $dropRankMeta['id'],
'score' => $dropRankMeta['rank_score'],
));
}
}
return $award;
}
}