作者 邓超

x

@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Aside; @@ -4,6 +4,8 @@ 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;
7 use Illuminate\Http\JsonResponse; 9 use Illuminate\Http\JsonResponse;
8 use Illuminate\Http\Request; 10 use Illuminate\Http\Request;
9 use Illuminate\Http\Exceptions\HttpResponseException; 11 use Illuminate\Http\Exceptions\HttpResponseException;
@@ -155,4 +157,25 @@ class BaseController extends Controller @@ -155,4 +157,25 @@ class BaseController extends Controller
155 } 157 }
156 return $data; 158 return $data;
157 } 159 }
  160 +
  161 +
  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 (new $c())->setScene($scene?:Scene::$CREATE)->validated();
  172 + }
  173 +
  174 +
  175 +
  176 + protected final function logic($c){
  177 +
  178 + }
  179 +
  180 +
158 } 181 }
@@ -3,6 +3,9 @@ @@ -3,6 +3,9 @@
3 namespace App\Http\Controllers\Aside; 3 namespace App\Http\Controllers\Aside;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
  6 +use App\Http\Logic\Aside\Template\TemplateLogic;
  7 +use App\Http\Requests\Aside\Template\TemplateRequest;
  8 +use App\Http\Requests\Scene;
6 use App\Models\Template\ATemplate; 9 use App\Models\Template\ATemplate;
7 use App\Models\Template\ATemplateHtml; 10 use App\Models\Template\ATemplateHtml;
8 use Illuminate\Validation\Rule; 11 use Illuminate\Validation\Rule;
@@ -37,7 +40,7 @@ class TemplateController extends BaseController @@ -37,7 +40,7 @@ class TemplateController extends BaseController
37 * @time 2023/5/4 16:19 40 * @time 2023/5/4 16:19
38 */ 41 */
39 public function edit(){ 42 public function edit(){
40 - $this->save(true); 43 + $this->save(Scene::$UPDATE);
41 } 44 }
42 45
43 /** 46 /**
@@ -46,7 +49,7 @@ class TemplateController extends BaseController @@ -46,7 +49,7 @@ class TemplateController extends BaseController
46 * @time 2023/5/5 9:30 49 * @time 2023/5/5 9:30
47 */ 50 */
48 public function insert(){ 51 public function insert(){
49 - $this->save(); 52 + $this->save(Scene::$CREATE);
50 } 53 }
51 54
52 55
@@ -59,47 +62,15 @@ class TemplateController extends BaseController @@ -59,47 +62,15 @@ class TemplateController extends BaseController
59 * @author:dc 62 * @author:dc
60 * @time 2023/5/11 10:13 63 * @time 2023/5/11 10:13
61 */ 64 */
62 - private function save($is_edit=false){ 65 + private function save($scene){
63 66
64 - $verify = [  
65 - 'role' => [  
66 - 'id' => ['required','integer'],  
67 - 'name' => ['required'],  
68 - 'status' => ['required',Rule::in(0,1)],  
69 - 'is_default' => ['required',Rule::in(0,1)],  
70 - 'sort' => ['required','integer'],  
71 - 'thumb' => ['required'],  
72 - 'url' => ['required'],  
73 - ],  
74 - 'message' => [  
75 - 'id.required' => 'id必须',  
76 - 'id.integer' => 'id必须',  
77 67
78 - 'name.required' => '名称必须',  
79 - 'status.integer' => '状态错误',  
80 - 'status.in' => '状态错误',  
81 - 'is_default.integer' => '是否默认',  
82 - 'is_default.in' => '是否默认',  
83 - 'sort.required' => '排序必须',  
84 - 'sort.integer' => '排序必须',  
85 - 'thumb.required' => '缩略图必须',  
86 - 'url.required' => '预览链接必须',  
87 - ]  
88 - ];  
89 - if(!$is_edit) unset($verify['role']['id']); 68 + $data = $this->verify(TemplateRequest::class,$scene);
90 69
91 - $data = $this->validate(request() ,$verify['role'],$verify['message']);  
92 70
  71 + (new TemplateLogic())->save($data);
93 72
94 73
95 - // 保存  
96 - $id = ATemplate::_save($data,$data['id']??0);  
97 -  
98 - if(!$id){  
99 - return $this->response('保存失败',Code::SYSTEM_ERROR);  
100 - }  
101 -  
102 - return $this->success(ATemplate::_find($id));  
103 } 74 }
104 75
105 76
  1 +<?php
  2 +
  3 +namespace App\Http\Logic\Aside\Template;
  4 +
  5 +
  6 +use App\Http\Logic\Aside\BaseLogic;
  7 +use App\Models\Template\ATemplate;
  8 +
  9 +/**
  10 + * @author:dc
  11 + * @time 2023/5/11 14:35
  12 + * Class TemplateLogic
  13 + * @package App\Http\Logic\Aside\Template
  14 + */
  15 +class TemplateLogic extends BaseLogic {
  16 +
  17 + public function __construct()
  18 + {
  19 + parent::__construct();
  20 +
  21 + $this->model = new ATemplate();
  22 + }
  23 +
  24 +
  25 +
  26 +
  27 +
  28 +}
  1 +<?php
  2 +
  3 +namespace App\Http\Requests\Aside\Template;
  4 +
  5 +use App\Http\Requests\Scene;
  6 +use Illuminate\Foundation\Http\FormRequest;
  7 +use Illuminate\Validation\Rule;
  8 +
  9 +/**
  10 + * @author:dc
  11 + * @time 2023/5/11 14:38
  12 + * Class TemplateRequest
  13 + * @package App\Http\Requests\Aside\Template
  14 + */
  15 +class TemplateRequest extends FormRequest
  16 +{
  17 + use Scene;
  18 +
  19 + /**
  20 + * Determine if the user is authorized to make this request.
  21 + *
  22 + * @return bool
  23 + */
  24 + public function authorize()
  25 + {
  26 + return true;
  27 + }
  28 +
  29 + /**
  30 + * Get the validation rules that apply to the request.
  31 + *
  32 + * @return array
  33 + */
  34 + public function rules()
  35 + {
  36 + $rule = [
  37 + 'id' => ['required','integer'],
  38 + 'name' => ['required'],
  39 + 'status' => ['required',Rule::in(0,1)],
  40 + 'is_default' => ['required',Rule::in(0,1)],
  41 + 'sort' => ['required','integer'],
  42 + 'thumb' => ['required'],
  43 + 'url' => ['required'],
  44 + ];
  45 +
  46 + // 更新场景
  47 + if(!$this->isScene(Scene::$CREATE)){
  48 + unset($rule['id']);
  49 + }
  50 +
  51 + return $rule;
  52 + }
  53 +
  54 +
  55 +
  56 + public function messages()
  57 + {
  58 + return [
  59 + 'id.required' => 'id必须',
  60 + 'id.integer' => 'id必须',
  61 +
  62 + 'name.required' => '名称必须',
  63 + 'status.integer' => '状态错误',
  64 + 'status.in' => '状态错误',
  65 + 'is_default.integer' => '是否默认',
  66 + 'is_default.in' => '是否默认',
  67 + 'sort.required' => '排序必须',
  68 + 'sort.integer' => '排序必须',
  69 + 'thumb.required' => '缩略图必须',
  70 + 'url.required' => '预览链接必须',
  71 + ];
  72 + }
  73 +
  74 +}
  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 + public function setScene($scene){
  33 +
  34 + $this->scene = $scene;
  35 +
  36 + return $this;
  37 + }
  38 +
  39 +
  40 + /**
  41 + * @return mixed
  42 + */
  43 + public function getScene()
  44 + {
  45 + return $this->scene;
  46 + }
  47 +
  48 +
  49 +
  50 + public function isScene($scene){
  51 + return $this->scene === $scene;
  52 + }
  53 +
  54 +}