92 lines
2.0 KiB
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;
|
|
}
|
|
}
|