WithdrawRecord.php
3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 模型层:用户-分佣记录 模型类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @category App\Models\User
* @package App\Models\User
* @author Richer <yangzi1028@163.com>
* @date 2023年5月8日11:48:37
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Models\User;
use App\Models\BaseModel;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Support\Arr;
/**
* Class WithdrawRecord
* @property mixed user_id
* @property mixed times
* @property mixed type
* @property mixed type_show
* @property mixed event
* @property mixed event_show
* @property mixed cardholder
* @property mixed account
* @property mixed bank_id
* @property mixed bank_name
* @property mixed receipt_code
* @property mixed amount
* @property mixed audited_at
* @package App\Models\User
*/
class WithdrawRecord extends BaseModel
{
// 指定数据库表
const TABLE = 'user_withdraw_records';
protected $table = self::TABLE;
// 指定对象显示名称:方便系统统一查询和做其他处理
const OBJ_NAME = 'withdraw-record';
const OBJ_NAME_ZH = '提现记录';
const BANK = 1;
const WECHAT = 2;
const ALIPAY = 3;
const TYPE_OPTIONS = [
self::BANK => '银行',
self::WECHAT => '微信',
self::ALIPAY => '支付宝',
];
/**
* 订单状态代码集
*/
const UNAUDITED = 1;// 待审核
const PASSED = 2;// 申报不通过
const FAILED = 9;// 申报不通过
const STATUS_OPTIONS = [
self::UNAUDITED => '待审核',
self::PASSED => '审核通过',
self::FAILED => '审核不通过',
];
const STATUS_COLOR_OPTIONS = [
self::UNAUDITED => 'danger',
self::PASSED => 'success',
self::FAILED => 'info',
];
/**
* 访问器被附加到模型数组的形式。
*
* @var array
*/
protected $appends = ['status_show', 'type_show'];
/**
* @return BelongsTo
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/**
* @return MorphMany
*/
public function records(): MorphMany
{
return $this->morphMany(WalletRecord::class, 'recordable');
}
/**
* @param $value
*/
public function setReceiptCodeAttribute($value)
{
// 需要判断前端传来的路径是否是全路径,如果是全路径需要截取为相对路径
$this->attributes['receipt_code'] = substr_file_path($value);
}
/**
* @param string $value 值
*
* @return array
* @throws GuzzleException
*/
public function getReceiptCodeAttribute($value)
{
return splice_file_path($value);
}
/**
* 获取类型的中文显示
*
* @return mixed
*/
public function getStatusShowAttribute()
{
return Arr::get(self::STATUS_OPTIONS, $this->status ? : self::UNAUDITED);
}
/**
* 获取类型的中文显示
*
* @return mixed
*/
public function getTypeShowAttribute()
{
return Arr::get(self::TYPE_OPTIONS, $this->type ? : self::BANK);
}
}