This commit is contained in:
aozhiwei 2022-02-25 16:30:45 +08:00
parent 4fc4b6dc3d
commit 3a33f74470
3 changed files with 62 additions and 4 deletions

View File

@ -7,6 +7,8 @@ use phpcommon\SqlHelper;
class BigData extends BaseModel { class BigData extends BaseModel {
const OFFER_REWARD_MISSION_TYPE = 'offer.reward.missions';
public static function getData($type) public static function getData($type)
{ {
$row = SqlHelper::ormSelectOne( $row = SqlHelper::ormSelectOne(

View File

@ -82,7 +82,7 @@ class Task {
if ($type == self::OFFER_REWARD_MISSION_CUSTOM_TYPE) { if ($type == self::OFFER_REWARD_MISSION_CUSTOM_TYPE) {
foreach ($missionService->getOfferRewardMissions() as $missionId) { foreach ($missionService->getOfferRewardMissions() as $missionId) {
$meta = self::get($missionId); $meta = self::get($missionId);
if ($meta) { if ($meta && $meta['type'] == self::OFFER_REWARD_MISSON_TYPE) {
array_push($metaList, $meta); array_push($metaList, $meta);
} }
} }
@ -119,6 +119,21 @@ class Task {
return $meta['type'] == self::OFFER_REWARD_MISSION_CUSTOM_TYPE; return $meta['type'] == self::OFFER_REWARD_MISSION_CUSTOM_TYPE;
} }
public static function getOfferRewardMissions($excludeMetas)
{
$metas = array();
foreach (self::getMetaList() as $meta) {
if ($meta['type'] == self::OFFER_REWARD_MISSON_TYPE) {
if (!array_find($excludeMetas, function($val) {
})) {
array_push($metas, $meta);
}
}
}
return $metas;
}
protected static function getMetaList() protected static function getMetaList()
{ {
if (!self::$metaList) { if (!self::$metaList) {

View File

@ -3,16 +3,39 @@
namespace services; namespace services;
require_once('mt/Task.php'); require_once('mt/Task.php');
require_once('mt/Parameter.php');
require_once('models/Mission.php'); require_once('models/Mission.php');
require_once('models/Battle.php'); require_once('models/Battle.php');
require_once('models/BigData.php');
use phpcommon\SqlHelper; use phpcommon\SqlHelper;
use mt; use mt;
use models\User; use models\User;
use models\Mission; use models\Mission;
use models\Battle; use models\Battle;
use models\BigData;
/*
offer.reward.missions
{
"refreshtime": 0,
"missions": [
{
"mission_id": 100,
"createtime": 0,
"modifytime": 0,
"sendtime": 0,
"objects": [
{
"type": 1,
"id": 23142
}
]
}
]
}
*/
class MissionService extends BaseService { class MissionService extends BaseService {
private $userInfo = null; private $userInfo = null;
@ -21,6 +44,7 @@ class MissionService extends BaseService {
private $seasonBattleData = array(); private $seasonBattleData = array();
private $thisWeekBattleData = array(); private $thisWeekBattleData = array();
private $todayBattleData = array(); private $todayBattleData = array();
private $offerRewartdMission = array();
public function init($userInfo, $seasonDb) public function init($userInfo, $seasonDb)
{ {
@ -48,6 +72,16 @@ class MissionService extends BaseService {
'modifytime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime(),
); );
} }
$this->offerRewartdMission = BigData::getData(BigData::OFFER_REWARD_MISSION_TYPE);
if (!$this->offerRewartdMission) {
$this->offerRewartdMission = array();
}
{
$refreshTime = getXVal($this->offerRewartdMission, 'refreshtime');
if (myself()->_getNowDaySeconds() > $refreshTime) {
$this->refreshOfferRewardMission();
}
}
} }
public function getMissionDto($userInfo, $seasonDb, $missionDb, $missionMeta) public function getMissionDto($userInfo, $seasonDb, $missionDb, $missionMeta)
@ -513,10 +547,17 @@ class MissionService extends BaseService {
return myself()->_getV($x, $y); return myself()->_getV($x, $y);
} }
public function getOfferRewardMissions() private function refreshOfferRewardMission()
{ {
$missions = array(); $this->offerRewartdMission = myself()->_getNowTime();
return $missions; $num = mt\Parameter::getVal('wanted_refresh_mission_num', 0);
$sentMissions = array();
foreach ($this->offerRewartdMission as $mission) {
if ($mission['sendtime'] > 0) {
array_push($sentMissions, $mission);
}
}
$metas = mt\Task::getOfferRewardMissions($this->offerRewartdMission['missions']);
} }
private function getOfferRewardMissionInfo($missionId) private function getOfferRewardMissionInfo($missionId)