作者 lyh

Merge branch 'develop' into dev

@@ -4,8 +4,6 @@ namespace App\Http\Controllers\Aside; @@ -4,8 +4,6 @@ namespace App\Http\Controllers\Aside;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Controller; 6 use App\Http\Controllers\Controller;
7 -use App\Http\Requests\Aside\Template\TemplateRequest;  
8 -use App\Http\Requests\Scene;  
9 use Illuminate\Http\JsonResponse; 7 use Illuminate\Http\JsonResponse;
10 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
11 use Illuminate\Http\Exceptions\HttpResponseException; 9 use Illuminate\Http\Exceptions\HttpResponseException;
@@ -159,17 +157,6 @@ class BaseController extends Controller @@ -159,17 +157,6 @@ class BaseController extends Controller
159 } 157 }
160 158
161 159
162 - /**  
163 - * 验证  
164 - * @param $c  
165 - * @param $scene  
166 - * @return array  
167 - * @author:dc  
168 - * @time 2023/5/11 14:56  
169 - */  
170 - protected final function verify($c,$scene=null){  
171 - return app($c)->setScene($scene?:Scene::$CREATE)->validated();  
172 - }  
173 160
174 161
175 162
@@ -5,7 +5,6 @@ namespace App\Http\Controllers\Aside; @@ -5,7 +5,6 @@ namespace App\Http\Controllers\Aside;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Logic\Aside\Template\TemplateLogic; 6 use App\Http\Logic\Aside\Template\TemplateLogic;
7 use App\Http\Requests\Aside\Template\TemplateRequest; 7 use App\Http\Requests\Aside\Template\TemplateRequest;
8 -use App\Http\Requests\Scene;  
9 use App\Models\Template\ATemplate; 8 use App\Models\Template\ATemplate;
10 use App\Models\Template\ATemplateHtml; 9 use App\Models\Template\ATemplateHtml;
11 use Illuminate\Validation\Rule; 10 use Illuminate\Validation\Rule;
@@ -39,8 +38,8 @@ class TemplateController extends BaseController @@ -39,8 +38,8 @@ class TemplateController extends BaseController
39 * @author:dc 38 * @author:dc
40 * @time 2023/5/4 16:19 39 * @time 2023/5/4 16:19
41 */ 40 */
42 - public function edit(){  
43 - $this->save(Scene::$UPDATE); 41 + public function edit(TemplateRequest $request){
  42 + $this->save($request->validated());
44 } 43 }
45 44
46 /** 45 /**
@@ -48,8 +47,8 @@ class TemplateController extends BaseController @@ -48,8 +47,8 @@ class TemplateController extends BaseController
48 * @author:dc 47 * @author:dc
49 * @time 2023/5/5 9:30 48 * @time 2023/5/5 9:30
50 */ 49 */
51 - public function insert(){  
52 - $this->save(Scene::$CREATE); 50 + public function insert(TemplateRequest $request){
  51 + $this->save($request->validated());
53 } 52 }
54 53
55 54
@@ -62,11 +61,7 @@ class TemplateController extends BaseController @@ -62,11 +61,7 @@ class TemplateController extends BaseController
62 * @author:dc 61 * @author:dc
63 * @time 2023/5/11 10:13 62 * @time 2023/5/11 10:13
64 */ 63 */
65 - private function save($scene){  
66 -  
67 -  
68 - $data = $this->verify(TemplateRequest::class,$scene);  
69 - 64 + private function save($data){
70 65
71 TemplateLogic::instance()->save($data); 66 TemplateLogic::instance()->save($data);
72 67
@@ -120,9 +120,10 @@ class BlogController extends BaseController @@ -120,9 +120,10 @@ class BlogController extends BaseController
120 */ 120 */
121 public function status(BlogLogic $blogLogic){ 121 public function status(BlogLogic $blogLogic){
122 $this->request->validate([ 122 $this->request->validate([
123 - 'id'=>['required'], 123 + 'id'=>['required','array'],
124 ],[ 124 ],[
125 'id.required' => 'ID不能为空', 125 'id.required' => 'ID不能为空',
  126 + 'id.array' => 'ID为数组',
126 ]); 127 ]);
127 $blogLogic->blog_status(); 128 $blogLogic->blog_status();
128 //TODO::写入日志 129 //TODO::写入日志
@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Bside; @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Bside;
4 4
5 5
6 use App\Enums\Common\Code; 6 use App\Enums\Common\Code;
  7 +use App\Http\Logic\Bside\Nav\NavLogic;
  8 +use App\Http\Requests\Bside\Nav\NavRequest;
7 use App\Models\BNav; 9 use App\Models\BNav;
8 10
9 /** 11 /**
@@ -16,42 +18,6 @@ use App\Models\BNav; @@ -16,42 +18,6 @@ use App\Models\BNav;
16 class NavController extends BaseController 18 class NavController extends BaseController
17 { 19 {
18 20
19 - /**  
20 - * 验证规则  
21 - * @var array[]  
22 - */  
23 - private $verify = [  
24 - 'role' => [  
25 - 'pid' => ['required','integer','gte:0'],  
26 - 'name' => ['required','max:100'],  
27 - 'location' => ['required','in:header,footer'],  
28 - 'url' => ['required','max:200'],  
29 - 'status' => ['required','in:0,1'],  
30 - 'target' => ['required','in:0,1'],  
31 - 'sort' => ['required','integer','gte:0']  
32 - ],  
33 - 'message' => [  
34 - 'pid.required' => '上级选择错误',  
35 - 'pid.gte' => '上级选择错误',  
36 - 'pid.integer' => '上级选择错误',  
37 - 'name.required' => '名称必须',  
38 - 'name.max' => '名称不能超过100个字符',  
39 - 'location.required' => '位置选择错误',  
40 - 'location.in' => '位置选择错误',  
41 - 'url.required' => '链接必须',  
42 - 'url.max' => '链接不能超过200个字符',  
43 - 'status.required' => '状态选择错误',  
44 - 'status.in' => '状态必须是显示/隐藏',  
45 - 'target.required' => '打开方式必须',  
46 - 'target.in' => '打开方式选择错误',  
47 - 'sort.required' => '排序必须',  
48 - 'sort.integer' => '排序必须是一个数字',  
49 - 'sort.gte' => '排序必须大于等于0',  
50 - ],  
51 - 'attr' => [  
52 -  
53 - ]  
54 - ];  
55 21
56 /** 22 /**
57 * 列表数据 23 * 列表数据
@@ -62,46 +28,13 @@ class NavController extends BaseController @@ -62,46 +28,13 @@ class NavController extends BaseController
62 */ 28 */
63 public function index(){ 29 public function index(){
64 30
65 - $isTree = $this->param['tree']??false;  
66 - // 显示位置  
67 - $location = $this->param['location']??'';  
68 -  
69 - $lists = BNav::_all($this->user['project_id'],$location)->toArray();  
70 31
71 - if($isTree){  
72 - $lists = list_to_tree($lists);  
73 - }  
74 -  
75 - return $this->success($lists); 32 + return $this->success(NavLogic::instance()->list());
76 33
77 } 34 }
78 35
79 36
80 37
81 - /**  
82 - * 创建导航栏  
83 - * @author:dc  
84 - * @time 2023/5/8 16:39  
85 - */  
86 - public function create(){  
87 - return $this->save();  
88 - }  
89 -  
90 -  
91 - /**  
92 - * 修改  
93 - * @return \Illuminate\Http\JsonResponse  
94 - * @throws \Illuminate\Validation\ValidationException  
95 - * @throws \Psr\Container\ContainerExceptionInterface  
96 - * @throws \Psr\Container\NotFoundExceptionInterface  
97 - * @author:dc  
98 - * @time 2023/5/8 17:06  
99 - */  
100 - public function update(){  
101 - $this->verify['role']['id'] = ['required','integer','gt:0'];  
102 - $this->verify['message']['id.gt'] = $this->verify['message']['id.integer'] = $this->verify['message']['id.required'] = '编辑导航数据不存在';  
103 - return $this->save();  
104 - }  
105 38
106 /** 39 /**
107 * 新增修改 40 * 新增修改
@@ -112,33 +45,11 @@ class NavController extends BaseController @@ -112,33 +45,11 @@ class NavController extends BaseController
112 * @author:dc 45 * @author:dc
113 * @time 2023/5/8 17:06 46 * @time 2023/5/8 17:06
114 */ 47 */
115 - private function save(){  
116 - $data = $this->validate(request() ,$this->verify['role'],$this->verify['message']);  
117 -  
118 - if($data['pid']){  
119 - // 验证是否存在上级  
120 - $all = BNav::_all($this->user['project_id'],$data['location']);  
121 - if(!$all->where('id',$data['pid'])->count()){  
122 - return $this->response('上级栏目不存在',Code::SYSTEM_ERROR);  
123 - }  
124 - // 上级不允许是自己的下级  
125 - if(!empty($data['id'])){  
126 - $all = list_to_tree($all->toArray(),$data['id']);  
127 - $all = tree_to_list($all);  
128 - if(in_array($data['pid'],array_column($all,'id'))){  
129 - return $this->response('上级栏目不允许为本身的下级',Code::SYSTEM_ERROR);  
130 - }  
131 - }  
132 - }  
133 -  
134 - // 保存  
135 - $id = BNav::_save($this->user['project_id'],$data,$data['id']??0);  
136 -  
137 - if($id===-1){  
138 - return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);  
139 - }  
140 -  
141 - return $this->success(BNav::_find($this->user['project_id'],$id,true)); 48 + public function save(NavRequest $request){
  49 + $data = $request->validated();
  50 +
  51 + return $this->success(NavLogic::instance()->save($data));
  52 +
142 } 53 }
143 54
144 55
@@ -148,23 +59,14 @@ class NavController extends BaseController @@ -148,23 +59,14 @@ class NavController extends BaseController
148 * @author:dc 59 * @author:dc
149 * @time 2023/5/9 9:20 60 * @time 2023/5/9 9:20
150 */ 61 */
151 - public function delete(){  
152 - $id = $this->param['id']??0;  
153 - $data = BNav::_find($this->user['project_id'],$id);  
154 -  
155 - if(empty($data)){  
156 - return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);  
157 - } 62 + public function delete(NavRequest $request){
158 63
159 64
160 - if(BNav::isChild($data['id'],$this->user['project_id'])){  
161 - return $this->response('存在下级无法删除',Code::SYSTEM_ERROR);  
162 - } 65 + $id = $request->validated()['id'];
163 66
  67 + NavLogic::instance()->delete($id);
164 68
165 - if($data->delete()){  
166 - return $this->response('删除成功',Code::SUCCESS);  
167 - } 69 + return $this->response('删除成功');
168 70
169 } 71 }
170 72
@@ -118,9 +118,10 @@ class NewsController extends BaseController @@ -118,9 +118,10 @@ class NewsController extends BaseController
118 */ 118 */
119 public function status(NewsLogic $newsLogic){ 119 public function status(NewsLogic $newsLogic){
120 $this->request->validate([ 120 $this->request->validate([
121 - 'id'=>['required'], 121 + 'id'=>['required','array'],
122 ],[ 122 ],[
123 'id.required' => 'ID不能为空', 123 'id.required' => 'ID不能为空',
  124 + 'id.array' => 'ID为数组',
124 ]); 125 ]);
125 $newsLogic->news_status(); 126 $newsLogic->news_status();
126 //TODO::写入日志 127 //TODO::写入日志
1 <?php 1 <?php
2 2
3 -namespace App\Http\Logic\Bside; 3 +namespace App\Http\Logic\Bside\Nav;
4 4
5 -use App\Helper\Arr; 5 +
  6 +use App\Enums\Common\Code;
  7 +use App\Http\Logic\Bside\BaseLogic;
6 use App\Models\BNav; 8 use App\Models\BNav;
7 -use App\Models\Inquiry; 9 +
8 10
9 /** 11 /**
10 * @author:dc 12 * @author:dc
@@ -21,6 +23,52 @@ class NavLogic extends BaseLogic @@ -21,6 +23,52 @@ class NavLogic extends BaseLogic
21 $this->model = new BNav(); 23 $this->model = new BNav();
22 } 24 }
23 25
  26 + /**
  27 + * @return array
  28 + * @author:dc
  29 + * @time 2023/5/12 9:23
  30 + */
  31 + public function list(){
  32 + $where = [];
  33 + if(!empty($this->param['location'])){
  34 + $where[] = ['location','=',$this->param['location']];
  35 + }
  36 +
  37 + $lists = $this->getList($where,['sort'=>'asc'],['*'],false);
  38 +
  39 + $isTree = $this->param['tree']??false;
  40 +
  41 + if($isTree){
  42 + $lists = list_to_tree($lists);
  43 + }
  44 +
  45 + return $lists;
  46 + }
  47 +
  48 +
  49 + public function save($data)
  50 + {
  51 + if($data['pid']){
  52 + // 验证是否存在上级
  53 + $all = BNav::_all($this->user['project_id'],$data['location']);
  54 + if(!$all->where('id',$data['pid'])->count()){
  55 + $this->fail('上级栏目不存在');
  56 + }
  57 + // 上级不允许是自己的下级
  58 + if(!empty($data['id'])){
  59 + $all = list_to_tree($all->toArray(),$data['id']);
  60 + $all = tree_to_list($all);
  61 + if(in_array($data['pid'],array_column($all,'id'))){
  62 + $this->fail('上级栏目不允许为本身的下级');
  63 + }
  64 + }
  65 + }
  66 +
  67 + // 保存
  68 + $id = parent::save($data);
  69 +
  70 + return $this->getInfo($id['id']);
  71 + }
24 72
25 /** 73 /**
26 * @param $ids 74 * @param $ids
@@ -33,7 +81,7 @@ class NavLogic extends BaseLogic @@ -33,7 +81,7 @@ class NavLogic extends BaseLogic
33 public function delete($ids,$map = []) 81 public function delete($ids,$map = [])
34 { 82 {
35 if(BNav::isChild($ids,$this->user['project_id'])){ 83 if(BNav::isChild($ids,$this->user['project_id'])){
36 - $this->fail('存在下级无法删除','B_NAV_DELETE_CHILD'); 84 + $this->fail('存在下级无法删除');
37 } 85 }
38 86
39 return parent::delete($ids,$map); // TODO: Change the autogenerated stub 87 return parent::delete($ids,$map); // TODO: Change the autogenerated stub
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 2
3 namespace App\Http\Requests\Aside\Template; 3 namespace App\Http\Requests\Aside\Template;
4 4
5 -use App\Http\Requests\Scene;  
6 use Illuminate\Foundation\Http\FormRequest; 5 use Illuminate\Foundation\Http\FormRequest;
7 use Illuminate\Validation\Rule; 6 use Illuminate\Validation\Rule;
8 7
@@ -14,7 +13,6 @@ use Illuminate\Validation\Rule; @@ -14,7 +13,6 @@ use Illuminate\Validation\Rule;
14 */ 13 */
15 class TemplateRequest extends FormRequest 14 class TemplateRequest extends FormRequest
16 { 15 {
17 -// use Scene;  
18 16
19 /** 17 /**
20 * Determine if the user is authorized to make this request. 18 * Determine if the user is authorized to make this request.
@@ -44,9 +42,9 @@ class TemplateRequest extends FormRequest @@ -44,9 +42,9 @@ class TemplateRequest extends FormRequest
44 ]; 42 ];
45 43
46 // 更新场景 44 // 更新场景
47 -// if(!$this->isScene(Scene::$CREATE)){  
48 -// unset($rule['id']);  
49 -// } 45 + if(!$this->is('a/template/insert')){
  46 + unset($rule['id']);
  47 + }
50 48
51 return $rule; 49 return $rule;
52 } 50 }
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 2
3 namespace App\Http\Requests\Bside\Nav; 3 namespace App\Http\Requests\Bside\Nav;
4 4
5 -use App\Http\Requests\Scene;  
6 use Illuminate\Foundation\Http\FormRequest; 5 use Illuminate\Foundation\Http\FormRequest;
7 6
8 /** 7 /**
@@ -14,7 +13,6 @@ use Illuminate\Foundation\Http\FormRequest; @@ -14,7 +13,6 @@ use Illuminate\Foundation\Http\FormRequest;
14 */ 13 */
15 class NavRequest extends FormRequest 14 class NavRequest extends FormRequest
16 { 15 {
17 - use Scene;  
18 16
19 /** 17 /**
20 * Determine if the user is authorized to make this request. 18 * Determine if the user is authorized to make this request.
@@ -44,12 +42,12 @@ class NavRequest extends FormRequest @@ -44,12 +42,12 @@ class NavRequest extends FormRequest
44 ]; 42 ];
45 43
46 // 修改 44 // 修改
47 - if($this->isScene(static::$UPDATE)){ 45 + if($this->is('b/nav/update')){
48 $rule['id'] = ['required','integer']; 46 $rule['id'] = ['required','integer'];
49 } 47 }
50 48
51 // 删除 49 // 删除
52 - if($this->isScene(static::$DELETE)){ 50 + if($this->is('b/nav/delete')){
53 $rule = ['id' => ['required','integer']]; 51 $rule = ['id' => ['required','integer']];
54 } 52 }
55 53
@@ -59,8 +57,8 @@ class NavRequest extends FormRequest @@ -59,8 +57,8 @@ class NavRequest extends FormRequest
59 public function messages() 57 public function messages()
60 { 58 {
61 return [ 59 return [
62 - 'id.required' => '编辑导航数据不存在',  
63 - 'id.integer' => '编辑导航数据不存在', 60 + 'id.required' => '数据不存在',
  61 + 'id.integer' => '数据不存在',
64 'pid.required' => '上级选择错误', 62 'pid.required' => '上级选择错误',
65 'pid.gte' => '上级选择错误', 63 'pid.gte' => '上级选择错误',
66 'pid.integer' => '上级选择错误', 64 'pid.integer' => '上级选择错误',
1 -<?php  
2 -  
3 -namespace App\Http\Requests;  
4 -  
5 -/**  
6 - * @author:dc  
7 - * @time 2023/5/11 14:49  
8 - * Class Scene  
9 - * @package App\Http\Requests  
10 - */  
11 -trait Scene {  
12 -  
13 - /**  
14 - * 更新场景  
15 - */  
16 - static $UPDATE = 1;  
17 -  
18 - /**  
19 - * 创建场景  
20 - */  
21 - static $CREATE = 0;  
22 -  
23 - /**  
24 - * 删除场景  
25 - */  
26 - static $DELETE = -1;  
27 -  
28 -  
29 - private $scene;  
30 -  
31 -  
32 - /**  
33 - * @param $scene  
34 - * @return $this  
35 - * @author:dc  
36 - * @time 2023/5/11 17:14  
37 - */  
38 - public function setScene($scene){  
39 - var_dump($scene);  
40 - $this->scene = $scene;  
41 -  
42 - return $this;  
43 - }  
44 -  
45 -  
46 - /**  
47 - * @return mixed  
48 - */  
49 - public function getScene()  
50 - {  
51 - return $this->scene;  
52 - }  
53 -  
54 -  
55 - /**  
56 - * @param $scene  
57 - * @return bool  
58 - * @author:dc  
59 - * @time 2023/5/11 17:14  
60 - */  
61 - public function isScene($scene){  
62 - return $this->scene === $scene;  
63 - }  
64 -  
65 -}  
@@ -248,8 +248,8 @@ Route::middleware(['bloginauth'])->group(function () { @@ -248,8 +248,8 @@ Route::middleware(['bloginauth'])->group(function () {
248 // 导航栏编辑 248 // 导航栏编辑
249 Route::prefix('nav')->group(function () { 249 Route::prefix('nav')->group(function () {
250 Route::get('/', [\App\Http\Controllers\Bside\NavController::class, 'index'])->name('bside_nav'); 250 Route::get('/', [\App\Http\Controllers\Bside\NavController::class, 'index'])->name('bside_nav');
251 - Route::post('/create', [\App\Http\Controllers\Bside\NavController::class, 'create'])->name('bside_nav_create');  
252 - Route::post('/update', [\App\Http\Controllers\Bside\NavController::class, 'update'])->name('bside_nav_update'); 251 + Route::post('/create', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_create');
  252 + Route::post('/update', [\App\Http\Controllers\Bside\NavController::class, 'save'])->name('bside_nav_update');
253 Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete'); 253 Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete');
254 }); 254 });
255 255