jingcai-php/app/Model/Trade.php

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;
}
}