+----------------------------------------------------------------------------------------------- */ declare (strict_types = 1); namespace app\disk\controller; use app\api\BaseController; use think\facade\Db; use think\facade\View; class Api extends BaseController { //获取共享空间 public function get_group() { $where=[]; $whereOr=[]; $where[] = ['delete_time','=',0]; $uid=$this->uid; if($uid>1){ $map1=[ ['admin_id','=',$uid], ]; $map2=[ ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',director_uids)")], ]; $map3=[ ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',group_uids)")], ]; $whereOr =[$map1,$map2,$map3]; } $list = Db::name('DiskGroup') ->where($where) ->where(function ($query) use($whereOr) { if (!empty($whereOr)){ $query->whereOr($whereOr); } }) ->select()->toArray(); return to_assign(0, '',$list); } /** * 空间成员列表 */ public function memberlist() { $param = get_params(); if (request()->isAjax()) { $group_uids = Db::name('DiskGroup')->where('id',$param['id'])->value('group_uids'); $list['data']=[]; if(!empty($group_uids)){ $list['data'] = Db::name('Admin') ->field('a.*,p.title as position, d.title as department') ->alias('a') ->join('Position p','p.id = a.position_id') ->join('Department d','d.id = a.did') ->where([['a.id','in',$group_uids],['a.status','=',1]]) ->select()->toArray(); } table_assign(0,'', $list); } else{ $detail = Db::name('DiskGroup')->where('id',$param['id'])->find(); View::assign('detail', $detail); return view(); } } /** * 设置空间成员 */ public function memberset() { $param = get_params(); if (request()->isAjax()) { $uid=$this->uid; $detail = Db::name('DiskGroup')->where('id',$param['id'])->find(); $array = array_map('trim', explode(',', $detail['director_uids'])); if($uid==1 || $detail['admin_id'] == $uid || in_array($uid, $array)){ $res = Db::name('DiskGroup')->where('id',$param['id'])->update(['group_uids'=>$param['group_uids']]); if($res!==false){ return to_assign(0,'操作成功',['return_id'=>$param['id']]); } else{ return to_assign(1,'操作失败'); } }else{ return to_assign(1,'只要超级管理员、创建人、空间管理人员才有权限操作'); } } else{ // 禁止访问 throw new \think\exception\HttpException(403, '禁止访问'); } } /** * 空间管理员列表 */ public function adminlist() { $param = get_params(); if (request()->isAjax()) { $director_uids = Db::name('DiskGroup')->where('id',$param['id'])->value('director_uids'); $list['data']=[]; if(!empty($director_uids)){ $list['data'] = Db::name('Admin') ->field('a.*,p.title as position, d.title as department') ->alias('a') ->join('Position p','p.id = a.position_id') ->join('Department d','d.id = a.did') ->where([['a.id','in',$director_uids],['a.status','=',1]]) ->select()->toArray(); } table_assign(0,'', $list); } else{ $detail = Db::name('DiskGroup')->where('id',$param['id'])->find(); View::assign('detail', $detail); return view(); } } /** * 设置空间管理员 */ public function adminset() { $param = get_params(); if (request()->isAjax()) { $uid=$this->uid; $detail = Db::name('DiskGroup')->where('id',$param['id'])->find(); if($uid==1 || $detail['admin_id'] == $uid){ $res = Db::name('DiskGroup')->where('id',$param['id'])->update(['director_uids'=>$param['director_uids']]); if($res!==false){ return to_assign(0,'操作成功',['return_id'=>$param['id']]); } else{ return to_assign(1,'操作失败'); } }else{ return to_assign(1,'只要超级管理员和创建人才有权限操作'); } } else{ // 禁止访问 throw new \think\exception\HttpException(403, '禁止访问'); } } }