| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 | <?phpnamespace app\common\model;use think\Db;class TemperatureDevice extends Base{    protected $abnormal = [        '正常',        '设备离线',        '传感器异常',        '传感器未连接',    ];    public function getList($page,$size,$orgId,$userId,$groupId=0){        $map[] = ['org_id', '=', $orgId];        $map[] = ['del', '=', 0];        if($groupId >0){            $ids = Db::name('group_device')                ->where('org_id',$orgId)                ->where('group_id',$groupId)                ->column('device_id');            if(empty($ids)){                $map[] = ['id', '=', -1];            }else{                $map[] = ['id', 'in', $ids];            }        }        if($userId!=1){            $ids = Db::name('temperature_auth')                ->where('user_id',$userId)                ->where('org_id',$orgId)                ->column('temperature_id');            if(!empty($ids)){                $map[] = ['id', 'in',$ids];            }else{                $map[] = ['id', '=',-1];            }        }        $lists = Db::name('temperature_device')            ->where($map)->page($page, $size)            ->select();        foreach ($lists as $k => &$v) {            $v['tj'] = '';            $v['abnormal_name'] = $this->abnormal[$v['abnormal']];            $gd = Db::name('group_device')                ->where('device_id',$v['id'])                ->column('group_id');            if(empty($gd)){                $t = '';            }else{                $x = Db::name('group')                    ->where('id','in',$gd)                    ->column('title');                $t = implode(',',$x);                $v['dev_name'] = $v['dev_name'].'('.$t.')';            }        }        return $lists?$lists:[];    }    public function getGroup($orgId,$userId,$page,$size){        $map[] = ['org_id', '=', $orgId];        $map[] = ['del', '=', 0];        if ($userId!=1){            $ids = Db::name('temperature_auth')                ->where('user_id',$userId)                ->where('org_id',$orgId)                ->column('temperature_id');            if(!empty($ids)){                $map[] = ['id', 'in',$ids];            }else{                $map[] = ['id', '=',-1];            }        }        $lists = Db::name('temperature_device')            ->where($map)            ->column('id');        if(empty($lists)){            return[];        }else{            $groupId = Db::name('group_device')                ->where('org_id',$orgId)                ->where('device_id','in',$lists)                ->column('group_id');            if(empty($groupId)) return [];            $iid = array_unique($groupId);            $gList = Db::name('group')                ->where('id','in',$iid)                ->field('id,title')                ->page($page, $size)                ->select();            return $gList;        }    }    public function getAllList($orgId){        $map[] = ['org_id', '=', $orgId];        $map[] = ['del', '=', 0];        $ids = Db::name('group_device')            ->where('org_id',$orgId)            ->where('group_id','>',0)            ->column('device_id');        if(!empty($ids)){            $map[] = ['id', 'not in', $ids];        }        $lists = Db::name('temperature_device')            ->field('id,dev_name as title')            ->where($map)            ->select();        return $lists?$lists:[];    }    public function getIdSList($orgId,$id){        $map[] = ['org_id', '=', $orgId];        $map[] = ['del', '=', 0];        $ids = Db::name('group_device')            ->where('org_id',$orgId)            ->where('group_id','=',$id)            ->column('device_id');        if(!empty($ids)){            $map[] = ['id', 'in', $ids];        }        $lists = Db::name('temperature_device')            ->field('id,dev_name as title')            ->where($map)            ->select();        $lists = $lists?$lists:[];        $ids1 = Db::name('group_device')            ->where('org_id',$orgId)            ->where('group_id','>',0)            ->column('device_id');        $map1[] = ['org_id', '=', $orgId];        $map1[] = ['del', '=', 0];        if(!empty($ids1)){            $map1[] = ['id', 'not in', $ids1];        }        $lists1 = Db::name('temperature_device')            ->field('id,dev_name as title')            ->where($map1)            ->select();        $lists1 = $lists1?$lists1:[];        $lists = array_merge($lists,$lists1);        return $lists;    }    public function updates(){        $data = request()->post();        $data['org_id'] = cur_org_id();        $data['snaddr'] = trim($data['snaddr']);        return $this->updateInfo($data,'TemperatureDevice','');    }}
 |