isAjax()){ //分页参数 $length = input('rows',10,'intval'); //每页条数 $page = input('page',1,'intval'); //第几页 $start = ($page - 1) * $length; //分页开始位置 //排序 $sortRow = input('sidx','u.id','trim'); //排序列 $sort = input('sord','desc','trim'); //排序方式 $order = $sortRow.' '.$sort; $title = input('title','','trim'); if($title){ $map[] = ['u.account|u.real_name|u.mobile','like','%'.$title.'%']; } $enable = input('enable','','trim'); if($enable != ''){ $map[] = ['u.enable','=',$enable]; } $depId = input('depId','','trim'); if($depId != ''){ // $map[] = ['ud.dep_id','=',$depId]; $userDepId = Db::name('user_dep') ->where('dep_id',$depId) ->column('user_id'); $map[] = ['u.id','in',$userDepId]; } $worker = input('worker','','trim'); if($worker != ''){ $map[] = ['u.worker','=',$worker]; } $rolesId = Db::name('roles') ->where('parent_id',7) ->where('org_id',$this->orgId) ->where('del',0) ->column('id'); $userRolesId = Db::name('user_roles') ->where('roles_id','in',$rolesId) ->column('user_id'); $map[] = ['u.id','in',$userRolesId]; $map[] = ['u.del','=',0]; $map[] = ['u.type','=',0]; $map[] = ['uo.org_id','=',$this->orgId]; $map[] = ['u.enable','=',1]; $map= empty($map) ? true: $map; $lists = db('user') ->alias('u') ->join('user_org uo','u.id=uo.user_id') ->where($map) ->field('u.*,uo.org_id') ->limit($start,$length) ->order(['u.sorts'=>'desc','u.id'=>'asc']) ->select(); $cache = cache("org_user_sort_list_".$this->orgId); $lastUser = Db::name('order_auto_send_log') ->where('org_id',$this->orgId) ->where('type',0) ->order('id','desc') ->value('user_id'); foreach ($lists as $k=>$v){ $lists[$k]['dep_name'] = Db::name('user_dep') ->alias('ud') ->join('dep d','d.id=ud.dep_id') ->where('ud.user_id',$v['id']) ->where('d.org_id',$v['org_id']) ->value('d.title'); $lists[$k]['type_name'] =$v['type_id']>0?Db::name('order_type') ->where('id',$v['type_id']) ->value('title'):""; $lists[$k]['roles_name'] = Db::name('user_roles') ->alias('ur') ->join('roles r','r.id=ur.roles_id') ->where('ur.user_id',$v['id']) ->where('r.org_id',$v['org_id']) ->value('r.name'); $lists[$k]['old_sorts'] = 0; if($cache){ foreach ($cache as $kk=>$vv){ if($vv['id']==$v['id']){ $lists[$k]['old_sorts'] = $vv['sorts']; } } } $lists[$k]['is_last'] = false; if($v['id']==$lastUser){ $lists[$k]['is_last'] = true; } } //数据返回 $totalCount = db('user') ->alias('u') ->join('user_org uo','uo.user_id = u.id') ->where($map)->count(); $totalPage = ceil($totalCount/$length); $result['page'] = $page; $result['total'] = $totalPage; $result['records'] = $totalCount; $result['rows'] = $lists; return json($result); }else{ $deps = model('Dep')->getList(); $this->assign('deps',$deps); return $this->fetch(); } } public function batchSorts(){ $data = input('data','','trim'); if(!$data){ $this->error('参数错误'); } $data = json_decode($data,true); if(!$data){ $this->error('参数错误'); } $oldSort = cache("org_user_sort_".$this->orgId); $lastUser = Db::name('order_auto_send_log') ->where('org_id',$this->orgId) ->where('type',0) ->order('id','desc') ->value('user_id'); if(empty($oldSort) && !empty($lastUser) && !cache("auto_send_end_".$this->orgId)){ cache("org_user_sort_".$this->orgId,get_sort_user($this->orgId,1)); cache("org_user_sort_list_".$this->orgId,get_sort_user_list($this->orgId,1)); } Db::startTrans(); try{ foreach ($data as $k=>$v){ Db::name('user')->where('id',$v['id'])->setField('sorts',$v['sort']); } Db::commit(); }catch (Exception $e){ Db::rollback(); $this->error('操作失败'); } $this->success('操作成功'); } public function changeField($id=0,$fn='',$fv=0){ if(!$fn||!$id){ $this->error('参数错误'); } $info = Db::name('user')->where('id',$id)->where('del',0)->find(); if(!$info){ $this->error('记录不存在'); } $res = db('user')->where('id',$id)->setField($fn,$fv); if($res){ $this->success('操作成功'); }else{ $this->error('操作失败'); } } public function remove(){ cache('org_user_sort_'.$this->orgId,null); cache('auto_send_end_'.$this->orgId,null); cache('org_user_sort_list_'.$this->orgId,null); Db::name('order_auto_send_log') ->where('org_id',$this->orgId) ->delete(); Db::name('order_auto_send_area') ->where('org_id',$this->orgId) ->update(['last_user'=>""]); $this->success('操作成功'); } }