diff --git a/webapp/controller/UserController.class.php b/webapp/controller/UserController.class.php index fb2ca844..74a17d63 100644 --- a/webapp/controller/UserController.class.php +++ b/webapp/controller/UserController.class.php @@ -7,6 +7,7 @@ require_once('models/SignLog.php'); require_once('models/UserHonor.php'); require_once('models/GlobalData.php'); require_once('models/HeroPreset.php'); +require_once('models/CircuitTask.php'); require_once('mt/Parameter.php'); @@ -19,6 +20,7 @@ require_once('mt/Item.php'); require_once('mt/Map.php'); require_once('mt/MapMode.php'); require_once('mt/EconomyAttribute.php'); +require_once('mt/CircuitTask.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); @@ -36,6 +38,7 @@ use models\SignLog; use models\UserHonor; use models\GlobalData; use models\HeroPreset; +use models\CircuitTask; use services\LogService; class UserController extends BaseAuthedController { @@ -1136,6 +1139,9 @@ class UserController extends BaseAuthedController { } private function _sign(){ + if (CircuitTask::_verifyLoginToday()){ + myself()->_callModelStatic('CircuitTask','incTaskVal',mt\CircuitTask::LOGIN_TIMES_END,1); + } //用户是否有签到记录 if (SignLog::isSignRecord()){ //有签到记录 diff --git a/webapp/models/CircuitTask.php b/webapp/models/CircuitTask.php index 24753429..074d0755 100644 --- a/webapp/models/CircuitTask.php +++ b/webapp/models/CircuitTask.php @@ -19,6 +19,33 @@ class CircuitTask extends BaseModel return true; } + public static function _verifyLoginToday(){ + $circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit(); + $nextCircuitMeta = mt\CircuitTime::getNextCircuit(); + if ($circuitCircuitMeta || !$nextCircuitMeta){ + return false; + } + if (myself()->_getNowTime() < strtotime($nextCircuitMeta['task_open_time'])){ + return false; + } + $season = $nextCircuitMeta['circuit_season']; + $row = SqlHelper::ormSelectOne( + myself()->_getSelfMysql(), + 't_circuit_task_value', + array( + 'account_id' => myself()->_getAccountId(), + 'circuit_season' => $season, + 'task_type' => mt\CircuitTask::LOGIN_TIMES_END, + ) + ); + if ($row){ + if (myself()->_getDaySeconds($row['modifytime']) >= myself()->_getNowDaySeconds()){ + return false; + } + } + return true; + } + public static function incTaskVal($taskType,$value){ $circuitCircuitMeta = mt\CircuitTime::getCurrentCircuit(); diff --git a/webapp/mt/CircuitTask.php b/webapp/mt/CircuitTask.php index 2f829c97..2abe923b 100644 --- a/webapp/mt/CircuitTask.php +++ b/webapp/mt/CircuitTask.php @@ -8,6 +8,7 @@ class CircuitTask { const BATTLE_TIMES_END = 1; const COMPLETE_HASH_TASK_END = 2; + const LOGIN_TIMES_END = 3; public static function getListBySeason($season){ $metas = array();