NavGroupController.php 2.1 KB
<?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');
    }
}