fix: 종료된 유니크 경매 입찰시 버그

This commit is contained in:
2022-06-10 00:38:34 +09:00
parent f95ee8fab8
commit e5ba980865
+11
View File
@@ -129,6 +129,10 @@ class AuctionUniqueItem extends Auction
public function bid(int $amount, bool $tryExtendCloseDate): ?string public function bid(int $amount, bool $tryExtendCloseDate): ?string
{ {
if($this->info->finished){
return '경매가 종료되었습니다.';
}
$db = DB::db(); $db = DB::db();
/** @var AuctionInfo[] */ /** @var AuctionInfo[] */
$openUniqueAuctions = array_map(fn ($raw) => AuctionInfo::fromArray($raw), $db->query( $openUniqueAuctions = array_map(fn ($raw) => AuctionInfo::fromArray($raw), $db->query(
@@ -140,7 +144,9 @@ class AuctionUniqueItem extends Auction
foreach ($openUniqueAuctions as $auction) { foreach ($openUniqueAuctions as $auction) {
$auctionIDList[] = $auction->id; $auctionIDList[] = $auction->id;
} }
$db = DB::db(); $db = DB::db();
if($auctionIDList){
$rawHighestBids = Util::convertArrayToDict($db->query( $rawHighestBids = Util::convertArrayToDict($db->query(
'SELECT bid.* FROM `ng_auction_bid` bid INNER JOIN ( 'SELECT bid.* FROM `ng_auction_bid` bid INNER JOIN (
SELECT `auction_id`, MAX(`amount`) as `max_amount` SELECT `auction_id`, MAX(`amount`) as `max_amount`
@@ -152,6 +158,11 @@ class AuctionUniqueItem extends Auction
ON bid.`auction_id` = max_bid.`auction_id` AND bid.`amount` = max_bid.`max_amount`', ON bid.`auction_id` = max_bid.`auction_id` AND bid.`amount` = max_bid.`max_amount`',
$auctionIDList, $auctionIDList,
) ?? [], 'auction_id'); ) ?? [], 'auction_id');
}
else{
$rawHighestBids = [];
}
/** @var array<int,AuctionBidItem> */ /** @var array<int,AuctionBidItem> */
$highestBids = Util::mapWithKey( $highestBids = Util::mapWithKey(
fn ($auctionID, $bid) => AuctionBidItem::fromArray($bid), fn ($auctionID, $bid) => AuctionBidItem::fromArray($bid),