isAjax()){ //分页参数 $length = input('rows',10,'intval'); //每页条数 $page = input('page',1,'intval'); //第几页 $start = ($page - 1) * $length; //分页开始位置 //排序 $sortRow = input('sidx','id','trim'); //排序列 $sort = input('sord','desc','trim'); //排序方式 $order = $sortRow.' '.$sort; $title = input('title','','trim'); if($title){ $map[] = ['title','like','%'.$title.'%']; } $enable = input('enable','','trim'); if($enable != ''){ $map[] =['enable','=',$enable]; } $map[] = ['org_id','=',$this->orgId]; $map= empty($map) ? true: $map; //数据查询 $lists = Db::name('group') ->where($map) ->limit($start,$length) ->order($order)->select(); foreach ($lists as $k=>$v){ $lists[$k]['nums'] = Db::name('group_device') ->where('org_id',$this->orgId) ->where('group_id',$v['id']) ->count(); } //数据返回 $totalCount = Db::name('group')->where($map)->count(); $totalPage = ceil($totalCount/$length); $result['page'] = $page; $result['total'] = $totalPage; $result['records'] = $totalCount; $result['rows'] = $lists; return json($result); }else{ $this->assign('meta_title','分组列表'); return $this->fetch(); } } /** * 新增/编辑 */ public function add($id=0){ if(request()->isPost()){ $model = new \app\common\model\Group(); $post = request()->post(); $data = [ 'title'=>$post['title'], 'enable'=>$post['enable'], 'org_id'=>$this->orgId, 'id'=>$id ]; $validate = new \app\common\validate\Group(); $result = $validate->scene('')->check($data,[]); if(true !== $result){ $this->error($validate->getError()); } unset($data['id']); if($id <=0){ $data['create_time'] = date('Y-m-d H:i:s'); $res = Db::name('group') ->insertGetId($data); $id = $res; }else{ $data['update_time'] = date('Y-m-d H:i:s'); $res = Db::name('group') ->where('id',$id) ->update($data); } if($res){ Db::name('group_device') ->where('org_id',$this->orgId) ->where('group_id',$id) ->delete(); $data = request()->post(); if(isset($data['device_id']) && !empty($data['device_id'])){ $ids = explode(',',$data['device_id']); $a = []; foreach ($ids as $k=>$v){ $a[] = [ 'org_id'=>$this->orgId, 'device_id'=>$v, 'group_id'=>$id, ]; } Db::name('group_device') ->insertAll($a); } $this->success('操作成功',url('index')); }else{ $this->error($model->getError()); } }else{ $meta_title = '新增分组'; if($id){ $info = Db::name('group')->where('id',$id)->find(); $info['group_device'] = Db::name('group_device') ->where('org_id',$this->orgId) ->where('group_id',$id) ->column('device_id'); $this->assign('info',$info); $meta_title = '编辑分组'; $device = (new \app\common\model\TemperatureDevice())->getIdSList($this->orgId,$id); }else{ $device = (new \app\common\model\TemperatureDevice())->getAllList($this->orgId); } $this->assign('meta_title',$meta_title); $this->assign('device',$device); return $this->fetch(); } } /** * 删除记录 * @param int $id */ public function del($id=0){ if(!$id){ $this->error('参数错误'); } $ret = Db::name('temperature_device')->where('group_id',$id)->find(); if($ret){ $this->error('分组已被绑定,无法删除'); } $res = Db::name('group')->where('id',$id)->delete(); if($res){ $this->success('删除成功'); }else{ $this->error('删除失败'); } } /** * 改变字段值 * @param int $fv * @param string $fn * @param int $fv */ public function changeField($id=0,$fn='',$fv=0){ if(!$fn||!$id){ $this->error('参数错误'); } $res = Db::name('group')->where('id',$id)->update([$fn => $fv]); if($res){ $this->success('操作成功'); }else{ $this->error('操作失败'); } } public function detail_auth($id){ $info = Db::name('group_device') ->where('group_id', $id)->column('device_id'); $d = Db::name('temperature_device') ->where('id','in',$info) ->select(); $this->assign('list',$d); return $this->fetch(); } }