DeptLogic.php 1.3 KB
<?php

namespace App\Http\Logic\Bside;

use App\Helper\Arr;
use App\Models\ProjectDept;

/**
 * Class DeptLogic
 * @package App\Http\Logic\Bside\dept
 * @author zbj
 * @date 2023/4/18
 */
class DeptLogic extends  BaseLogic
{
    public function __construct()
    {
        parent::__construct();

        $this->model = new ProjectDept();
    }

    public function save($param){
        if(!empty($param['pid'])){
            if(!empty($param['id']) && $param['pid'] == $param['id']){
                $this->fail('上级部门不能是本部门');
            }
            $p_cate = $this->getCacheInfo($param['pid']);
            if(!$p_cate){
                $this->fail('上级部门不存在');
            }
        }
        return parent::save($param);
    }

    public function delete($ids, $map =[]){
        $ids= array_filter(Arr::splitFilterToArray($ids), 'intval');
        foreach ($ids as $id){
            $info = $this->getCacheInfo($id);
            if(!$info){
                continue;
            }
            //是否有子部门
            if(ProjectDept::where('project_id', $this->user['project_id'])->where('pid', $id)->count()){
                $this->fail("部门{$info['title']}存在下级部门,不能删除");
            }
        }
        return parent::delete($ids);
    }
}