fix: 종료된 유니크 경매 입찰시 버그
This commit is contained in:
@@ -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,18 +144,25 @@ class AuctionUniqueItem extends Auction
|
|||||||
foreach ($openUniqueAuctions as $auction) {
|
foreach ($openUniqueAuctions as $auction) {
|
||||||
$auctionIDList[] = $auction->id;
|
$auctionIDList[] = $auction->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
$rawHighestBids = Util::convertArrayToDict($db->query(
|
if($auctionIDList){
|
||||||
'SELECT bid.* FROM `ng_auction_bid` bid INNER JOIN (
|
$rawHighestBids = Util::convertArrayToDict($db->query(
|
||||||
SELECT `auction_id`, MAX(`amount`) as `max_amount`
|
'SELECT bid.* FROM `ng_auction_bid` bid INNER JOIN (
|
||||||
FROM `ng_auction_bid`
|
SELECT `auction_id`, MAX(`amount`) as `max_amount`
|
||||||
WHERE `auction_id` IN %li
|
FROM `ng_auction_bid`
|
||||||
GROUP BY `auction_id`
|
WHERE `auction_id` IN %li
|
||||||
ORDER BY `amount`
|
GROUP BY `auction_id`
|
||||||
) AS max_bid
|
ORDER BY `amount`
|
||||||
ON bid.`auction_id` = max_bid.`auction_id` AND bid.`amount` = max_bid.`max_amount`',
|
) AS max_bid
|
||||||
$auctionIDList,
|
ON bid.`auction_id` = max_bid.`auction_id` AND bid.`amount` = max_bid.`max_amount`',
|
||||||
) ?? [], 'auction_id');
|
$auctionIDList,
|
||||||
|
) ?? [], '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),
|
||||||
|
|||||||
Reference in New Issue
Block a user