aozhiwei c7fad8a5ce 1
2023-08-29 19:29:20 +08:00

107 lines
2.8 KiB
PHP

<?php
namespace models;
use phpcommon\SqlHelper;
class Market extends BaseModel {
const PENDING_STATE = 0;
const BUY_OK_STATE = 1;
const CANCEL_STATE = 2;
public static function find($orderId, $netId){
$row = SqlHelper::ormSelectOne(
myself()->_getMysql(''),
't_market',
array(
'order_id' => $orderId,
'net_id' => $netId,
)
);
return $row;
}
public static function add($orderId, $netId, $tokenId, $seller, $nftToken,
$amount, $currency, $price, $fieldsKv) {
if (empty($fieldsKv)) {
$fieldsKv = array();
}
$fieldsKv = array_merge(
$fieldsKv,
array(
'token_id' => $tokenId,
'seller' => $seller,
'nft_token' => $nftToken,
'amount' => $amount,
'currency' => strtolower($currency),
'price' => $price,
'activated' => 1,
'selltime' => myself()->_getNowTime(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
));
self::internalUpdate(
$orderId,
$netId,
$fieldsKv);
}
public static function updatePrice($orderId, $netId, $price) {
self::internalUpdate(
$orderId,
$netId,
array(
'update_price' => $price,
'update_time' => myself()->_getNowTime(),
));
}
public static function buyOk($orderId, $netId) {
self::internalUpdate(
$orderId,
$netId,
array(
'status' => self::BUY_OK_STATE,
));
}
public static function cancel($orderId, $netId) {
self::internalUpdate(
$orderId,
$netId,
array(
'status' => self::CANCEL_STATE,
));
}
private static function internalUpdate($orderId, $netId, $fieldsKv){
SqlHelper::upsert
(myself()->_getMysql(''),
't_market',
array(
'order_id' => $orderId,
'net_id' => $netId,
),
array(
),
array(
'order_id' => $orderId,
'net_id' => $netId,
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
)
);
SqlHelper::update
(myself()->_getMysql(''),
't_market',
array(
'order_id' => $orderId,
'net_id' => $netId,
),
$fieldsKv
);
}
}