This commit is contained in:
aozhiwei 2023-08-07 13:03:54 +08:00
parent a7ca1bdc47
commit de58d063ed
2 changed files with 81 additions and 9 deletions

View File

@ -62,7 +62,80 @@ class MallController extends BaseAuthedController {
public function sell()
{
$address = $this->_getAddress();
if (!$address) {
$this->_rspErr(1, 'address not found');
return;
}
$itemId = getReqVal('item_id', '');
$amount = getReqVal('amount', '');
$currency = getReqVal('currency', '');
$price = getReqVal('price', '');
if ($itemId != V_ITEM_GOLD) {
$this->_rspErr(1, 'only support gold');
return;
}
if (empty($price)) {
$this->_rspErr(1, 'price not found');
return;
}
if ($price <= 0) {
$this->_rspErr(1, 'price must > 0');
return;
}
if (empty($amount)) {
$this->_rspErr(1, 'amount not found');
return;
}
if (!is_numeric($amount)) {
$this->_rspErr(1, 'amount must be number');
return;
}
if ($amount <= 0) {
$this->_rspErr(1, 'amount must > 0');
return;
}
if (!in_array(
$currency,
array(
'CEG',
'USDC',
'USDT'
)
)) {
$this->_rspErr(1, 'paramater error currency');
return;
}
$costItems = array(
array(
'item_id' => $itemId,
'item_num' => $amount
)
);
$lackItem = null;
if (!$this->_hasEnoughItems($costItems, $lackItem)) {
$this->_rspErr(2, $this->_getLackItemErrMsg($lackItem));
return;
}
$this->_decItems($costItems);
if ($itemId == V_ITEM_GOLD) {
//埋点
$event = [
'name' => LogService::MARKET_SELL_GOLD,
'val' => $amount
];
LogService::consumeGold($event);
}
$orderId = OrderId::gen();
Mall::Add(
$orderId,
$orderId,
$itemId,
$amount,
$currency,
$price
);
myself()->_rspOk();
}
public function cancel()

View File

@ -32,19 +32,18 @@ class Mall extends BaseModel {
return $row;
}
public static function add($orderId, $tokenId, $seller, $nftToken,
$amount, $currency, $pirce) {
public static function add($orderId, $goodsUuid, $itemId, $itemNum,
$currency, $pirce) {
self::internalUpdate(
$orderId,
array(
'token_id' => $tokenId,
'seller' => $seller,
'nft_token' => $nftToken,
'amount' => $amount,
'order_id' => $orderId,
'goods_uuid' => $goodsUuid,
'seller' => myself()->_getAccountId(),
'item_id' => $itemId,
'item_num' => $amount,
'currency' => $currency,
'price' => $price,
'activated' => 1,
'selltime' => myself()->_getNowTime(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
));