作者 赵彬吉

update

@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 namespace App\Http\Controllers\Bside; 3 namespace App\Http\Controllers\Bside;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
  6 +use App\Exceptions\BsideGlobalException;
6 use App\Helper\Common; 7 use App\Helper\Common;
7 use App\Http\Controllers\Controller; 8 use App\Http\Controllers\Controller;
8 use App\Http\Requests\Scene; 9 use App\Http\Requests\Scene;
@@ -144,6 +145,16 @@ class BaseController extends Controller @@ -144,6 +145,16 @@ class BaseController extends Controller
144 return response()->json($response,200,$this->header); 145 return response()->json($response,200,$this->header);
145 } 146 }
146 147
  148 + /**
  149 + * @notes: 错误抛出
  150 + * @param string $code
  151 + * @param string $message
  152 + * @throws BsideGlobalException
  153 + */
  154 + public function fail(string $message = "", string $code = Code::SYSTEM_ERROR)
  155 + {
  156 + throw new BsideGlobalException($code, $message);
  157 + }
147 158
148 /** 159 /**
149 * @name :写入操作日志 160 * @name :写入操作日志
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside\Nav;
  4 +
  5 +
  6 +use App\Enums\Common\Code;
  7 +use App\Http\Controllers\Bside\BaseController;
  8 +use App\Models\Nav\BNavGroup;
  9 +use Illuminate\Http\Request;
  10 +
  11 +/**
  12 + * 导航组
  13 + * Class NavGroupController
  14 + * @package App\Http\Controllers\Bside\Nav
  15 + * @author zbj
  16 + * @date 2023/10/9
  17 + */
  18 +class NavGroupController extends BaseController
  19 +{
  20 +
  21 + public function index(BNavGroup $nav_group){
  22 + $this->map['project_id'] = $this->user['project_id'];
  23 + $lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc');
  24 + $this->response('success',Code::SUCCESS,$lists);
  25 + }
  26 +
  27 + public function save(Request $request){
  28 + $request->validate([
  29 + 'name'=> ['required','max:100'],
  30 + ],[
  31 + 'name.required' => '菜单组名称不能为空',
  32 + 'name.max' => '菜单组名称不能超过100个字符'
  33 + ]);
  34 + if(empty($this->param['id'])){
  35 + $nav_group = new BNavGroup();
  36 + }else{
  37 + if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
  38 + $this->fail('系统内置菜单组不能修改');
  39 + }
  40 + $nav_group = BNavGroup::find($this->param['id']);
  41 + if(!$nav_group){
  42 + $this->fail('数据不存在或者已经删除');
  43 + }
  44 + }
  45 + $nav_group->project_id = $this->user['project_id'];
  46 + $nav_group->name = $this->param['name'];
  47 + $nav_group->save();
  48 +
  49 + $this->response('success');
  50 + }
  51 +
  52 + public function delete(Request $request){
  53 + $request->validate([
  54 + 'id'=>'required',
  55 + ],[
  56 + 'id.required' => 'ID不能为空',
  57 + ]);
  58 + if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
  59 + $this->fail('系统内置菜单组不能删除');
  60 + }
  61 + $nav_group = BNavGroup::find($this->param['id']);
  62 + if(!$nav_group){
  63 + $this->response('数据不存在或者已经删除');
  64 + }
  65 + $nav_group->delete();
  66 +
  67 + $this->response('success');
  68 + }
  69 +}
@@ -149,6 +149,17 @@ class ProjectLogic extends BaseLogic @@ -149,6 +149,17 @@ class ProjectLogic extends BaseLogic
149 $param['confirm_file'] = Arr::a2s($param['confirm_file']); 149 $param['confirm_file'] = Arr::a2s($param['confirm_file']);
150 } 150 }
151 unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']); 151 unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']);
  152 +
  153 + //文件上传默认值
  154 + if($param['is_upload_manage']){
  155 + $param['upload_config'] = [
  156 + 'upload_max_num' => $param['upload_config']['upload_max_num'] ?? 100,
  157 + 'allow_file_type' => $param['upload_config']['allow_file_type'] ?? 'doc,docx,xls,xlsx,pdf,txt,csv,png,jpg,jpeg',
  158 + 'upload_max_size' => $param['upload_config']['upload_max_size'] ?? 5,
  159 + ];
  160 + }
  161 +
  162 +
