完善7日签到
This commit is contained in:
parent
3020c9c5b4
commit
3617774689
@ -34,8 +34,6 @@ class SignController extends BaseAuthedController
|
||||
'days' => $day,
|
||||
'condition' => $meta['condition'],
|
||||
'is_receive' => $state,
|
||||
// 'item_id' => $meta['item_id'],
|
||||
// 'item_num' => $meta['num'],
|
||||
'award' => $award
|
||||
));
|
||||
}
|
||||
@ -51,42 +49,6 @@ class SignController extends BaseAuthedController
|
||||
));
|
||||
}
|
||||
|
||||
//首次登录 签到活动开始
|
||||
|
||||
public function sign(){
|
||||
// ...用户登录-login
|
||||
|
||||
//用户是否有签到记录
|
||||
if (SignLog::isSignRecord()){
|
||||
//有签到记录
|
||||
$row = SignLog::find();
|
||||
$paramMeta = \mt\Parameter::getByName('sign_daily_duration');
|
||||
$end_time = myself()->_getDaySeconds($row['createtime']) + $paramMeta['param_value']*24*60*60;
|
||||
//判断当前时间是否结束 并且 上次签到是否领取 并且 签到时间是否满足第二天签到
|
||||
if (myself()->_getNowTime() < $end_time
|
||||
&& $row['is_receive']
|
||||
&& $row['sign_time'] < myself()->_getNowDaySeconds() + 6*60*60){
|
||||
if($row['sign_time'] > myself()->_getNowDaySeconds()){
|
||||
return;
|
||||
}
|
||||
$fieldKv = array(
|
||||
'days' => function(){
|
||||
return "days + 1";
|
||||
},
|
||||
'is_receive' => 0,
|
||||
'sign_time' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
SignLog::update($fieldKv);
|
||||
}
|
||||
|
||||
}else{
|
||||
//未有签到记录
|
||||
SignLog::create();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function receive(){
|
||||
$sign_id = getReqVal('sign_id', '');
|
||||
$meta = \mt\Sign::get($sign_id);
|
||||
|
@ -8,6 +8,7 @@ require_once('models/Gun.php');
|
||||
require_once('models/UserSeasonRing.php');
|
||||
require_once('models/Chip.php');
|
||||
require_once('models/Battle.php');
|
||||
require_once('models/SignLog.php');
|
||||
|
||||
require_once('mt/Parameter.php');
|
||||
require_once('mt/Drop.php');
|
||||
@ -34,6 +35,7 @@ use models\Nft;
|
||||
use models\Chip;
|
||||
use models\UserSeasonRing;
|
||||
use models\Battle;
|
||||
use models\SignLog;
|
||||
|
||||
class UserController extends BaseAuthedController {
|
||||
private $init_rank = 'rank_init_rank';
|
||||
@ -72,7 +74,8 @@ class UserController extends BaseAuthedController {
|
||||
));
|
||||
$userInfo['address'] = $this->_getOpenId();
|
||||
}
|
||||
$this->updateLastSeason($userInfo);
|
||||
$this->_updateLastSeason($userInfo);
|
||||
$this->_sign();
|
||||
$this->_rspData(array(
|
||||
'info' => User::show($userInfo),
|
||||
));
|
||||
@ -874,7 +877,7 @@ class UserController extends BaseAuthedController {
|
||||
);
|
||||
}
|
||||
|
||||
private function updateLastSeason($userInfo){
|
||||
private function _updateLastSeason($userInfo){
|
||||
if (! $userInfo['last_season_id']){
|
||||
$currSeasonMeta = mt\RankSeason::getCurrentSeason();
|
||||
if ($currSeasonMeta){
|
||||
@ -885,4 +888,35 @@ class UserController extends BaseAuthedController {
|
||||
}
|
||||
}
|
||||
|
||||
private function _sign(){
|
||||
//用户是否有签到记录
|
||||
if (SignLog::isSignRecord()){
|
||||
//有签到记录
|
||||
$row = SignLog::find();
|
||||
$paramMeta = \mt\Parameter::getByName('sign_daily_duration');
|
||||
$end_time = myself()->_getDaySeconds($row['createtime']) + $paramMeta['param_value']*24*60*60;
|
||||
//判断当前时间是否结束 并且 上次签到是否领取 并且 签到时间是否满足第二天签到
|
||||
if (myself()->_getNowTime() < $end_time
|
||||
&& $row['is_receive']
|
||||
&& $row['sign_time'] < myself()->_getNowDaySeconds() + 6*60*60){
|
||||
if($row['sign_time'] > myself()->_getNowDaySeconds()){
|
||||
return;
|
||||
}
|
||||
$fieldKv = array(
|
||||
'days' => function(){
|
||||
return "days + 1";
|
||||
},
|
||||
'is_receive' => 0,
|
||||
'sign_time' => myself()->_getNowTime(),
|
||||
'modifytime' => myself()->_getNowTime()
|
||||
);
|
||||
SignLog::update($fieldKv);
|
||||
}
|
||||
|
||||
}else{
|
||||
//未有签到记录
|
||||
SignLog::create();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ require_once('models/UserSeasonRing.php');
|
||||
require_once('models/Parachute.php');
|
||||
require_once('models/Hero.php');
|
||||
require_once('models/HeroPreset.php');
|
||||
require_once('models/SignLog.php');
|
||||
|
||||
use mt;
|
||||
use phpcommon;
|
||||
@ -99,6 +100,7 @@ class User extends BaseModel {
|
||||
'ring_list' => UserSeasonRing::ringList($row['account_id']),
|
||||
'current_star_num' => $current_star_num,
|
||||
'next_star_num' => $next_star_num,
|
||||
'status_bar' => self::_getState()
|
||||
);
|
||||
}
|
||||
|
||||
@ -160,6 +162,22 @@ class User extends BaseModel {
|
||||
'parachute_list' => Parachute::getMyParachute(),
|
||||
'current_star_num' => $current_star_num,
|
||||
'next_star_num' => $next_star_num,
|
||||
'status_bar' => self::_getState()
|
||||
);
|
||||
}
|
||||
|
||||
private static function _getState(){
|
||||
$sign_state = 0;
|
||||
$signDb = SignLog::find();
|
||||
$paramMeta = \mt\Parameter::getByName('sign_daily_duration');
|
||||
$end_time = myself()->_getDaySeconds($signDb['createtime'])+$paramMeta['param_value']*24*60*60;
|
||||
if ( myself()->_getNowTime() - $end_time > 0){
|
||||
$sign_state = 1;
|
||||
}
|
||||
|
||||
return array(
|
||||
"first_top_up" => myself()->_getV(TN_FIRST_TUPOP_STATUS,0),
|
||||
"sign_day" => $sign_state
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user