| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 | <?phpnamespace app\admin\controller;use app\api\controller\screen\Weather;use think\Db;use think\Exception;class Org extends Auth{    public function index(){        $tree = model('Org')->showAllTree();        $this->assign('tree',$tree);        return $this->fetch();    }    /**     * 新增     */    public function add($pid=0,$t=0){        if(request()->isPost()){            $res = model('Org')->addSave();            if($res){                $this->success('操作成功',url('index'));            }else{                $this->error(model('Org')->getError());            }        }else{            $fpid = Db::name('org')->where('id',$pid)->value('parent_id');            $flist = Db::name('org')->where('del',0)->where('type',1)->select();            foreach ($flist as $k=>$v){                $flist[$k]['title'] = $v['name'];            }            $infotype = Db::name('org')->where('id',$pid)->value('type');            $this->assign('infotype',$infotype);            $city = Db::name('city')->select();            $this->assign('city',$city);            $this->assign('flist',$flist);            $this->assign('fpid',$fpid);            $this->assign('pid',$pid);            $this->assign('t',$t);            return $this->fetch();        }    }    /**     * 编辑     */    public function edit($id=0){        if(request()->isPost()){            $res = model('Org')->editSave();            if($res){                $this->success('操作成功',url('index'));            }else{                $this->error(model('Org')->getError());            }        }else{            $info = db('org')->where('id',$id)->find();            $info['location'] = '';            if($info && $info['lat'] && $info['lng']){                $info['location'] = $info['lat'].'-'.$info['lng'];            }            $orgList = Db::name('org')                ->where('del',0)                ->where('type',1)                ->select();            $this->assign('orgList',$orgList);            $flist = Db::name('org')->where('del',0)->where('type',1)->where('id','<>',$id)->select();            foreach ($flist as $k=>$v){                $flist[$k]['title'] = $v['name'];            }            $city = Db::name('city')->select();            $this->assign('city',$city);            $pid = $info['id'];            $this->assign('pid',$pid);            $infotype = Db::name('org')->where('id',$pid)->value('type');            $this->assign('infotype',$infotype);            $this->assign('flist',$flist);            $this->assign('info',$info);            $this->assign('t',$info['type']);            $this->assign('fpid',$info['parent_id']);            return $this->fetch();        }    }    public function changeEnable($id=0,$enable=0){        if($id <= 0){            $this->error('参数错误');        }        $ret = Db::name('org')->where('id',$id)->setField('enable',$enable);        if(!$ret){            $this->error('操作失败');        }        $this->success('操作成功');    }    /**     * 删除记录     * @param int $id     */    public function del($id=0){        if(!$id){            $this->error('参数错误');        }        // 检查是否有子级        $ret = Db::name('org')->where('parent_id',$id)->where('del',0)->find();        if($ret){            $this->error('有子级不能删除');        }        $res = Db::name('org')->where('id',$id)->setField('del',1);        if($res){            $this->success('删除成功');        }else{            $this->error('删除失败');        }    }    /**     * 授权     */    public function auth(){        if(request()->isPost()){            $res = model('Org')->authSave();            if($res){                $this->success('操作成功',url('index'));            }else{                $this->error(model('Org')->getError());            }        }else{            $orgId = input('id/d',0);            $meuns = model('Menu')->getAllMenuTree();            $this->assign('menus',$meuns);            $sauth = model('Org')->getOrgAuths($orgId,1);            $this->assign('sauth',$sauth);            $appauths = model('AppIcon')->getAllIconTree();            $this->assign('appauths',$appauths);            $sappauth = model('Org')->getOrgAuths($orgId,2);            $this->assign('sappauth',$sappauth);            $this->assign('orgId',$orgId);            return $this->fetch();        }    }    public function copyAuth($id){        if(request()->isPost()){            $id = input('id',0);            $orgId = input('orgId',0);            if($id <1){                $this->error('参数错误');            }            if($orgId < 1 ){                $this->error('请选择复制的项目');            }            $oinfo = Db::name('org')->where('id',$orgId)->find();            $data = [                'auths'=>$oinfo['auths'],                'appauths'=>$oinfo['appauths'],                'update_time'=>getTime()            ];            $res = Db::name('org')->where('id',$id)->update($data);            if($res){                $this->success('操作成功',url('index'));            }else{                $this->error('操作失败');            }        }else{            $orgList = Db::name('org')                ->where('del',0)                ->where('type',2)                ->select();            foreach ($orgList as $k=>$v){                $orgList[$k]['title'] = $v['name'];            }            $this->assign('id',$id);            $this->assign('orgList',$orgList);            return $this->fetch();        }    }    public function orgBatchAuth(){        if(request()->isPost()){            $ids = input('ids',[]);            $appids = input('appids',[]);            $orgs = input('orgs',[]);            if(!$orgs){                $this->error('请选择组织');            }            if(!$ids && !$appids){                $this->error('请勾选权限');            }            Db::startTrans();            try {                foreach ($orgs as $k=>$v){                    $info = Db::name('org')                        ->where('id',$v)                        ->where('type',2)                        ->where('del',0)                        ->find();                    $auths = $info['auths'] ? explode(',',$info['auths']):[];                    if($ids){                        $diff = array_diff($ids,$auths);                        $newAuths = array_merge($diff,$auths);                        $data['auths'] = implode(',',$newAuths);                    }                    if($appids){                        $appauths = $info['appauths'] ? explode(',',$info['appauths']):[];                        $appdiff = array_diff($appids,$appauths);                        $newAppauths = array_merge($appdiff,$appauths);                        $data['appauths'] = implode(',',$newAppauths);                    }                    $data['update_time'] = getTime();                    Db::name('org')->where('id',$v)->update($data);                }                Db::commit();                $this->success('操作成功',url('orgBatchAuth'));            } catch (Exception $e) {                Db::rollback();                $this->error($e->getMessage());            }        }else{            $rolesId = input('id/d',0);            $meuns = model('Menu')->getOrgAllMenuTree($this->orgId);            $this->assign('menus',$meuns);//            $sauth = model('Roles')->getRolesAuths($rolesId,1);//            $this->assign('sauth',$sauth);            $appauths = model('AppIcon')->getOrgAllIconTree($this->orgId);            $this->assign('appauths',$appauths);//            $sappauth = model('Roles')->getRolesAuths($rolesId,2);//            $this->assign('sappauth',$sappauth);            $orgList = Db::name('org')->where('del',0)->where('type',2)->select();            $this->assign('orgList',$orgList);            $this->assign('rolesId',$rolesId);            return $this->fetch();        }    }}
 |