42 lines
1.4 KiB
PHP
Executable File
42 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Model;
|
|
|
|
|
|
use App\Enums\BoolEnum;
|
|
use App\Enums\UserType;
|
|
use App\Model\Customer\CustomerRecharge;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class Trade extends BaseModel
|
|
{
|
|
const ROLE_CUSTOMER = UserType::CUSTOMER;
|
|
const ROLE_SELLER = UserType::SELLER;
|
|
|
|
protected $casts = [
|
|
'trade_response' => 'array',
|
|
];
|
|
|
|
public static function saveCustomerTrade(CustomerRecharge $recharge, $tradeData)
|
|
{
|
|
// 记录第三方交易信息
|
|
$trade = Trade::where('recharge_id', $recharge->id)->first();
|
|
if (!$trade) {
|
|
$trade = new Trade();
|
|
}
|
|
$trade->role = Trade::ROLE_CUSTOMER;
|
|
$trade->recharge_id = $recharge->id;
|
|
$trade->recharge_sn = $recharge->recharge_sn;
|
|
$trade->pay_type = $recharge->pay_type;
|
|
$trade->trade_sn = Arr::get($tradeData, 'trade_no', '');
|
|
$trade->trade_status = Arr::get($tradeData, 'trade_status', '');
|
|
$trade->trade_pay_date = empty($tradeData['send_pay_date']) ? date('Y-m-d H:i:s') : $tradeData['send_pay_date'];
|
|
$trade->trade_response = $tradeData;
|
|
$trade->trade_pay_status = $trade->trade_status == 'TRADE_SUCCESS' ? BoolEnum::YES : BoolEnum::NO;
|
|
$trade->trade_receipt_amount = Arr::get($tradeData, 'receipt_amount', 0);
|
|
$trade->trade_total_amount = Arr::get($tradeData, 'total_amount', 0);
|
|
$trade->save();
|
|
return $trade;
|
|
}
|
|
}
|