DealerMoneyLog.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
<?php
namespace app\api\model;
use think\Model;
use addons\shopro\exception\Exception;
use addons\shopro\model\User;
use think\Db;
use app\admin\library\Auth as AdminAuth;
/**
* 经销商余额日志
*/
class DealerMoneyLog extends Model
{
// 表名,不含前缀
protected $name = 'dealer_money_log';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
protected $deleteTime = false;
protected $hidden = ['deletetime'];
// 追加属性
protected $append = [
'type_name',
];
public static $typeAll = [
// money
'order' => ['code' => 'order', 'name' => '下单'],
'cash' => ['code' => 'cash', 'name' => '提现'],
'cash_error' => ['code' => 'cash_error', 'name' => '提现驳回'],
];
public function scopeAdd($query)
{
return $query->where('money', '>', 0);
}
public function scopeToday($query)
{
return $query->where('money', '>', 0)->whereTime('createtime','today');
}
public function scopeSeven($query)
{
return $query->where('money', '>', 0)->whereTime('createtime','-7 days');
}
public static function doAdd($dealer, $money, $type, $item_id, $is_add = 0)
{
// 自动获取操作人
if (strpos(request()->url(), 'api') !== false) {
// 用户
$oper = User::info();
$oper_type = 'user';
$oper_id = $oper ? $oper->id : $dealer['id'];
} else {
$adminAuth = AdminAuth::instance(); // 没有登录返回的还是这个类实例
$oper = null;
if ($adminAuth){
$oper = $adminAuth->getUserInfo();
}
if ($oper) {
$oper_type = 'admin';
$oper_id = $oper['id'];
} else {
$oper_type = 'system';
$oper_id = 0;
}
}
$self = self::create([
"dealer_id" => $dealer->id,
"money" => $is_add ? $money : -$money, // 符号直接存到记录里面
"type" => $type,
"item_id" => $item_id,
"oper_type" => $oper_type,
"oper_id" => $oper_id
]);
return $self;
}
public static function getList($status = 'all')
{
$user = User::info();
$walletLogs = new self();
if ($status != 'all') {
$walletLogs = $walletLogs->{$status}();
}
$walletLogs = $walletLogs->where(['user_id' => $user->id])
->order('id', 'DESC')->paginate(10);
foreach ($walletLogs as $w) {
$w->createtime = date('Y/m/d',$w->createtime);
switch ($w['type']) {
case 'package_commission':
case 'order_commssion':
$oper = \addons\shopro\model\User::get($w->oper_id);
$w->avatar = $oper['avatar'] ?? '';
$w->nickname = $oper['nickname'] ?? '';
break;
case 'cash':
case 'cash_error':
$w->avatar = $user->avatar;
$w->nickname = $user->nickname;
break;
}
}
return $walletLogs;
}
public static function getTypeName($type)
{
return isset(self::$typeAll[$type]) ? self::$typeAll[$type]['name'] : '';
}
public function getTypeNameAttr($value, $data)
{
return self::getTypeName($data['type']);
}
}