| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 | <?phpif (!defined('BASEPATH'))exit('No direct script access allowed');include_once(FCPATH . 'application/models/Base_model.php');class Policy_model extends Base_model {	protected $table = 'policy_cmd';	public function __construct() {		parent::__construct();	}	// 添加策略信息	public function insert_policy_info($add){				$this->db->insert('policy_info',$add);		if ($this->db->affected_rows() == 1 ) {			return $this->db->insert_id();		} else {			return false;		}	}	// 通过公司来获取策略列表	public function get_list_by_company($companyid,$page = null,$count = null,$keyword = ''){		if (is_array($companyid)) {			$sql = "select id,name from policy_info where companyid in (".implode(',', $companyid).')';		}else{			$sql = "select id,name from policy_info where companyid={$companyid}";		}		if (!empty($keyword)) {			$sql .= ' AND name like %'.$keyword.'%';		}		$limit = '';		if (!empty($page) && !empty($count)) {			$limit .= " limit ".($page-1)*$count.",{$count}";		}		$sql .= $limit;		$policy_info = $this->db->query($sql)->result_array();		$version = $this->session->userdata('version');		$open = empty($version) ? '开' : 'open';		$close = empty($version) ? '关' : 'close';		$later = empty($version) ? '以后' : 'later';		foreach ($policy_info as &$d) {			$policy_cmd_list = $this->db->select("*")->where('policyid',$d['id'])->order_by('id asc')->get($this->table)->result_array();			$d['list'] = array();			foreach ($policy_cmd_list as $policy_cmd) {				$index = 1;				$list = array();				$list['date'] = $policy_cmd['starttime'];				$list['value'] = array();				while ($index <= 10) {					if ($policy_cmd['value'.$index] == 1) {						$status = $open;					}else{						$status = $close;					}					if ($index == 10) {						$list['value'][] = $policy_cmd['time'.$index].'-'.$later.' '.$status;						break;					}					$n = $index + 1;					if (!empty($policy_cmd['time'.$n])) {						$list['value'][] = $policy_cmd['time'.$index].'-'.$policy_cmd['time'.$n].' '.$status;					}else{						$list['value'][] = $policy_cmd['time'.$index].'-'.$later.' '.$status;						break;					}					$index ++;				}				$d['list'][] = $list;			}					}		return $policy_info;	}	public function get_total_by_company($companyid,$keyword = ''){		if (is_array($companyid)) {			$sql = "select count(*) as total from policy_info where companyid in (".implode(',', $companyid).")";		}else{			$sql = "select count(*) as total from policy_info where companyid={$companyid}";		}		if (!empty($keyword)) {			$sql .= ' AND name like %'.$keyword.'%';		}		$data = $this->db->query($sql)->row_array();		return $data['total'];	}	// 通过条件来获取策略信息	public function get_info_by_fiter($fiter = array()){		if (empty($fiter)) {			return array();		}		foreach ($fiter as $key => $value) {			$this->db->where($key,$value);		}		$policy_info = $this->db->get('policy_info')->row_array();		$policy_cmd_list = $this->db->select("*")->where('policyid',$policy_info['id'])->get($this->table)->result_array();		$res = array();		foreach ($policy_cmd_list as $k=>$v) {			$date = explode('-', $v['date']);			$temp = date('Y/m/d',strtotime($date[0])).'-'.date('Y/m/d',strtotime($date[1]));			$time= date('G点',strtotime($date[0])).'-'.date('G点',strtotime($date[1]));			$res[$temp][$k]['time'] = $time;			$res[$temp][$k]['value'] = $v['light'];		}		if (empty($res)) {			$policy_info['list'] = array();		}else{			foreach ($res as $key => $value) {				$str = array();				foreach ($value as $k => $v) {					$str[] = $v['time']." 亮度".$v['value'].'%';				}				$policy_info['list'][] = array('date'=>$key,'value'=>$str);			}		}				return $policy_info;	}	// 获取策略详情	public function get_detail($filter=array()){		if (empty($filter)) {			return array();		}		foreach ($filter as $key => $value) {			$this->db->where($key,$value);		}		$data = $this->db->get('policy_info')->row_array();		$data['list'] = array();		$list = $this->db->where('policyid',$data['id'])->order_by('id asc')->get($this->table)->result_array();		foreach ($list as $s) {			$temp = array();			$temp['date'] = $s['starttime'];			$temp['timeList'] = array();			$index = 1;			while ($index <= 10) {				if (!empty($s['time'.$index])) {					$temp['timeList'][] = array(						'time' => date('Y-m-d H:i:s',strtotime($s['starttime'].' '.$s['time'.$index])),						'value' => $s['value'.$index],					);				}else{					break;				}				$index ++;			}			$data['list'][] = $temp;		}		return $data;	}	// 通过筛选条件来获取策略列表	public function get_list_by_fiter($filter=array(),$field='*'){		$this->db->select($field);		foreach ($filter as $key => $value) {			if (is_array($value)) {				if (!empty($value)) {					$this->db->where_in($key,$value);				}    		}else{    			$this->db->where($key,$value);    		}		}		$data = $this->db->get('policy_info')->result_array();		return $data;	}	// 编辑策略信息	public function update_policy_info($filter,$data){        if (empty($filter)){            return false;        }        foreach ($filter as $k => $v) {            if (is_array($v)) {                $this->db->where_in($k, $v);            } else {                $this->db->where($k,$v);            }        }                return $this->db->update('policy_info',$data);    }    // 删除策略内容    public function del_by_fiter($fiter=array()) {    	if (empty($fiter)) {    		return;    	}    	foreach ($fiter as $key => $value) {    		if (is_array($value)) {    			if (!empty($value)) {					$this->db->where_in($key,$value);				}else{					$this->db->where_in($key,array(0));				}    		}else{    			$this->db->where($key,$value);    		}    	}        $this->db->delete($this->table);        if ($this->db->affected_rows() > 0) {            return true;        } else {            return false;        }    }    // 删除策略信息    public function del_info_fiter($fiter=array()) {    	if (empty($fiter)) {    		return;    	}    	foreach ($fiter as $key => $value) {    		if (is_array($value)) {    			if (!empty($value)) {					$this->db->where_in($key,$value);				}else{					$this->db->where_in($key,array(0));				}    		}else{    			$this->db->where($key,$value);    		}    	}        $this->db->delete('policy_info');        if ($this->db->affected_rows() > 0) {            return true;        } else {            return false;        }    }	public function getDataCount($condition, $id = 0) {		if (!empty($condition)){			foreach ($condition as $k => $v) {				$this->db->where($k,$v);			}		}		if (!empty($id)) {            $this->db->where('id !=',$id);         }  		$query = $this->db->get('policy_info');		$data = $query->row_array();        		if (empty($data)) {			return 0;		} else { 			return $id == $data['id'] ? 0 : 1;		}	}}?>
 |