UsersController.php
4.7 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
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 管理端控制层: 用户端用户 控制类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @category App\Admin\Controllers\User
* @package App\Admin\Controllers\User
* @author Richer <yangzi1028@163.com>
* @date 2021年6月23日15:53:05
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Admin\Controllers\User;
use App\Admin\Controllers\BaseController;
use App\Admin\Shows\UserShow;
use App\Jobs\User\TimesRecordCreatedJob;
use App\Jobs\UserTimesRecordJob;
use App\Models\User\Role;
use App\Models\User\TimesRecord;
use App\Models\User\User;
use App\Admin\Forms\User\UserForm;
use App\Admin\Grids\User\UserGrid;
use App\Models\User\UserRemote;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\JsonResponse;
/**
* Class UsersController.
*
* @category App\Admin\Controllers\User
* @package App\Admin\Controllers\User
* @author Richer <yangzi1028@163.com>
* @date 2021年6月23日15:53:05
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
class UsersController extends BaseController
{
// 使用Grid和Form的trait
use UserGrid, UserForm, UserShow;
/**
* UsersController constructor.
*
* @param User $model 注入model
*/
public function __construct(User $model)
{
// 资源显示的中名称
$this->title = $model::OBJ_NAME;
// 是否可查看
$this->can_view = false;
// 是否可新增
$this->can_create = true;
// 是否可编辑
$this->can_edit = true;
// 是否可删除
$this->can_delete = true;
// 是否可导出
$this->can_export = false;
// 是否可导出
$this->can_import = false;
// 是否列表是否开启row selector
$this->grid_row_selector = true;
// 是否看见回收站
// $this->show_trashed = true;
// 是否开启下拉菜单
$this->dropdownActions = false;
// 执行父类构造方法
parent::__construct($model);
}
/**
* 添加实例界面
*
* @param $id
*/
public function timesPage($id)
{
// 获取数据,如果没有获取到抛出异常
return view('admin::user.times', compact('id'));
}
/**
* 添加站点
*
* @param integer $id 主键id
*
* @return JsonResponse
*/
public function updateTimes($id)
{
try {
$model = $this->model->findOrFail($id);
$times = request('value');
if (!is_numeric($times) || $times < 0) {
return response()->json(
[
'code' => 1,
'status' => 0,
'message' => '操作失败,次数格式不正确。',
]
);
}
$type = request('type');
if ($type == 2) {
$model->times -= $times;
} else {
$model->times += $times;
}
$result = $model->save();
if ($result) {
// 添加日志
// 记录中增加
$record = $model->timesRecords()->create([
'recordable_id' => 0,
'times' => $times,
'type' => $type,
'event' => TimesRecord::SYSTEM,
]);
// if ($type == 2) {
// UserRemote::where('id', $id)->decrement('times', $times);
// } else {
// UserRemote::where('id', $id)->increment('times', $times);
// }
// 同步记录
// TimesRecordCreatedJob::dispatch($record);
// UserTimesRecordJob::dispatch($record);
}
return response()->json(
[
'code' => 0,
'status' => 1,
'message' => __('operate_succeeded'),
]
);
} catch (\Exception $e) {
return response()->json(
[
'code' => 1,
'status' => 0,
'message' => $e->getMessage(),
]
);
}
}
}