From 3617774689a49cc98be11d25f1806931db7196d8 Mon Sep 17 00:00:00 2001 From: hujiabin <519660157@qq.com> Date: Tue, 6 Jun 2023 19:47:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=847=E6=97=A5=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/controller/SignController.class.php | 38 ---------------------- webapp/controller/UserController.class.php | 38 ++++++++++++++++++++-- webapp/models/User.php | 18 ++++++++++ 3 files changed, 54 insertions(+), 40 deletions(-) diff --git a/webapp/controller/SignController.class.php b/webapp/controller/SignController.class.php index 15852505..cd7086fa 100644 --- a/webapp/controller/SignController.class.php +++ b/webapp/controller/SignController.class.php @@ -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); diff --git a/webapp/controller/UserController.class.php b/webapp/controller/UserController.class.php index f3aa8410..e5077a67 100644 --- a/webapp/controller/UserController.class.php +++ b/webapp/controller/UserController.class.php @@ -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(); + } + } + } diff --git a/webapp/models/User.php b/webapp/models/User.php index 7b1b3adf..8e45c6b9 100644 --- a/webapp/models/User.php +++ b/webapp/models/User.php @@ -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 ); }