game2006api/webapp/services/SeasonService.php
2023-07-20 17:45:06 +08:00

58 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,$awardService,$propertyService)
{
$currSeasonMeta = mt\RankSeason::getCurrentSeason();
if ($currSeasonMeta && $userInfo['last_season_id'] > 0 && $currSeasonMeta['id'] > $userInfo['last_season_id'] ){
$currRankMeta = mt\Rank::getRankById($userInfo['rank']);
$dropRankMeta = mt\Rank::getRankById($currRankMeta ? $currRankMeta['next_season'] : 1);
$award = Season::seasonReward($currRankMeta);
//掉段
if ($dropRankMeta) {
myself()->_updateUserInfo(array(
'rank' => $dropRankMeta['id'],
'score' => $dropRankMeta['rank_score'],
'last_season_id' => $currSeasonMeta['id'],
));
}
myself()->_addItems($award,$awardService,$propertyService);
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;
}
}