fix: 베팅 대상에 들어가지 않은 국가가 성공 대상인 경우 버그
- purifyBettingKey에서 '해당 국가 없음' 에러를 내지 않도록 변경
This commit is contained in:
@@ -26,7 +26,7 @@ class Betting
|
|||||||
return Json::encode($bettingType);
|
return Json::encode($bettingType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function purifyBettingKey(array $bettingType): array
|
public function purifyBettingKey(array $bettingType, bool $ignoreOver = false): array
|
||||||
{
|
{
|
||||||
$selectCnt = $this->info->selectCnt;
|
$selectCnt = $this->info->selectCnt;
|
||||||
sort($bettingType, SORT_NUMERIC);
|
sort($bettingType, SORT_NUMERIC);
|
||||||
@@ -39,7 +39,7 @@ class Betting
|
|||||||
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(0 미만)' . print_r($bettingType, true));
|
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(0 미만)' . print_r($bettingType, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Util::array_last($bettingType) >= count($this->info->candidates)) {
|
if (!$ignoreOver && Util::array_last($bettingType) >= count($this->info->candidates)) {
|
||||||
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(초과)' . print_r($bettingType, true));
|
throw new \InvalidArgumentException('올바르지 않은 값이 있습니다.(초과)' . print_r($bettingType, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,10 +49,20 @@ class FinishNationBetting extends \sammo\Event\Action
|
|||||||
}
|
}
|
||||||
|
|
||||||
$winnerTypes = [];
|
$winnerTypes = [];
|
||||||
|
|
||||||
|
$notInBettingWinner = 0;
|
||||||
foreach ($winnerNations as $winnerNationID) {
|
foreach ($winnerNations as $winnerNationID) {
|
||||||
$winnerTypes[] = $nationIDMap[$winnerNationID];
|
if(key_exists($winnerNationID, $nationIDMap)){
|
||||||
|
$winnerTypes[] = $nationIDMap[$winnerNationID];
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
//혹시라도 베팅 시점 이후에 생성된 국가라 없을 수 있다.
|
||||||
|
$winnerTypes[] = count($nationIDMap) + $notInBettingWinner;
|
||||||
|
$notInBettingWinner += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$winnerTypes = $bettingHelper->purifyBettingKey($winnerTypes);
|
|
||||||
|
$winnerTypes = $bettingHelper->purifyBettingKey($winnerTypes, $notInBettingWinner > 0);
|
||||||
|
|
||||||
$bettingHelper->giveReward($winnerTypes);
|
$bettingHelper->giveReward($winnerTypes);
|
||||||
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
||||||
|
|||||||
Reference in New Issue
Block a user