6
0
Fork 0
jiqu-library-server/app/Models/DealerWalletToBankLog.php

92 lines
2.0 KiB
PHP

<?php
namespace App\Models;
use App\Casts\JsonArray;
use App\Enums\DealerWalletToBankLogPayWay;
use App\Enums\DealerWalletToBankLogStatus;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DealerWalletToBankLog extends Model
{
use HasFactory;
use HasDateTimeFormatter;
protected $attributes = [
'pay_way' => DealerWalletToBankLogPayWay::Offline,
'status' => DealerWalletToBankLogStatus::Pending,
];
protected $casts = [
'pay_info' => JsonArray::class,
'pay_at' => 'datetime',
'pay_way' => DealerWalletToBankLogPayWay::class,
'status' => DealerWalletToBankLogStatus::class,
];
/**
* @var array
*/
protected $fillable = [
'user_id',
'amount',
'status',
'remarks',
'rate',
'service_amount',
'account_amount',
'pay_info',
'pay_image',
'pay_sn',
'pay_way',
'pay_at',
'failed_reason',
];
/**
* 提现记录所属用户
*
*/
public function user()
{
return $this->belongsTo(User::class);
}
public function dealer()
{
return $this->belongsTo(Dealer::class, 'user_id', 'user_id');
}
/**
* 待打款状态
*
* @return boolean
*/
public function isPending()
{
return $this->status === DealerWalletToBankLogStatus::Pending;
}
public function isFailed()
{
return $this->status === DealerWalletToBankLogStatus::Failed;
}
/**
* 获取用户的打款信息
*
* @return void
*/
public function getPayInfo()
{
if ($this->isPending() || $this->isFailed()) {//待打款订单显示发货人收款信息
$payInfo = $this->user->dealer->pay_info;
} else {
$payInfo = $this->pay_info;
}
return $payInfo ?: null;
}
}