作者 赵彬吉

update

... ... @@ -3,6 +3,7 @@
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Exceptions\BsideGlobalException;
use App\Helper\Common;
use App\Http\Controllers\Controller;
use App\Http\Requests\Scene;
... ... @@ -144,6 +145,16 @@ class BaseController extends Controller
return response()->json($response,200,$this->header);
}
/**
* @notes: 错误抛出
* @param string $code
* @param string $message
* @throws BsideGlobalException
*/
public function fail(string $message = "", string $code = Code::SYSTEM_ERROR)
{
throw new BsideGlobalException($code, $message);
}
/**
* @name :写入操作日志
... ...
<?php
namespace App\Http\Controllers\Bside\Nav;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\Nav\BNavGroup;
use Illuminate\Http\Request;
/**
* 导航组
* Class NavGroupController
* @package App\Http\Controllers\Bside\Nav
* @author zbj
* @date 2023/10/9
*/
class NavGroupController extends BaseController
{
public function index(BNavGroup $nav_group){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc');
$this->response('success',Code::SUCCESS,$lists);
}
public function save(Request $request){
$request->validate([
'name'=> ['required','max:100'],
],[
'name.required' => '菜单组名称不能为空',
'name.max' => '菜单组名称不能超过100个字符'
]);
if(empty($this->param['id'])){
$nav_group = new BNavGroup();
}else{
if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
$this->fail('系统内置菜单组不能修改');
}
$nav_group = BNavGroup::find($this->param['id']);
if(!$nav_group){
$this->fail('数据不存在或者已经删除');
}
}
$nav_group->project_id = $this->user['project_id'];
$nav_group->name = $this->param['name'];
$nav_group->save();
$this->response('success');
}
public function delete(Request $request){
$request->validate([
'id'=>'required',
],[
'id.required' => 'ID不能为空',
]);
if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
$this->fail('系统内置菜单组不能删除');
}
$nav_group = BNavGroup::find($this->param['id']);
if(!$nav_group){
$this->response('数据不存在或者已经删除');
}
$nav_group->delete();
$this->response('success');
}
}
... ...
... ... @@ -149,6 +149,17 @@ class ProjectLogic extends BaseLogic
$param['confirm_file'] = Arr::a2s($param['confirm_file']);
}
unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']);
//文件上传默认值
if($param['is_upload_manage']){
$param['upload_config'] = [
'upload_max_num' => $param['upload_config']['upload_max_num'] ?? 100,
'allow_file_type' => $param['upload_config']['allow_file_type'] ?? 'doc,docx,xls,xlsx,pdf,txt,csv,png,jpg,jpeg',
'upload_max_size' => $param['upload_config']['upload_max_size'] ?? 5,
];
}
$this->model->edit($param,['id'=>$param['id']]);
Common::del_user_cache($this->model->getTable(),$param['id']);
return $this->success();
... ...
... ... @@ -32,6 +32,7 @@ class NavRequest extends FormRequest
public function rules()
{
$rule = [
'group_id' => ['required','integer'],
'pid' => ['required','integer'],
'name' => ['required','max:100'],
];
... ... @@ -41,6 +42,8 @@ class NavRequest extends FormRequest
public function messages()
{
return [
'group_id.required' => '未定义菜单组',
'group_id.integer' => '菜单组错误',
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
... ...
<?php
namespace App\Models\Nav;
use App\Models\Base;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class BNavGroup
* @package App\Models\Nav
* @author zbj
* @date 2023/10/9
*/
class BNavGroup extends Base
{
protected $table = 'gl_web_nav_group';
//连接数据库
protected $connection = 'custom_mysql';
use SoftDeletes;
public $hidden = ['deleted_at'];
const DEFAULT_HEADER_ID = 1;
const DEFAULT_FOOTER_ID = 2;
}
... ...
... ... @@ -268,6 +268,14 @@ class Project extends Base
return $value;
}
public function getUploadConfigAttribute($value)
{
if($value){
$value = Arr::s2a($value);
}
return $value;
}
/**
* 根据域名获取项目信息
* @author zbj
... ...
... ... @@ -312,6 +312,12 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/statusNum', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'statusNumber'])->name('product_statusNum');
Route::any('/del', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'del'])->name('custom_del');
});
// 菜单组
Route::prefix('nav_group')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'index'])->name('nav_group');
Route::any('/save', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'save'])->name('nav_group_save');
Route::any('/delete', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'delete'])->name('nav_group_delete');
});
// 导航栏编辑
Route::prefix('nav')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\Nav\NavController::class, 'index'])->name('nav');
... ...