aozhiwei 2c913bd22f 1
2023-08-09 12:46:58 +08:00

151 lines
4.1 KiB
PHP

<?php
namespace models;
use phpcommon\SqlHelper;
class Mall extends BaseModel {
const PENDING_STATE = 0;
const BUY_OK_STATE = 1;
const CANCEL_STATE = 2;
public static function findByGoodsUuid($goodsUuid)
{
$row = SqlHelper::ormSelectOne(
myself()->_getMysql(''),
't_mall',
array(
'goods_uuid' => $goodsUuid
)
);
return $row;
}
public static function findByOrderId($orderId)
{
$row = SqlHelper::ormSelectOne(
myself()->_getMysql(''),
't_mall',
array(
'order_id' => $orderId
)
);
return $row;
}
public static function add($orderId, $goodsUuid, $itemId, $itemNum,
$currency, $price)
{
SqlHelper::insert
(myself()->_getMysql(''),
't_mall',
array(
'order_id' => $orderId,
'goods_uuid' => $goodsUuid,
'seller' => myself()->_getAccountId(),
'seller_address' => myself()->_getAddress(),
'item_id' => $itemId,
'item_num' => $itemNum,
'currency' => $currency,
'price' => $price,
'last_modify_price_time' => myself()->_getNowTime(),
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
));
}
public static function modifyPrice($goodsUuid, $price)
{
SqlHelper::update
(myself()->_getMysql(''),
't_mall',
array(
'goods_uuid' => $goodsUuid
),
array(
'price' => $price,
'last_modify_price_time' => myself()->_getNowTime(),
)
);
}
public static function cancel($goodsUuid)
{
SqlHelper::update
(myself()->_getMysql(''),
't_mall',
array(
'goods_uuid' => $goodsUuid
),
array(
'status' => self::CANCEL_STATE
)
);
}
public static function buyOk($orderId, $buyer)
{
SqlHelper::update
(myself()->_getMysql(''),
't_mall',
array(
'order_id' => $orderId
),
array(
'status' => self::BUY_OK_STATE,
'buyer' => $buyer,
'buy_ok_time' => myself()->_getNowTime()
)
);
}
public static function buy($goodsUuid, $buyer)
{
SqlHelper::update
(myself()->_getMysql(''),
't_mall',
array(
'goods_uuid' => $goodsUuid
),
array(
'last_buyer' => $buyer,
'last_buy_time' => myself()->_getNowTime()
)
);
}
public static function toDto($row)
{
$cancelCd = -1;
$modifyCd = -1;
if ($row['seller'] == myself()->_getAccountId() &&
$row['seller_address'] == myself()->_getAddress()) {
$cancelCd = myself()->_getNowTime() - $row['last_buy_time'];
if ($cancelCd > 3600 * 24) {
$cancelCd = 0;
}
$modifyCd = myself()->_getNowTime() - $row['last_modify_price_time'];
if ($modifyCd > 60 * 10) {
$modifyCd = 0;
}
if ($row['status'] != self::PENDING_STATE) {
$cancelCd = -1;
$modifyCd = -1;
}
}
return array(
'goods_uuid' => $row['goods_uuid'],
'seller' => $row['seller'],
'seller_address' => $row['seller_address'],
'item_id' => $row['item_id'],
'item_num' => $row['item_num'],
'currency' => $row['currency'],
'price' => $row['price'],
'cancel_countdown' => $cancelCd,
'modify_countdown' => $modifyCd
);
}
}