From 831779bbd585dbd4415241c73d09e5c8bf78a5f4 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 15 Dec 2021 10:48:14 +0800 Subject: [PATCH] 1 --- sql/gamedb.sql | 2 +- webapp/controller/BattleController.class.php | 21 ++++---- webapp/models/Battle.php | 43 +++++++++++++++ webapp/models/Season.php | 2 +- webapp/services/BattleDataService.php | 56 +++++++++++++++++++- webapp/services/MissionService.php | 16 ++---- 6 files changed, 114 insertions(+), 26 deletions(-) create mode 100644 webapp/models/Battle.php diff --git a/sql/gamedb.sql b/sql/gamedb.sql index f53d869..3771cca 100644 --- a/sql/gamedb.sql +++ b/sql/gamedb.sql @@ -251,7 +251,7 @@ DROP TABLE IF EXISTS `t_battle_record`; CREATE TABLE `t_battle_record` ( `idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id', `account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id(channel + "_" + gameid + "_" + openid)', - `battle_data` mediumblob COMMENT 'battle_data', + `request` mediumblob COMMENT 'request', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`idx`), diff --git a/webapp/controller/BattleController.class.php b/webapp/controller/BattleController.class.php index 1a9e253..ccaf5ec 100644 --- a/webapp/controller/BattleController.class.php +++ b/webapp/controller/BattleController.class.php @@ -3,10 +3,7 @@ require_once('models/User.php'); require_once('mt/Parameter.php'); -require_once('mt/Drop.php'); -require_once('mt/EquipUpgrade.php'); require_once('mt/Season.php'); -require_once('mt/RankReward.php'); require_once('mt/Equip.php'); require_once('services/PropertyChgService.php'); @@ -25,8 +22,19 @@ class BattleController extends BaseAuthedController { $this->_rspErr(1, '没有这个玩家1'); return; } + $battleDataService = new services\BattleDataService(); + $battleDataService->updateBattleData(); $this->updateUserBaseInfo($userInfo); - $this->updateMission($userInfo); + SqlHelper::insert( + $this->_getSelfMysql(), + 't_battle_record', + array( + 'account_id' => $this->_getAccountId(), + 'request' => json_encode($_REQUEST), + 'createtime' => $this->_getNowTime(), + 'modifytime' => $this->_getNowTime(), + ) + ); $this->_rspOk(); } @@ -34,9 +42,4 @@ class BattleController extends BaseAuthedController { { } - private function updateMission($userInfo) - { - - } - } diff --git a/webapp/models/Battle.php b/webapp/models/Battle.php new file mode 100644 index 0000000..a310ffa --- /dev/null +++ b/webapp/models/Battle.php @@ -0,0 +1,43 @@ +_getSelfMysql(), + 't_battle', + array( + 'account_id' => myself()->_getAccountId(), + ) + ); + return $row ? json_decode($row['battle_data'], true) : array(); + } + + public static function add($battleData) + { + SqlHelper::upsert + (myself()->_getSelfMysql(), + 't_battle', + array( + 'account_id' => myself()->_getAccountId(), + ), + array( + 'battle_data' => $battleData, + 'modifytime' => myself()->_getNowTime(), + ), + array( + 'account_id' => myself()->_getAccountId(), + 'battle_data' => $battleData, + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime() + ) + ); + } + +} diff --git a/webapp/models/Season.php b/webapp/models/Season.php index d05e3ee..133ad8e 100644 --- a/webapp/models/Season.php +++ b/webapp/models/Season.php @@ -88,7 +88,7 @@ class Season extends BaseModel { ); } - public static function update($fieldsKv) + public static function update($seasonId, $fieldsKv) { SqlHelper::update( diff --git a/webapp/services/BattleDataService.php b/webapp/services/BattleDataService.php index cae5519..b2d4508 100644 --- a/webapp/services/BattleDataService.php +++ b/webapp/services/BattleDataService.php @@ -68,17 +68,69 @@ namespace services; require_once('mt/Item.php'); require_once('mt/Equip.php'); +require_once('mt/Season.php'); + +require_once('models/Season.php'); +require_once('models/Battle.php'); use phpcommon\SqlHelper; +use models\Season; +use models\Battle; class BattleDataService extends BaseService { private $seasonDb = array(); - private $hisBattleData = array(); public function updateBattleData() { - + $this->currSeasonMeta = mt\Season::getCurrentSeason(); + if (!$this->currSeasonMeta) { + return; + } + $this->seasonDb = Season::find($this->currSeasonMeta['id']); + if (!$this->seasonDb) { + Season::add($this->currSeasonMeta['id']); + $this->seasonDb = Season::find($this->currSeasonMeta['id']); + } + if (!$this->seasonDb) { + return; + } + $hisBattleData = Battle::getMyBattleData(); + $this->apply($hisBattleData); + Battle::add($hisBattleData); + $seasonBattleData = json_decode($this->seasonDb['battle_data'], true); + if (!isset($seasonBattleData['today_data'])) { + $seasonBattleData['today_data'] = array( + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime() + ); + } + if (!isset($seasonBattleData['his_week_data'])) { + $seasonBattleData['his_week_data'] = array( + ); + } + if (!isset($seasonBattleData['this_week_data'])) { + $seasonBattleData['this_week_data'] = array( + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime() + ); + } + if (myself()->_getDaySeconds($seasonBattleData['today_data']['modifytime']) < + myself()->_getNowDaySeconds()) { + $seasonBattleData['today_data'] = array( + 'createtime' => $seasonBattleData['today_data']['createtime'], + 'modifytime' => myself()->_getNowTime() + ); + } + if (myself()->_getDaySeconds($seasonBattleData['this_week_data']['modifytime']) < + myself()->_getMondaySeconds()) { + $seasonBattleData['this_week_data'] = array( + 'createtime' => $seasonBattleData['this_week_data']['createtime'], + 'modifytime' => myself()->_getNowTime() + ); + } + $this->apply($seasonBattleData['today_data']); + $this->apply($seasonBattleData['this_week_data']); } private function apply(&$battleData) diff --git a/webapp/services/MissionService.php b/webapp/services/MissionService.php index 7644d35..80a5db1 100644 --- a/webapp/services/MissionService.php +++ b/webapp/services/MissionService.php @@ -366,18 +366,8 @@ class MissionService extends BaseService { //本季度 //永久 $val = 0; - if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) { - if ($missionMeta['type'] == mt\Task::SEASONCARD_MISSON_TYPE && - $missionMeta['subtype'] == mt\Task::SEASON_WEAKLY_MISSON_SUBTYPE) { - $weeklyData = getXVal($this->seasonDb, 'weekly_data', array()); - $weekDb = getXVal($weeklyData, $missionMeta['week'], array()); - $val = getXVal($weekDb, $key, 0); - } else { - $val = getXVal($this->seasonDb, $key, 0); - } - } else { - $val = getXVal($this->userInfo, $key, 0); - } + $battleData = $this->internalGetBattleData($missionMeta); + $val = getXVal($battleData, $key, 0); return $val; } @@ -385,7 +375,7 @@ class MissionService extends BaseService { { $battleData = null; if ($missionMeta['type'] == mt\Task::DAILY_MISSON_TYPE) { - $battleData = $this->$this->dailyBattleData; + $battleData = $this->dailyBattleData; } else { if ($missionMeta['season_task'] == mt\Task::SEASON_MISSON_FLAG) { if ($missionMeta['type'] == mt\Task::SEASONCARD_MISSON_TYPE &&