This commit is contained in:
aozhiwei 2024-04-19 20:16:11 +08:00
parent c44384542b
commit 6ef91c03c5

View File

@ -593,7 +593,8 @@ class BattleController extends BaseAuthedController {
myself()->_rspErr(2, 'map mode error'); myself()->_rspErr(2, 'map mode error');
return; return;
} }
if (!$this->checkTicket($customData, $mapModeMeta)) { $r = myself()->_getRedis($roomUuid);
if (!$this->checkTicket($r, $customData, $mapModeMeta)) {
myself()->_rspErr(2, 'map mode error'); myself()->_rspErr(2, 'map mode error');
return; return;
} }
@ -683,7 +684,7 @@ class BattleController extends BaseAuthedController {
array_push($data['team_list'], $teamInfo); array_push($data['team_list'], $teamInfo);
} }
error_log(json_encode($data)); error_log(json_encode($data));
$this->decTicket($customData, $mapModeMeta); $this->decTicket($r, $customData, $mapModeMeta);
myself()->_rspData($data); myself()->_rspData($data);
} }
@ -996,15 +997,20 @@ class BattleController extends BaseAuthedController {
return $info; return $info;
} }
private function checkTicket($customData, $mapModeMeta) private function checkTicket($r, $customData, $mapModeMeta)
{ {
if (empty($mapModeMeta['admission_item_id'])) { $itemId = $mapModeMeta['admission_item_id'];
if (empty($itemId)) {
return true;
}
$roomUuid = $customData['room_uuid'];
if ($r->get(DEC_BATTLE_TICKET . $roomUuid)) {
return true; return true;
} }
foreach ($customData['team_list'] as $team) { foreach ($customData['team_list'] as $team) {
foreach ($team['members'] as $member) { foreach ($team['members'] as $member) {
if (!$member['is_android']) { if (!$member['is_android']) {
$itemDb = Bag::findEx($member['account_id'], $mapModeMeta['admission_item_id']); $itemDb = Bag::findEx($member['account_id'], $itemId);
if (empty($itemDb) || $itemDb['item_num'] <= 0) { if (empty($itemDb) || $itemDb['item_num'] <= 0) {
return false; return false;
} }
@ -1014,12 +1020,13 @@ class BattleController extends BaseAuthedController {
return true; return true;
} }
private function decTicket($customData, $mapModeMeta) private function decTicket($r, $customData, $mapModeMeta)
{ {
$itemId = $mapModeMeta['admission_item_id']; $itemId = $mapModeMeta['admission_item_id'];
if (empty($itemId)) { if (empty($itemId)) {
return; return;
} }
$roomUuid = $customData['room_uuid'];
foreach ($customData['team_list'] as $team) { foreach ($customData['team_list'] as $team) {
foreach ($team['members'] as $member) { foreach ($team['members'] as $member) {
if (!$member['is_android']) { if (!$member['is_android']) {
@ -1030,6 +1037,7 @@ class BattleController extends BaseAuthedController {
} }
} }
} }
$r->setNxPx(DEC_BATTLE_TICKET . $roomUuid, 1, 1000 * 3600);
} }
} }