152 $this->model->edit($param,['id'=>$param['id']]); 163 $this->model->edit($param,['id'=>$param['id']]);
153 Common::del_user_cache($this->model->getTable(),$param['id']); 164 Common::del_user_cache($this->model->getTable(),$param['id']);
154 return $this->success(); 165 return $this->success();
@@ -32,6 +32,7 @@ class NavRequest extends FormRequest @@ -32,6 +32,7 @@ class NavRequest extends FormRequest
32 public function rules() 32 public function rules()
33 { 33 {
34 $rule = [ 34 $rule = [
  35 + 'group_id' => ['required','integer'],
35 'pid' => ['required','integer'], 36 'pid' => ['required','integer'],
36 'name' => ['required','max:100'], 37 'name' => ['required','max:100'],
37 ]; 38 ];
@@ -41,6 +42,8 @@ class NavRequest extends FormRequest @@ -41,6 +42,8 @@ class NavRequest extends FormRequest
41 public function messages() 42 public function messages()
42 { 43 {
43 return [ 44 return [
  45 + 'group_id.required' => '未定义菜单组',
  46 + 'group_id.integer' => '菜单组错误',
44 'pid.required' => '上级选择错误', 47 'pid.required' => '上级选择错误',
45 'pid.gte' => '上级选择错误', 48 'pid.gte' => '上级选择错误',
46 'pid.integer' => '上级选择错误', 49 'pid.integer' => '上级选择错误',
  1 +<?php
  2 +
  3 +namespace App\Models\Nav;
  4 +
  5 +use App\Models\Base;
  6 +use Illuminate\Database\Eloquent\SoftDeletes;
  7 +
  8 +/**
  9 + * Class BNavGroup
  10 + * @package App\Models\Nav
  11 + * @author zbj
  12 + * @date 2023/10/9
  13 + */
  14 +class BNavGroup extends Base
  15 +{
  16 +
  17 + protected $table = 'gl_web_nav_group';
  18 + //连接数据库
  19 + protected $connection = 'custom_mysql';
  20 + use SoftDeletes;
  21 +
  22 + public $hidden = ['deleted_at'];
  23 +
  24 + const DEFAULT_HEADER_ID = 1;
  25 + const DEFAULT_FOOTER_ID = 2;
  26 +
  27 +}
@@ -268,6 +268,14 @@ class Project extends Base @@ -268,6 +268,14 @@ class Project extends Base
268 return $value; 268 return $value;
269 } 269 }
270 270
  271 + public function getUploadConfigAttribute($value)
  272 + {
  273 + if($value){
  274 + $value = Arr::s2a($value);
  275 + }
  276 + return $value;
  277 + }
  278 +
271 /** 279 /**
272 * 根据域名获取项目信息 280 * 根据域名获取项目信息
273 * @author zbj 281 * @author zbj
@@ -312,6 +312,12 @@ Route::middleware(['bloginauth'])->group(function () { @@ -312,6 +312,12 @@ Route::middleware(['bloginauth'])->group(function () {
312 Route::any('/statusNum', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'statusNumber'])->name('product_statusNum'); 312 Route::any('/statusNum', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'statusNumber'])->name('product_statusNum');
313 Route::any('/del', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'del'])->name('custom_del'); 313 Route::any('/del', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'del'])->name('custom_del');
314 }); 314 });
  315 + // 菜单组
  316 + Route::prefix('nav_group')->group(function () {
  317 + Route::any('/', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'index'])->name('nav_group');
  318 + Route::any('/save', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'save'])->name('nav_group_save');
  319 + Route::any('/delete', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'delete'])->name('nav_group_delete');
  320 + });
315 // 导航栏编辑 321 // 导航栏编辑
316 Route::prefix('nav')->group(function () { 322 Route::prefix('nav')->group(function () {
317 Route::get('/', [\App\Http\Controllers\Bside\Nav\NavController::class, 'index'])->name('nav'); 323 Route::get('/', [\App\Http\Controllers\Bside\Nav\NavController::class, 'index'])->name('nav');