NavLogic.php 2.1 KB
<?php

namespace App\Http\Logic\Bside\Nav;


use App\Http\Logic\Bside\BaseLogic;
use App\Models\Nav\BNav;


/**
 * @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->param = $this->requestAll;
        $this->model = new BNav();
    }


    public function navSave()
    {
        if(isset($this->param['id']) && !empty($this->param['id'])){
            $info = $this->model->read(['id'=>$this->param['id']]);
            if($this->param['pid'] == $info['id']){
                $this->fail('不允许成为自己的上级');
            }
            $pid_info = $this->model->read(['pid'=>$this->param['id']]);
            if(($pid_info !== false) && $this->param['pid'] != $info['pid']){
                $this->fail('当前菜单拥有子集不允许修改上级');
            }
            $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
        }else{
            $this->param['project_id'] = $this->user['project_id'];
            $rs = $this->model->add($this->param);
        }
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @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('存在下级无法删除');
        }

        return parent::delete($ids,$map); // TODO: Change the autogenerated stub

    }


    /**
     * @remark :排序
     * @name   :navSort
     * @author :lyh
     * @method :post
     * @time   :2023/8/22 9:54
     */
    public function navSort(){
        $rs = $this->model->edit(['sort'=>$this->param['sort']],['id'=>$this->param['id']]);
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }
}