This commit is contained in:
aozhiwei 2022-06-06 16:45:08 +08:00
parent 9998bc999f
commit 4514407efc

View File

@ -25,7 +25,6 @@ use models\Gun;
offer.reward.missions offer.reward.missions
{ {
"refreshtime": 0, "refreshtime": 0,
"count": 0,
"missions": [ "missions": [
{ {
"mission_id": 100, "mission_id": 100,
@ -84,13 +83,8 @@ class MissionService extends BaseService {
'missions' => array() 'missions' => array()
); );
} }
{
$refreshTime = getXVal($this->offerRewartdMission, 'refreshtime');
if (myself()->_getNowDaySeconds() > $refreshTime) {
$this->refreshOfferRewardMission(); $this->refreshOfferRewardMission();
} }
}
}
public function getMissionDto($userInfo, $seasonDb, $missionDb, $missionMeta) public function getMissionDto($userInfo, $seasonDb, $missionDb, $missionMeta)
{ {
@ -558,25 +552,26 @@ class MissionService extends BaseService {
private function refreshOfferRewardMission() private function refreshOfferRewardMission()
{ {
$this->offerRewartdMission['refreshtime'] = myself()->_getNowTime(); $wantedRefreshMissionNum = mt\Parameter::getVal
$sentMissions = array(); ('wanted_refresh_mission_num', 0);
foreach ($this->offerRewartdMission['missions'] as $mission) { if ($wantedRefreshMissionNum <=
if ($mission['sendtime'] > 0) { count($this->offerRewartdMission['missions'])) {
array_push($sentMissions, $mission); return;
} }
$metas = mt\Task::getOfferRewardMissions
($this->offerRewartdMission['missions']);
if (count($metas) < $wantedRefreshMissionNum) {
return;
} }
if (empty($this->offerRewartdMission['missions'])) {
$this->offerRewartdMission['missions'] = array(); foreach (array_rand($metas, count($metas)) as $key) {
if (count($this->offerRewartdMission['missions']) >=
$wantedRefreshMissionNum) {
break;
} }
$metas = mt\Task::getOfferRewardMissions($this->offerRewartdMission['missions']);
$num = min(count($metas), mt\Parameter::getVal('wanted_refresh_mission_num', 0));
if ($num > 0) {
$selectKeys = array_rand($metas, $num);
if (!is_array($selectKeys)) {
$selectKeys = array($selectKeys);
}
foreach ($selectKeys as $key) {
$meta = $metas[$key]; $meta = $metas[$key];
$found = false;
if (!$found) {
array_push($this->offerRewartdMission['missions'], array_push($this->offerRewartdMission['missions'],
array( array(
'mission_id' => $meta['id'], 'mission_id' => $meta['id'],
@ -587,7 +582,7 @@ class MissionService extends BaseService {
)); ));
} }
} }
$this->offerRewartdMission['count'] = $num; $this->offerRewartdMission['refreshtime'] = myself()->_getNowTime();
$this->saveOfferRewardMission(); $this->saveOfferRewardMission();
} }
@ -877,8 +872,8 @@ class MissionService extends BaseService {
public function getOfferRewardMissionCount() public function getOfferRewardMissionCount()
{ {
$count = getXVal($this->offerRewartdMission, 'count'); $missions = getXVal($this->offerRewartdMission, 'missions', array());
return $count; return count($missions);
} }
} }