CustomController.php
3.9 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
<?php
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Models\BCustom;
/**
* 自定义 页面
* @author:dc
* @time 2023/5/9 10:08
* Class CustomController
* @package App\Http\Controllers\Bside
*/
class CustomController extends BaseController
{
/**
* 验证规则
* @var array[]
*/
private $verify = [
'role' => [
'name' => ['required','max:100'],
'title' => ['required','max:200'],
'keywords' => ['required','max:200'],
'description' => ['required','max:250'],
'html' => ['required'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
],
'message' => [
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'title.required' => '网页标题必须',
'title.max' => '网页标题不能超过200个字符',
'keywords.required' => '网页关键字必须',
'keywords.max' => '网页关键字不能超过200个字符',
'description.required' => '网页描述必须',
'description.max' => '网页描述不能超过250个字符',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏'
],
'attr' => [
]
];
/**
* 列表数据
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/8 16:37
*/
public function index(){
// 每页数量
$limit = intval($this->param['limit']??20);
$lists = BCustom::_all($this->user['project_id'],$limit)->toArray();
return $this->success($lists);
}
/**
* 创建数据
* @author:dc
* @time 2023/5/8 16:39
*/
public function create(){
return $this->save();
}
/**
* 修改
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Validation\ValidationException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/8 17:06
*/
public function update(){
$this->verify['role']['id'] = ['required','integer','gt:0'];
$this->verify['message']['id.gt'] = $this->verify['message']['id.integer'] = $this->verify['message']['id.required'] = '编辑导航数据不存在';
return $this->save();
}
/**
* 新增修改
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Validation\ValidationException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/8 17:06
*/
private function save(){
$data = $this->validate(request() ,$this->verify['role'],$this->verify['message']);
// 保存
$id = BCustom::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
}
return $this->success(BCustom::_find($this->user['project_id'],$id,true));
}
/**
* 删除数据
* @return \Illuminate\Http\JsonResponse
* @author:dc
* @time 2023/5/9 9:20
*/
public function delete(){
$id = $this->param['id']??0;
$data = BCustom::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
}
if($data->delete()){
return $this->response('删除成功',Code::SUCCESS);
}
}
}