ProjectMenuLogic.php 2.6 KB
<?php

namespace App\Http\Logic\Aside\User;

use App\Http\Logic\Aside\BaseLogic;
use App\Models\User\ProjectMenu;

class ProjectMenuLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();

        $this->model = new ProjectMenu();
        $this->param = $this->requestAll;
    }

    /**
     * @name :获取详情
     * @return void
     * @author :liyuhang
     * @method
     */
    public function menu_info(){
        $info = $this->info($this->param);
        return $this->success($info);
    }

    /**
     * @name :添加菜单
     * @return void
     * @author :liyuhang
     * @method
     */
    public function menu_add(){
        //查询当前名称是否存在
        $info = $this->model->read(['name'=>$this->param['name']]);
        if($info !== false){
            $this->fail('当前菜单名称已存在');
        }
        $rs = $this->model->add($this->param);
        if($rs === false){
            $this->fail('添加失败');
        }
        return $this->success();
    }

    /**
     * @name :编辑菜单
     * @return void
     * @author :liyuhang
     * @method
     */
    public function menu_edit(){
        //查询当前名称是否存在
        $info = $this->model->read(['name'=>$this->param['name'],'id'=>['!=',$this->param['id']]]);
        if($info !== false){
            $this->fail('当前菜单名称已存在');
        }
        $this->edit($this->param,['id'=>$this->param['id']]);
        return $this->success();
    }

    /**
     * @name :删除菜单
     * @return void
     * @author :liyuhang
     * @method
     */
    public function menu_del(){
        $ids = $this->param['id'];
        //查看当前菜单是否有子菜单
        foreach ($ids as $v){
            $info = $this->model->read(['pid'=>$v],['id','name']);
            if($info !== false){
                $this->fail('当前分类存在子分类:'.$info['name'].',不允许删除');
            }
        }
        $this->param['id'] = ['in',$this->param['id']];
        $rs = $this->del($this->param);
        if($rs === false){
            $this->fail('编辑失败');
        }
        return $this->success();
    }

    /**
     * @remark :添加时获取菜单列表
     * @name   :MenuList
     * @author :lyh
     * @method :post
     * @time   :2023/6/21 17:26
     */
    public function MenuList(){
        $filed = ['id','pid','name','created_at','status','rules','is_role','icon','action','updated_at'];
        $lists = $this->model->list(['status'=>$this->model::ZERO,'is_role'=>$this->model::ZERO,'pid'=>$this->model::ZERO],'created_at',$filed);
        return $this->success($lists);
    }
}