作者 邓超

x

... ... @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Aside;
use App\Enums\Common\Code;
use App\Http\Controllers\Controller;
use App\Http\Requests\Aside\Template\TemplateRequest;
use App\Http\Requests\Scene;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Exceptions\HttpResponseException;
... ... @@ -155,4 +157,25 @@ class BaseController extends Controller
}
return $data;
}
/**
* 验证
* @param $c
* @param $scene
* @return array
* @author:dc
* @time 2023/5/11 14:56
*/
protected final function verify($c,$scene=null){
return (new $c())->setScene($scene?:Scene::$CREATE)->validated();
}
protected final function logic($c){
}
}
... ...
... ... @@ -3,6 +3,9 @@
namespace App\Http\Controllers\Aside;
use App\Enums\Common\Code;
use App\Http\Logic\Aside\Template\TemplateLogic;
use App\Http\Requests\Aside\Template\TemplateRequest;
use App\Http\Requests\Scene;
use App\Models\Template\ATemplate;
use App\Models\Template\ATemplateHtml;
use Illuminate\Validation\Rule;
... ... @@ -37,7 +40,7 @@ class TemplateController extends BaseController
* @time 2023/5/4 16:19
*/
public function edit(){
$this->save(true);
$this->save(Scene::$UPDATE);
}
/**
... ... @@ -46,7 +49,7 @@ class TemplateController extends BaseController
* @time 2023/5/5 9:30
*/
public function insert(){
$this->save();
$this->save(Scene::$CREATE);
}
... ... @@ -59,47 +62,15 @@ class TemplateController extends BaseController
* @author:dc
* @time 2023/5/11 10:13
*/
private function save($is_edit=false){
private function save($scene){
$verify = [
'role' => [
'id' => ['required','integer'],
'name' => ['required'],
'status' => ['required',Rule::in(0,1)],
'is_default' => ['required',Rule::in(0,1)],
'sort' => ['required','integer'],
'thumb' => ['required'],
'url' => ['required'],
],
'message' => [
'id.required' => 'id必须',
'id.integer' => 'id必须',
'name.required' => '名称必须',
'status.integer' => '状态错误',
'status.in' => '状态错误',
'is_default.integer' => '是否默认',
'is_default.in' => '是否默认',
'sort.required' => '排序必须',
'sort.integer' => '排序必须',
'thumb.required' => '缩略图必须',
'url.required' => '预览链接必须',
]
];
if(!$is_edit) unset($verify['role']['id']);
$data = $this->verify(TemplateRequest::class,$scene);
$data = $this->validate(request() ,$verify['role'],$verify['message']);
(new TemplateLogic())->save($data);
// 保存
$id = ATemplate::_save($data,$data['id']??0);
if(!$id){
return $this->response('保存失败',Code::SYSTEM_ERROR);
}
return $this->success(ATemplate::_find($id));
}
... ...
<?php
namespace App\Http\Logic\Aside\Template;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Template\ATemplate;
/**
* @author:dc
* @time 2023/5/11 14:35
* Class TemplateLogic
* @package App\Http\Logic\Aside\Template
*/
class TemplateLogic extends BaseLogic {
public function __construct()
{
parent::__construct();
$this->model = new ATemplate();
}
}
... ...
<?php
namespace App\Http\Requests\Aside\Template;
use App\Http\Requests\Scene;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
/**
* @author:dc
* @time 2023/5/11 14:38
* Class TemplateRequest
* @package App\Http\Requests\Aside\Template
*/
class TemplateRequest extends FormRequest
{
use Scene;
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rule = [
'id' => ['required','integer'],
'name' => ['required'],
'status' => ['required',Rule::in(0,1)],
'is_default' => ['required',Rule::in(0,1)],
'sort' => ['required','integer'],
'thumb' => ['required'],
'url' => ['required'],
];
// 更新场景
if(!$this->isScene(Scene::$CREATE)){
unset($rule['id']);
}
return $rule;
}
public function messages()
{
return [
'id.required' => 'id必须',
'id.integer' => 'id必须',
'name.required' => '名称必须',
'status.integer' => '状态错误',
'status.in' => '状态错误',
'is_default.integer' => '是否默认',
'is_default.in' => '是否默认',
'sort.required' => '排序必须',
'sort.integer' => '排序必须',
'thumb.required' => '缩略图必须',
'url.required' => '预览链接必须',
];
}
}
... ...
<?php
namespace App\Http\Requests;
/**
* @author:dc
* @time 2023/5/11 14:49
* Class Scene
* @package App\Http\Requests
*/
trait Scene {
/**
* 更新场景
*/
static $UPDATE = 1;
/**
* 创建场景
*/
static $CREATE = 0;
/**
* 删除场景
*/
static $DELETE = -1;
private $scene;
public function setScene($scene){
$this->scene = $scene;
return $this;
}
/**
* @return mixed
*/
public function getScene()
{
return $this->scene;
}
public function isScene($scene){
return $this->scene === $scene;
}
}
... ...