connect('47.98.201.73', 6379); $pd = 1; if ($result == 1) { $res = $redis->get("$unique_number"); if ($res == 1) { // echo "1----"; $pd = 1; } else if (!empty($res)) { // echo "2----".floor((strtotime($Data['time'])-strtotime($res))%86400/3600); if (floor((strtotime($Data['time']) - strtotime($res)) / 3600) > 3) { // echo "2.1----"; $pd = 1; } else { echo "2.2----"; $pd = 0; } } else { // echo "3----"; $pd = 1; } $res1 = $redis->get("$unique_number"); var_dump($res); $redis->set("$unique_number", "$time"); $redis->close(); } switch ($Data['evt']) { case 'y01': $status = '报警'; $where = " AND data2 like '%6%'"; break; case 'y02': $status = '报警静音'; $where = " AND data2 like '%6%'"; break; case 'y03': $status = '保留'; $where = " AND data2 like '%6%'"; break; case 'y04': $status = '低压'; $where = " AND data2 like '%6%'"; break; case 'y05': $status = '故障'; $where = " AND data2 like '%6%'"; break; case 'y06': $status = '保留'; $where = " AND data2 like '%6%'"; break; case 'y07': $status = '火灾报警'; $where = " AND data2 like '%6%'"; break; case 'y08': $status = '温度报警'; $where = " AND data2 like '%6%'"; break; case 'y09': $status = '烟感电量低'; $where = " AND data2 like '%6%'"; break; case 'y10': $status = '防拆报警'; $where = " AND data2 like '%6%'"; break; case 'y11': $status = '发射电路故障'; $where = " AND data2 like '%6%'"; break; case 'y12': $status = '设备自检'; $where = " AND data2 like '%6%'"; break; case 'ds02': $status = '门窗关闭'; // $where=" AND data2 like '%6%'"; break; case 'ds01': $status = '门窗开启'; // $where=" AND data2 like '%6%'"; break; case 'ds03': $status = '电池电量低'; // $where=" AND data2 like '%6%'"; break; case 'gs01': $status = '可燃气体告警'; // $where=" AND data2 like '%6%'"; break; case 'gs02': $status = '电池电量低'; // $where=" AND data2 like '%6%'"; break; case 'gs03': $status = '设备防拆'; // $where=" AND data2 like '%6%'"; break; default: $status = '其他' . $Data['evt']; $where = " AND data2 like '%6%'"; break; } $company = M()->query("select s.owner_name,s.unitinfo,s.company,c.owner_address,s.dwtype from sp_owner s ,sp_owner_company c where s.company=c.owner_id and s.owner_code ='" . $dataid . "'"); $union_sql = M()->query("select phone from sp_owner_phone WHERE owner_code='" . $company[0]['company'] . "' " . $where . " and statusbb=1 union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company[0]['company'] . "') " . $where . " and statusbb=1 "); // print_r("select phone from sp_owner_phone WHERE owner_code='" . $company[0]['company'] . "' " . $where . " union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company[0]['company'] . "') " . $where . ""); if (count($union_sql) == 0) { exit; } $openids = $this->array_column1($union_sql, "phone"); if (empty($openids)) { echo 'open is null'; exit; } $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $dataid . "'"); $op = M()->query("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)"); $access_token = GetAccess_Token1(); // print_r($access_token); $address = '警报地址:' . $company[0]['owner_address'] . $company[0]['unitinfo']; $deviceid = $dataid; $type = $status; $time = $time1; // $remark='设备名称:'.$company[0]['owner_name']; if (!empty($bz)) { $remark = $bz; } else { $remark = '设备名称:' . $company[0]['owner_name']; } if ($Data['evt'] == 'ds01' || $Data['evt'] == 'ds02' || $Data['evt'] == 'ds03') { $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/130/id/" . $insert_id; } else if ($Data['evt'] == 'gs01' || $Data['evt'] == 'gs02' || $Data['evt'] == 'gs03') { $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/131/id/" . $insert_id; } else { $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/1/id/" . $insert_id; } // $ljurl = "https://iot.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/1/id/".$insert_id; if ($company[0]['dwtype'] != 129) { if ($pd == 1) { foreach ($op as $o) { if (!empty($o['openid'])) { $a = $this->SendDeviceAlarm($access_token, $o['openid'], $address, $deviceid, $type, $time, $remark, $ljurl, $url = ''); $log = "[时间" . date("Y-m-d H:i:s") . "]返回数据:" . json_encode($a) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/yg_fh_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); print_r($a); } } } } } /** * "evt" => "09", * "IMEI" => 设备编号, * "DateTime" => 时间, * "Interval" => 间隔时间, * "Status" => 状态, * "Battery" => 电量, * "Signal" => 信号, * "Unit" => 单位, * "Pressure" => 水压值, * "phone" => 电话, * "insert_id" => 插入表id * @return [type] [description] */ public function message_water() { $Data = I('post.'); $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/sj_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); if (empty($Data['phone'])) { dump($Data['phone']); exit; } if (!empty($Data['IMEI'])) { $dataid = $Data['IMEI']; } else if (!empty($Data['IEMI'])) { $dataid = $Data['IEMI']; } else { exit; } $insert_id = $Data['insert_id']; $time = $Data['time']; $bz = $Data['bz']; //3小时以内相同设备报警未处理则不推送 $unique_number = $dataid; $redis = new \Redis(); $result = $redis->connect('47.98.201.73', 6379); $pd = 1; if ($result == 1) { $res = $redis->get("$unique_number"); if ($res == 1) { // echo "1----"; $pd = 1; } else if (!empty($res)) { // echo "2----".floor((strtotime($Data['time'])-strtotime($res))%86400/3600); if (floor((strtotime($Data['time']) - strtotime($res)) / 3600) > 3) { // echo "2.1----"; $pd = 1; } else { echo "2.2----"; $pd = 0; } } else { // echo "3----"; $pd = 1; } $res1 = $redis->get("$unique_number"); var_dump($res); $redis->set("$unique_number", "$time"); $redis->close(); } $nb_evt = $Data['evt_c']; switch ($Data['evt']) { case 'WP1': $status = '低压'; $where = " AND data2 like '%3%'"; break; case 'WP2': $status = '高压'; $where = " AND data2 like '%3%'"; break; case 'WP3': $status = '故障'; $where = " AND data2 like '%3%'"; break; case 'WP4': $status = '离线'; $where = " AND data2 like '%5%'"; break; case 'LL1': $status = '低水位'; $where = " AND data2 like '%3%'"; break; case 'LL2': $status = '高水位'; $where = " AND data2 like '%3%'"; break; default: $status = '其他' . $Data['Status']; $where = " AND data2 like '%3%'"; break; } print_r($nb_evt); if (!empty($nb_evt)) { $status = $nb_evt; $where = " AND data2 like '%3%'"; } print_r($status); $company = M()->query("select s.owner_name,s.unitinfo,s.company,c.owner_address from sp_owner s ,sp_owner_company c where s.company=c.owner_id and s.owner_code ='" . $dataid . "'"); $union_sql = M()->query("select phone from sp_owner_phone WHERE owner_code='" . $company[0]['company'] . "' " . $where . " and statusbb=1 union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company[0]['company'] . "') " . $where . " and statusbb=1 "); // print_r("select phone from sp_owner_phone WHERE owner_code='" . $company[0]['company'] . "' " . $where . " and statusbb=1 union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company[0]['company'] . "') " . $where . " and statusbb=1 "); if (count($union_sql) == 0) { exit; } $openids = $this->array_column1($union_sql, "phone"); // print_r($openids); if (empty($openids)) { echo 'open is null'; exit; } $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $dataid . "'"); $op = M()->query("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)"); // print_r("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)"); $access_token = GetAccess_Token1(); // print_r("测试计划access_token=" . $access_token); $access_token1 = S('accesToken'); // print_r($access_token1); $address = '警报地址:' . $company[0]['owner_address'] . $company[0]['unitinfo']; $deviceid = $dataid; $type = $status; if (empty($time)) { $time = $status11[0]['statustime']; } // $remark='设备名称:'.$company[0]['owner_name']; $ljcompany = $company[0]['company']; if (!empty($bz)) { $remark = $bz; } else { $remark = '设备名称:' . $company[0]['owner_name']; } $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/2/id/" . $insert_id; //判断是否推送 if ($pd == 1) { foreach ($op as $o) { if (!empty($o['openid'])) { //token,微信id,地址,设备号,类型,时间,设备名称(或者其他内容) //{{first.DATA}}$address //设备号:{{keyword1.DATA}}$deviceid //报警类型:{{keyword2.DATA}}$type //时间:{{keyword3.DATA}}$time //{{remark.DATA}}$remark $arr = $this->SendDeviceAlarm($access_token, $o['openid'], $address, $deviceid, $type, $time, $remark, $ljurl, $url = ''); $log = "[时间" . date("Y-m-d H:i:s") . "]返回数据:" . json_encode($arr) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/sj_fh_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); print_r($arr); } } } } public function message_electrical() { $Data = I('post.'); if (empty($Data['phone'])) { dump($Data['phone']); exit; } $dataid = $Data['device_code']; $openids = $Data['phone']; $insert_id = $Data['insert_id']; $bz = $Data['bz']; //3小时以内相同设备报警未处理则不推送 $time = $Data['time']; $unique_number = $dataid; $redis = new \Redis(); $result = $redis->connect('47.98.201.73', 6379); $pd = 1; if ($result == 1) { $res = $redis->get("$unique_number"); if ($res == 1) { // echo "1----"; $pd = 1; } else if (!empty($res)) { // echo "2----".floor((strtotime($Data['time'])-strtotime($res))%86400/3600); if (floor((strtotime($Data['time']) - strtotime($res)) / 3600) > 3) { // echo "2.1----"; $pd = 1; } else { echo "2.2----"; $pd = 0; } } else { // echo "3----"; $pd = 1; } $res1 = $redis->get("$unique_number"); var_dump($res); $redis->set("$unique_number", "$time"); $redis->close(); } switch ($Data['evt']) { case 'EF1': $status = '欠压报警'; $where = " AND data2 like '%7%'"; break; case 'EF2': $status = '过压报警'; $where = " AND data2 like '%7%'"; break; case 'EF3': $status = '过流报警'; $where = " AND data2 like '%7%'"; break; case 'EF4': $status = '漏电报警'; $where = " AND data2 like '%7%'"; break; case 'EF5': $status = '回路1温度超限报警'; $where = " AND data2 like '%7%'"; break; case 'EF6': $status = '回路2温度超限报警'; $where = " AND data2 like '%7%'"; break; case 'EF7': $status = '回路3温度超限报警'; $where = " AND data2 like '%7%'"; break; // case 'EF8': // $status='温度4超高'; // $where=" AND data2 like '%7%'"; // break; case 'EF9': $status = '离线'; $where = " AND data2 like '%5%'"; break; default: $status = '其他' . $Data['evt']; $where = " AND data2 like '%3%'"; break; } $company = M()->query("select s.owner_name,s.unitinfo,s.company,c.owner_address from sp_owner s ,sp_owner_company c where s.company=c.owner_id and s.owner_code ='" . $dataid . "'"); // if ($company[0]['company']==10215){ // echo '该单位下电器火灾告警屏蔽'; // exit(); // } $union_sql = M()->query("select phone from sp_owner_phone WHERE owner_code='" . $company[0]['company'] . "' " . $where . " and statusbb=1 union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company[0]['company'] . "') " . $where . " and statusbb=1 "); if (count($union_sql) == 0) { exit; } $openids = $this->array_column1($union_sql, "phone"); if (empty($openids)) { echo 'open is null'; exit; } $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $dataid . "'"); $op = M()->query("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)"); $access_token = GetAccess_Token1(); $address = '警报地址:' . $company[0]['owner_address'] . $company[0]['unitinfo']; $deviceid = $dataid; $type = $status; $time = date('Y-m-d H:i:s'); if (!empty($bz)) { $remark = $bz; } else { $remark = '设备名称:' . $company[0]['owner_name']; } $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/7/id/" . $insert_id; if ($pd == 1) { foreach ($op as $o) { if (!empty($o['openid'])) { $this->SendDeviceAlarm($access_token, $o['openid'], $address, $deviceid, $type, $time, $remark, $ljurl, $url = ''); } } } } }