58 lines
1.8 KiB
PHP
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;
|
|
}
|
|
|
|
|
|
}
|