作者 lyh

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

... ... @@ -210,18 +210,5 @@ class BaseController extends Controller
}
/**
* 验证
* @param $c
* @param $scene
* @return array
* @author:dc
* @time 2023/5/11 14:56
*/
protected final function verify($c,$scene=null){
return app($c)->setScene($scene?:Scene::$CREATE)->validated();
}
}
... ...
... ... @@ -114,7 +114,7 @@ class CustomController extends BaseController
$id = BCustom::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
return $this->success(BCustom::_find($this->user['project_id'],$id,true));
... ... @@ -132,7 +132,7 @@ class CustomController extends BaseController
$data = BCustom::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
... ... @@ -154,7 +154,7 @@ class CustomController extends BaseController
{
$data = BCustom::_find($this->user['project_id'],$id);
if(!$data){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
if($this->isPost()){
$html = $this->param['html']??'';
... ...
... ... @@ -4,9 +4,7 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Http\Requests\Bside\Nav\NavRequest;
use App\Models\BNav;
use Illuminate\Validation\Validator;
/**
* 导航栏目 b端编辑 c端显示
... ... @@ -18,6 +16,42 @@ use Illuminate\Validation\Validator;
class NavController extends BaseController
{
/**
* 验证规则
* @var array[]
*/
private $verify = [
'role' => [
'pid' => ['required','integer','gte:0'],
'name' => ['required','max:100'],
'location' => ['required','in:header,footer'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
'target' => ['required','in:0,1'],
'sort' => ['required','integer','gte:0']
],
'message' => [
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'location.required' => '位置选择错误',
'location.in' => '位置选择错误',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏',
'target.required' => '打开方式必须',
'target.in' => '打开方式选择错误',
'sort.required' => '排序必须',
'sort.integer' => '排序必须是一个数字',
'sort.gte' => '排序必须大于等于0',
],
'attr' => [
]
];
/**
* 列表数据
... ... @@ -64,7 +98,9 @@ class NavController extends BaseController
* @time 2023/5/8 17:06
*/
public function update(){
return $this->save(true);
$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();
}
/**
... ... @@ -76,22 +112,21 @@ class NavController extends BaseController
* @author:dc
* @time 2023/5/8 17:06
*/
private function save($edit=false){
$data = $this->verify(NavRequest::class,$edit?NavRequest::$UPDATE:null);
private function save(){
$data = $this->validate(request() ,$this->verify['role'],$this->verify['message']);
if($data['pid']){
// 验证是否存在上级
$all = BNav::_all($this->user['project_id'],$data['location']);
if(!$all->where('id',$data['pid'])->count()){
return $this->response('上级栏目不存在','B_NAV_PID_NOTFOUND');
return $this->response('上级栏目不存在',Code::SYSTEM_ERROR);
}
// 上级不允许是自己的下级
if(!empty($data['id'])){
$all = list_to_tree($all->toArray(),$data['id']);
$all = tree_to_list($all);
if(in_array($data['pid'],array_column($all,'id'))){
return $this->response('上级栏目不允许为本身的下级','B_NAV_PID_IS_CHILD');
return $this->response('上级栏目不允许为本身的下级',Code::SYSTEM_ERROR);
}
}
}
... ... @@ -100,7 +135,7 @@ class NavController extends BaseController
$id = BNav::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('导航菜单不存在','B_NAV_NOTFOUND');
return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);
}
return $this->success(BNav::_find($this->user['project_id'],$id,true));
... ... @@ -118,12 +153,12 @@ class NavController extends BaseController
$data = BNav::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('导航菜单不存在','B_NAV_NOTFOUND');
return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);
}
if(BNav::isChild($data['id'],$this->user['project_id'])){
return $this->response('存在下级无法删除','B_NAV_DELETE_CHILD');
return $this->response('存在下级无法删除',Code::SYSTEM_ERROR);
}
... ...
... ... @@ -57,7 +57,7 @@ class TemplateController extends BaseController
if($template_id && ATemplate::_bFind($template_id)){
BSetting::_save($this->user['project_id'],$template_id);
}else{
return $this->response('无法使用不存在的模板','B_TEMPLATE_NOTFOUND');
return $this->response('无法使用不存在的模板',Code::SYSTEM_ERROR);
}
}
... ... @@ -151,7 +151,7 @@ class TemplateController extends BaseController
$type = $this->param['type']??'';
if(!is_array($html)){
return $this->response('参数异常','B_CUSTOM_CHUNK_PARAMS');
return $this->response('参数异常',Code::SYSTEM_ERROR);
}
// 项目id
... ... @@ -161,7 +161,7 @@ class TemplateController extends BaseController
// 验证这个模板是否存在
if(!$type || !ATemplateHtml::_typeExist($template_id,$type)){
return $this->response('页面类型错误','B_CUSTOM_CHUNK_PARAMS_TYPE');
return $this->response('页面类型错误',Code::SYSTEM_ERROR);
}
... ...
... ... @@ -27,14 +27,4 @@ class BaseLogic extends Logic
}
/**
* 获取实例
* @param mixed ...$params
* @return static
* @author:dc
* @time 2023/5/11 15:23
*/
public static function instance(...$params){
return new static(...$params);
}
}
... ...
<?php
namespace App\Http\Logic\Bside;
use App\Helper\Arr;
use App\Models\BNav;
use App\Models\Inquiry;
/**
* @author:dc
* @time 2023/5/11 16:51
* Class NavLogic
* @package App\Http\Logic\Bside
*/
class NavLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new BNav();
}
/**
* @param $ids
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/11 16:59
*/
public function delete($ids,$map = [])
{
if(BNav::isChild($ids,$this->user['project_id'])){
$this->fail('存在下级无法删除','B_NAV_DELETE_CHILD');
}
return parent::delete($ids,$map); // TODO: Change the autogenerated stub
}
}
... ...
... ... @@ -384,4 +384,17 @@ class Logic
}
return $this->success($info);
}
/**
* 获取实例
* @param mixed ...$params
* @return static
* @author:dc
* @time 2023/5/11 15:23
*/
public static function instance(...$params){
return new static(...$params);
}
}
... ...
... ... @@ -14,7 +14,7 @@ use Illuminate\Validation\Rule;
*/
class TemplateRequest extends FormRequest
{
use Scene;
// use Scene;
/**
* Determine if the user is authorized to make this request.
... ... @@ -44,9 +44,9 @@ class TemplateRequest extends FormRequest
];
// 更新场景
if(!$this->isScene(Scene::$CREATE)){
unset($rule['id']);
}
// if(!$this->isScene(Scene::$CREATE)){
// unset($rule['id']);
// }
return $rule;
}
... ...
... ... @@ -43,10 +43,16 @@ class NavRequest extends FormRequest
'sort' => ['required','integer','gte:0']
];
// 修改
if($this->isScene(static::$UPDATE)){
$rule['id'] = ['required','integer'];
}
// 删除
if($this->isScene(static::$DELETE)){
$rule = ['id' => ['required','integer']];
}
return $rule;
}
... ...
... ... @@ -29,8 +29,14 @@ trait Scene {
private $scene;
/**
* @param $scene
* @return $this
* @author:dc
* @time 2023/5/11 17:14
*/
public function setScene($scene){
var_dump($scene);
$this->scene = $scene;
return $this;
... ... @@ -46,7 +52,12 @@ trait Scene {
}
/**
* @param $scene
* @return bool
* @author:dc
* @time 2023/5/11 17:14
*/
public function isScene($scene){
return $this->scene === $scene;
}
... ...