代码中出现的奇怪问题原因

好好看看这段代码,之前是没有第29行的。


	/*
	 * 系统账号监控规则:
	 * 1.每小时监控
	 * 2.系统账号数量<=10以下时不报警
	 * 3.10以上时每小时增长率超过20%则报警
	 *
	 */
	public function watching(){
		$this->load->model('monite/watch_dingdan_model');
		$this->load->model('readdb/dingdan_model');
		$this->load->model('readdb/product_model');

		foreach($this->userid as $userid){
			//监控预订单表dingdan系统账号
			$orders = $this->dingdan_model->getSystemAccount($userid);
			foreach($orders as $order){
				if(!trim($order['s_id'])) continue;
				$sql = "select * from watch_dingdan where shopid = '".$order['s_id']."' and userid='{$userid}'";
				$watch = $this->watch_dingdan_model->query($sql);
				if(count($watch)<=0){	//如果监控表中没有数据,则直接写入记录
					//将最新的系统账号数量添加到监控表中
					$data = array();
					$data['shopid'] = $order['s_id'];
					$data['userid'] = $userid;
					$data['num'] = $order['num'];
					$this->watch_dingdan_model->insert($data);
					if($order['num']<=$this->threshold) continue;
				}else{
					$where = $data = array();
					//将最新的系统账号数量更新到监控表中
					$where['shopid'] = $order['s_id'];
					$where['userid'] = $userid;
					$data['num'] = $order['num'];
					$this->watch_dingdan_model->update($where,$data);

					if(($order['num']-$watch[0]['num'])>=$this->threshold && $watch[0]['num']>0 && $order['num']>$watch[0]['num']){
						if(!(($order['num']-$watch[0]['num'])/$watch[0]['num'] >= $this->rate)){
							continue;
						}
					}else{ 
						continue; 
					}
				}
				$shopname = $this->product_model->getShopName($order['s_id']);
				$shopname = iconv("gbk","utf-8",$shopname);
				//发送监控
				$title = '【跟单监控时报】'.$shopname."系统账号{$userid}监控";
				$content = '【跟单监控时报】'.date("Y-m-d H:i",strtotime("-15 minute"))."至".date("Y-m-d H:i").$shopname."[$order[s_id]]系统账号{$userid}的数量为".($order['num']-$watch[0]['num']).",总数量为$order[num]";
				$this->sendEmail($title, $content);
				$this->sendSms($content);
			}
		}
	}


你可能感兴趣的:(代码中出现的奇怪问题原因)