feat,wip: 유니크 입찰 기본 구현

This commit is contained in:
2022-06-09 01:21:21 +09:00
parent 4d6b3d1a53
commit a12e15eb78
6 changed files with 206 additions and 51 deletions
@@ -4,10 +4,12 @@ namespace sammo\API\Auction;
use sammo\Session;
use DateTimeInterface;
use sammo\AuctionUniqueItem;
use sammo\DB;
use sammo\DTO\AuctionBidItem;
use sammo\DTO\AuctionInfo;
use sammo\Enums\AuctionType;
use sammo\TimeUtil;
use sammo\Validator;
class GetUniqueItemAuctionDetail extends \sammo\BaseAPI
@@ -16,14 +18,14 @@ class GetUniqueItemAuctionDetail extends \sammo\BaseAPI
{
$v = new Validator($this->args);
$v->rule('required', [
'auction_id',
'auctionID',
])
->rule('integer', 'auction_id');
->rule('integer', 'auctionID');
if (!$v->validate()) {
return $v->errorStr();
}
$this->args['auction_id'] = (int)$this->args['auction_id'];
$this->args['auctionID'] = (int)$this->args['auctionID'];
return null;
}
@@ -37,11 +39,11 @@ class GetUniqueItemAuctionDetail extends \sammo\BaseAPI
$db = DB::db();
$generalID = $session->generalID;
$auctionID = $this->args['auction_id'];
$auctionID = $this->args['auctionID'];
$rawAuction = $db->queryFirstRow(
'SELECT * FROM `ng_auction` WHERE `type` = %s AND `auction_id` = %s',
AuctionType::UniqueItem,
'SELECT * FROM `ng_auction` WHERE `type` = %s AND `id` = %i',
AuctionType::UniqueItem->value,
$auctionID
);
@@ -63,10 +65,12 @@ class GetUniqueItemAuctionDetail extends \sammo\BaseAPI
'generalName' => $bid->aux->generalName,
'amount' => $bid->amount,
'isCallerHighestBidder' => $bid->generalID === $generalID,
'date' => $bid->date,
'date' => TimeUtil::format($bid->date, false),
];
}
$obfuscatedName = AuctionUniqueItem::genObfuscatedName($generalID);
return [
'result' => true,
'auction' => [
@@ -80,6 +84,7 @@ class GetUniqueItemAuctionDetail extends \sammo\BaseAPI
'availableLatestBidCloseDate' => $auction->detail->availableLatestBidCloseDate,
],
'bidList' => $responseBid,
'obfuscatedName' => $obfuscatedName,
];
}
}
@@ -4,10 +4,12 @@ namespace sammo\API\Auction;
use sammo\Session;
use DateTimeInterface;
use sammo\AuctionUniqueItem;
use sammo\DB;
use sammo\DTO\AuctionBidItem;
use sammo\DTO\AuctionInfo;
use sammo\Enums\AuctionType;
use sammo\TimeUtil;
use sammo\Util;
class GetUniqueItemAuctionList extends \sammo\BaseAPI
@@ -56,6 +58,8 @@ class GetUniqueItemAuctionList extends \sammo\BaseAPI
$rawHighestBids
);
$obfuscatedName = AuctionUniqueItem::genObfuscatedName($generalID);
$response = [];
foreach ($auctions as $auction) {
$auctionID = $auction->id;
@@ -71,8 +75,9 @@ class GetUniqueItemAuctionList extends \sammo\BaseAPI
'target' => $auction->target,
'isCallerHost' => $auction->hostGeneralID === $generalID,
'hostName' => $auction->detail->hostName,
'closeDate' => TimeUtil::format($auction->closeDate, false),
'remainCloseDateExtensionCnt' => $auction->detail->remainCloseDateExtensionCnt,
'availableLatestBidCloseDate' => $auction->detail->availableLatestBidCloseDate,
'availableLatestBidCloseDate' => TimeUtil::format($auction->detail->availableLatestBidCloseDate, false),
'highestBid' => [
'generalName' => $highestBid->aux->generalName,
'amount' => $highestBid->amount,
@@ -85,6 +90,7 @@ class GetUniqueItemAuctionList extends \sammo\BaseAPI
return [
'result' => true,
'list' => $response,
'obfuscatedName' => $obfuscatedName,
];
}
}