65 lines
1.5 KiB
PHP
65 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use RuLong\Order\Models\Order;
|
|
|
|
class Payment extends Model
|
|
{
|
|
protected $casts = [
|
|
'source' => 'array',
|
|
];
|
|
|
|
public static function boot()
|
|
{
|
|
parent::boot();
|
|
|
|
self::creating(function ($model) {
|
|
$model->state = 'INIT';
|
|
$model->trade_no = 'T' . date('ymdHis') . sprintf("%07d", mt_rand(0, pow(10, 7) - 1));
|
|
});
|
|
}
|
|
|
|
public function order()
|
|
{
|
|
return $this->belongsTo(Order::class);
|
|
}
|
|
|
|
public function getTypeTextAttribute()
|
|
{
|
|
switch ($this->type) {
|
|
case 'WECHAT':
|
|
return "微信支付";
|
|
break;
|
|
case 'ALIPAY':
|
|
return "支付宝支付";
|
|
break;
|
|
case 'BALANCE':
|
|
return "余额支付";
|
|
break;
|
|
|
|
default:
|
|
return "未知类型";
|
|
break;
|
|
}
|
|
}
|
|
|
|
public function getStateTextAttribute()
|
|
{
|
|
switch ($this->state) {
|
|
case 'INIT':
|
|
return '<span style="color:#2180ea">未支付</span>';
|
|
break;
|
|
case 'SUCCESS':
|
|
return '<span style="color:#14d000">已支付</span>';
|
|
break;
|
|
case 'OVER':
|
|
return '<span style="color:#ff0000">已结束</span>';
|
|
break;
|
|
default:
|
|
return "未知状态";
|
|
break;
|
|
}
|
|
}
|
|
}
|