load->model('Policy_model'); $this->load->model('Company_model'); $this->load->model('Group_model'); $this->load->model('Lamp_model'); $this->load->model('Project_model'); } // 获取策略列表 public function getlist(){ $companyid = $this->get_user_info('companyid'); $keyword = $this->input->post('keyword',true); // $companyid = $this->input->post('companyid',true); // if (empty($companyid)) { // exit(json_result('0007',$this->response['0007'],array())); // } $page = intval($this->input->post('page',true)); $count = intval($this->input->post('count',true)); $page = empty($page) ? '1' : $page; $count = empty($count) ? '9' : $count; $data = $this->Policy_model->get_list_by_company($companyid,$page,$count,$keyword); $total = $this->Policy_model->get_total_by_company($companyid,$keyword); exit(json_result('0000',$this->response['0000'],array('list'=>$data,'total'=>ceil($total/$count)))); } // 检查时间是否有重叠 // private function check_date($datelist){ // for ($i=0; $i < count($datelist); $i++) { // $date1 = explode('-', $datelist[$i]['date']); // if (strtotime(date('1970/01/01 H:i:s',strtotime($date1[0]))) >= strtotime(date('1970/01/01 H:i:s',strtotime($date1[1])))) { // exit(json_result('0904',$this->response['0904'],array())); // } // if (strtotime(date('Y/m/d 00:00:00',strtotime($date1[0]))) >= strtotime(date('Y/m/d 00:00:00',strtotime($date1[1])))) { // exit(json_result('0905',$this->response['0905'],array())); // } // for ($j=$i+1; $j < count($datelist); $j++) { // $date2 = explode('-', $datelist[$j]['date']); // $date3 = date('Y-m-d',strtotime($date1[0])).'-'.date('Y-m-d',strtotime($date1[1])); // $date4 = date('Y-m-d',strtotime($date2[0])).'-'.date('Y-m-d',strtotime($date2[1])); // if ($date3 == $date4) { // $date1[0] = date('1970/01/01 H:i:s',strtotime($date1[0])); // $date2[0] = date('1970/01/01 H:i:s',strtotime($date2[0])); // $date1[1] = date('1970/01/01 H:i:s',strtotime($date1[1])); // $date2[1] = date('1970/01/01 H:i:s',strtotime($date2[1])); // $index = '0906'; // }else{ // $index = '0907'; // } // if (!(strtotime($date1[1]) < strtotime($date2[0]) || strtotime($date2[1]) < strtotime($date1[0]))) { // exit(json_result($index,$this->response[$index],array())); // } // } // } // } // 添加编辑策略 public function save(){ // 权限控制 $role = $this->get_user_info('role'); $userid = $this->get_user_info('id'); $where['id'] = $this->input->post('id',true); $data['name'] = $this->input->post('name',true); $datalist = $this->input->post('datalist',true); // $data['companyid'] = $this->input->post('companyid',true); $data['companyid'] = $this->get_user_info('companyid'); if(empty($data['name'])) exit(json_result('0908',$this->response['0908'],array())); if (empty($datalist)) exit(json_result('0909',$this->response['0909'],array())); // 检查时间 // $this->check_date($datalist); $data['createtime'] = date('Y-m-d H:i:s'); if (empty($where['id'])) { // 添加 if ($this->Policy_model->getDataCount(array('name'=>$data['name'],'companyid'=>$data['companyid']))) { exit(json_result('0901',$this->response['0901'],array())); } // $data['owner_id'] = $userid; $policy_id = $this->Policy_model->insert_policy_info($data); if (!empty($datalist)) { foreach ($datalist as $v) { $policy_cmd = array(); $policy_cmd = ['policyid'=>$policy_id]; $policy_cmd['starttime'] = date('Y-m-d',strtotime($v['date'])); $index = 1; foreach ($v['timeList'] as $time) { $policy_cmd['time'.$index] = $time['time']; $policy_cmd['value'.$index] = $time['value']; $index += 1; } $this->Policy_model->insert($policy_cmd); } } exit(json_result('0000',$this->response['0000'],array('policyid'=>$policy_id))); }else{ // 编辑 if ($this->Policy_model->getDataCount(array('name'=>$data['name'],'companyid'=>$data['companyid']),$where['id'])) { exit(json_result('0901',$this->response['0901'],array())); } $this->Policy_model->update_policy_info(array('id'=>$where['id']),$data); // 删除原有策略 $this->Policy_model->del_by_fiter(array('policyid'=>$where['id'])); if (!empty($datalist)) { foreach ($datalist as $v) { $policy_cmd = array(); $policy_cmd = ['policyid'=>$where['id']]; $policy_cmd['starttime'] = date('Y-m-d',strtotime($v['date'])); $index = 1; foreach ($v['timeList'] as $time) { $policy_cmd['time'.$index] = $time['time']; $policy_cmd['value'.$index] = $time['value']; $index += 1; } $this->Policy_model->insert($policy_cmd); } } exit(json_result('0000',$this->response['0000'],array('policyid'=>$where['id']))); } } // 策略选择列表 public function policy_nav(){ // $role = $this->get_user_info('role'); // $userid = $this->get_user_info('id'); $companyid = $this->get_user_info('companyid'); $version = $this->session->userdata('version'); $data = $this->Policy_model->get_list_by_fiter(array('companyid'=>$companyid),'id,name'); if (empty($version)) { $name = '取消策略'; }else{ $name = 'Cancellation strategy'; } if (empty($data)) { $data = array(); $data[] = array('name'=>$name,'id' => 0); }else{ $data[] = array('name'=>$name,'id' => 0); } exit(json_result('0000',$this->response['0000'],array('list'=>$data))); } // // 地图页分组数 // public function grouplist(){ // $projectid = $this->input->post('projectid'); // if(empty($projectid)){ // exit(json_result('0007',$this->response['0007'],array())); // } // $version = $this->session->userdata('version'); // $data = $this->Group_model->get_list(array('projectid'=>$projectid)); // foreach ($data as &$v) { // if ($v['actiontype'] == 0) { // 亮度开关 // if (empty($version)) { // $v['content'] = '亮度'.$v['value'].'%'; // }else{ // $v['content'] = 'Brightness:'.$v['value'].'%'; // } // }elseif ($v['actiontype'] == 1) { // 系统自适应 // if (empty($version)) { // $v['content'] = '系统自适应'; // }else{ // $v['content'] = 'System adaptation'; // } // }else{ // 策略 // $v['content'] = $this->Policy_model->get_info_by_fiter(array('id'=>$v['value'])); // } // } // exit(json_result('0000',$this->response['0000'],array('list'=>$data,"projectid"=>$projectid))); // } // // 分组列表 // public function get_grouplist(){ // $projectid = $this->input->post('projectid'); // if(empty($projectid)){ // exit(json_result('0007',$this->response['0007'],array())); // } // $data = $this->Group_model->get_list_by_fiter(array('projectid'=>$projectid)); // exit(json_result('0000',$this->response['0000'],array('list'=>$data,"projectid"=>$projectid))); // } // // 编辑/添加分组 // public function groupsave(){ // // 权限控制 // $role = $this->get_user_info('role'); // $where['id'] = $this->input->post('id',true); // $data['projectid'] = $this->input->post('projectid',true); // $data['name'] = $this->input->post('name',true); // $data['lampid'] = $this->input->post('lampid',true); // $data['updatetime'] = date('Y-m-d H:i:s'); // if (empty($data['name'])) exit(json_result('0910',$this->response['0910'],array())); // if(empty($data['projectid'])) exit(json_result('0911',$this->response['0911'],array())); // if (empty($where['id'])) { // // 添加 // if ($this->Group_model->getDataCount(array('name'=>$data['name'],'projectid'=>$data['projectid']))) { // exit(json_result('0902',$this->response['0902'],array())); // } // $id = $this->Group_model->insert($data); // }else{ // // 编辑 // if ($this->Group_model->getDataCount(array('name'=>$data['name'],'projectid'=>$data['projectid']),$where['id'])) { // exit(json_result('0902',$this->response['0902'],array())); // } // $this->Group_model->update($where,$data); // $id = $where['id']; // } // exit(json_result('0000',$this->response['0000'],array('id'=>$id))); // } // // 分组详情 // public function groupinfo(){ // $groupid = $this->input->post('groupid',true); // if (empty($groupid)) { // exit(json_result('0903',$this->response['0903'],array())); // } // $version = $this->session->userdata('version'); // $data = $this->Group_model->getOne($groupid); // $userid = $this->get_user_info('id'); // $role = $this->get_user_info('role'); // if ($data['actiontype'] == 0) { // if (empty($version)) { // $data['groupwork'] = '亮度'.$data['value'].'%'; // }else{ // $data['groupwork'] = 'Brightness:'.$data['value'].'%'; // } // $data['policy_list'] = $this->select_list(); // }elseif ($data['actiontype'] == 1) { // if (empty($version)) { // $data['groupwork'] = '系统自适应'; // }else{ // $data['groupwork'] = 'System adaptation'; // } // $data['policy_list'] = $this->select_list(); // }else{ // $res = $this->Policy_model->get_list_by_fiter(array('id'=>$data['value']),'name'); // $data['groupwork'] = empty($res) ? '' : $res[0]['name']; // $data['policy_list'] = $this->select_list($data['value']); // } // $lampIds = explode(',', $data['lampid']); // $data['count'] = empty($data['lampid']) ? 0 : count($lampIds); // $field = "L.id, // L.number, // L.logtime as updatetime, // L.address, // L.lighteness as light, // L.isfaulted, // L.projectid"; // $list = $this->Lamp_model->get_list_in('L.id',$lampIds,$field); // foreach ($list as &$v) { // if ($v['isfaulted'] == 0) { // if (empty($version)) { // $v['isfaulted'] = '无'; // }else{ // $v['isfaulted'] = 'Nothing'; // } // }else{ // $res = $this->Alarm_model->get_one_by_filter(array('lampid'=>$v['id'],'status'=>0),'stralarmtype'); // if (empty($version)) { // $v['isfaulted'] = empty($res['stralarmtype']) ? '无' : $res['stralarmtype']; // }else{ // $v['isfaulted'] = empty($res['stralarmtype']) ? 'Nothing' : alarm_translate($res['stralarmtype']); // } // } // if (!empty($v['updatetime'])) { // $timezone = $this->Project_model->get_timezone_by_projectid($v['projectid']); // $v['updatetime'] = date_change($v['updatetime'],8,$timezone['value']); // } // $v['light'] = empty($v['light']) ? 0 : $v['light']; // } // $data['list'] = $list; // exit(json_result('0000',$this->response['0000'],$data)); // } // // 添加灯控页路灯列表 // public function lamp_list(){ // $groupid = $this->input->post('groupid',true); // $projectid = $this->input->post('projectid',true); // if (!empty($groupid)) { // $data = $this->Group_model->getOne($groupid,'lampid'); // $ids = explode(',', $data['lampid']); // $selectList = $this->Lamp_model->get_list_in('L.id',$ids,"L.id,L.number"); // }else{ // $selectList = array(); // } // $version = $this->session->userdata('version'); // $field = "L.id, // L.number, // L.logtime as updatetime, // L.address, // AI.stralarmtype, // L.lighteness as light, // L.section, // N.networkname"; // $list = $this->Lamp_model->get_list_in('L.projectid',array($projectid),$field); // $timezone = $this->Project_model->get_timezone_by_projectid($projectid); // // 返回数据处理 // foreach ($list as &$v) { // if (empty($version)) { // $v['isfaulted'] = empty($v['stralarmtype']) ? '无' : $v['stralarmtype']; // }else{ // $v['isfaulted'] = empty($v['stralarmtype']) ? 'Nothing' : alarm_translate($v['stralarmtype']); // } // $v['light'] = empty($v['light']) ? 0 : $v['light']; // $v['section'] = empty($v['section']) ? '' : $v['section']; // if (!empty($v['updatetime'])) { // $v['updatetime'] = date_change($v['updatetime'],8,$timezone['value']); // } // } // exit(json_result('0000',$this->response['0000'],array('list'=>$list,'selectList'=>$selectList))); // } // // 删除分组中的路灯 // public function lampdel(){ // $role = $this->get_user_info('role'); // $groupid = $this->input->post('groupid',true); // $lampid = $this->input->post('lampid',true); // if (empty($groupid) || empty($lampid)) { // exit(json_result('0007',$this->response['0007'],array())); // } // $res = $this->Group_model->getOne($groupid,'lampid'); // $ids = explode(',', $res['lampid']); // $lampids = explode(',', $lampid); // $temp = array(); // foreach ($ids as $v) { // if (in_array($v, $lampids)) { // continue; // } // $temp[] = $v; // } // $idStr = implode(',', $temp); // $this->Group_model->update(array('id'=>$groupid),array('lampid'=>$idStr)); // exit(json_result('0000',$this->response['0000'],array())); // } // 策略详情 public function policy_detail(){ $policyid = $this->input->post('policyid',true); if (empty($policyid)) { exit(json_result('0007',$this->response['0007'],array())); } $data = $this->Policy_model->get_detail(array('id'=>$policyid)); exit(json_result('0000',$this->response['0000'],$data)); } // 删除策略 public function del_policy(){ $policyid = $this->input->post('policyid',true); $version = $this->session->userdata('version'); if (empty($policyid)) { exit(json_result('0007',$this->response['0007'],array())); } $groupData = $this->Lamp_model->update(array('policyid'=>$policyid),array('policyid'=>0)); $this->Policy_model->del_by_fiter(array('policyid'=>$policyid)); // 删除策略内容 $this->Policy_model->del_info_fiter(array('id'=>$policyid)); // 删除策略信息 exit(json_result('0000',$this->response['0000'],array())); } // 设置策略 public function set_policy(){ $lampid = trim($this->input->post('lampid',true)); $policyid = intval($this->input->post('policyid',true)); if (empty($lampid)) exit(json_result('0007',$this->response['0007'])); $lampid = implode(',', explode(',', $lampid)); $lampData = $this->db->query('select id from lampinfo where id in ('.$lampid.') AND loadtype = 0')->row_array(); if (!empty($lampData) && !empty($lampData['id'])) exit(json_result('0420',$this->response['0420'])); $this->Lamp_model->update(array('id'=>explode(',', $lampid)),array('policyid'=>$policyid)); exit(json_result('0000',$this->response['0000'])); } // // 分组设置 // public function groupset(){ // $role = $this->get_user_info('role'); // $data['actiontype'] = $this->input->post('type',true); // $data['name'] = $this->input->post('name',true); // $where['id'] = $this->input->post('groupid',true); // if (empty($where['id'])) exit(json_result('0911',$this->response['0911'],array())); // if(!isset($data['actiontype']) || !is_numeric($data['actiontype'])) exit(json_result('0912',$this->response['0912'],array())); // if (empty($data['name'])) { // exit(json_result('0910',$this->response['0910'],array())); // } // $res = $this->Group_model->getOne($where['id'],'projectid'); // if ($this->Group_model->getDataCount(array('name'=>$data['name'],'projectid'=>$res['projectid']),$where['id'])) { // exit(json_result('0902',$this->response['0902'],array())); // } // $data['value'] = $this->input->post('value',true); // if ($data['actiontype'] == 2 && empty($data['value'])) { // exit(json_result('0913',$this->response['0913'],array())); // } // // 修改分组设置 // $this->Group_model->update(array('id'=>$where['id']),$data); // if (isset($data['actiontype']) && $data['actiontype'] == 0) { // $cmd = '{"cmd_type":"lamp_group_cmd","cmd_id":'.$where['id'].'}'; // $cmdret = send_cmd($cmd,0); // } // if (isset($data['actiontype']) && $data['actiontype'] == 2) { // $cmd = '{"cmd_type":"policy_cmd","cmd_id":'.$where['id'].'}'; // $cmdret = send_cmd($cmd,0); // } // exit(json_result('0000',$this->response['0000'],array())); // } // // 删除分组 // public function del_group(){ // $groupid = $this->input->post('groupid',true); // if (empty($groupid)) { // exit(json_result('0914',$this->response['0914'],array())); // } // $this->Group_model->delOne($groupid); // exit(json_result('0000',$this->response['0000'],array())); // } } ?>