订单、纠纷

This commit is contained in:
cano
2024-03-11 02:21:52 +08:00
parent 6d242ae973
commit 1161f06aeb
15 changed files with 855 additions and 53 deletions

View File

@ -1,8 +1,15 @@
<?php
namespace App\Models\Api\Order;
use App\Bean\Model\Api\Order\CustomerUserPostOrderBean;
use App\Const\Prefix;
use App\Exceptions\ModelException;
use App\Models\Api\Base\ApiBaseModel;
use Spatie\FlareClient\Api;
use App\Models\Api\Post\PostHistoryModel;
use App\Models\Api\Wallet\CustomerWalletBalanceTransactionModel;
use App\Tools\Logs;
use App\Tools\Times;
use App\Tools\Tools;
class CustomerUserPostOrderModel extends ApiBaseModel
{
@ -19,7 +26,6 @@ class CustomerUserPostOrderModel extends ApiBaseModel
'amount',
'buyer_wallet_transaction_id',
'seller_wallet_transaction_id',
'wallet_checkbook_id',
'dispute_status',
'dispute_result_status',
'created_at',
@ -28,7 +34,14 @@ class CustomerUserPostOrderModel extends ApiBaseModel
const PAY_STATUS_UNPAID = 1;
const PAY_STATUS_PAID = 2;
const PAY_STATUS_CANCEL = 3;
const PAY_STATUS_PAID_FAIL = 3;
const PAY_STATUS_CANCEL = 4;
const PAY_STATUS = [
self::PAY_STATUS_UNPAID => '未支付',
self::PAY_STATUS_PAID => '已支付',
self::PAY_STATUS_PAID_FAIL => '支付失败',
self::PAY_STATUS_CANCEL => '取消',
];
const DISPUTE_STATUS_UN_DISPUTE = 1;
const DISPUTE_STATUS_WAITING = 2;
@ -42,12 +55,48 @@ class CustomerUserPostOrderModel extends ApiBaseModel
self::DISPUTE_STATUS_FINISH => '申诉完成',
];
const DISPUTE_RESULT_STATUS_NO_MISTAKE = 1;
const DISPUTE_RESULT_STATUS_HAVE_MISTAKE = 2;
const DISPUTE_RESULT_STATUS = [
self::DISPUTE_RESULT_STATUS_NO_MISTAKE => '无过错',
self::DISPUTE_RESULT_STATUS_HAVE_MISTAKE => '有过错',
];
//订单购买
public function buy($buyer_uid, $seller_id,$currency_code, $amount, $post_id): bool|int
{
try {
$sn = Tools::genSnowflakeId(Prefix::ORDER_SN_PREFIX);
$datetimeNow = Times::getNowDateTime();
$bean = new CustomerUserPostOrderBean();
$bean->setAmount(abs($amount));
$bean->setSn($sn);
$bean->setPayStatus(self::PAY_STATUS_UNPAID);
$bean->setBuyerUid($buyer_uid); //买家
$bean->setSellerUid($seller_id); //卖家
$bean->setPid($post_id);
$bean->setBuyerCurrencyCode($currency_code); //买家
$bean->setSellerCurrencyCode($currency_code); //卖家
$bean->setDisputeStatus(self::DISPUTE_STATUS_UN_DISPUTE); //纠纷状态
$bean->setCreatedAt($datetimeNow);
$bean->setUpdatedAt($datetimeNow);
//查找post_history_id做快照
$oPostHistoryModel = new PostHistoryModel();
$resPostHistoryModel = $oPostHistoryModel->findLastPostId($post_id,['id']);
if(!$resPostHistoryModel) throw new ModelException('post_history_id not found');
$bean->setPostHistoryId($resPostHistoryModel->id);
$res = $this->addItem($bean->toArray());
if(!$res) throw new ModelException('order add fail');
$bean->setId($res->id);
//进行支付
$oCustomerWalletBalanceTransactionModel = new CustomerWalletBalanceTransactionModel();
$res = $oCustomerWalletBalanceTransactionModel->typeOrderPay($bean); //订单支付内部会进行order状态的更新
if(!$res) throw new ModelException('order pay fail');
Logs::SuccLog(__FUNCTION__, func_get_args());
return $bean->getId();
}catch (\Exception $e){
Logs::ErrLog(__FUNCTION__ . ' ' . 'catchErr', $e, func_get_args());
// throw new ModelException($e->getMessage());
return false;
}
}
}