connect('47.98.201.73', 6379); $pd = 1; if ($result == 1) { $res = $redis->get("$unique_number"); if ($res == 1) { $pd = 1; } else if (!empty($res)) { if (floor((strtotime($Data['time']) - strtotime($res)) / 3600) > 3) { $pd = 1; } else { $pd = 0; } } else { $pd = 1; } $res1 = $redis->get("$unique_number"); // var_dump($res); $redis->set("$unique_number", "$time"); $redis->close(); } // print_r("select s.push_param2,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 ='" . $device_code . "'"); $company = M()->query("select s.push_param2,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 ='" . $device_code . "'"); print_r($company); $company_code = $company[0]['company']; if ($company[0]['dwtype'] == 16) { $union_sql = M()->query("select phone from sp_owner_phone WHERE owner_code='" . $company_code . "' " . $where . " union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $company_code . "') " . $where); $openids = $this->array_column1($union_sql, "phone"); if (empty($openids)) { echo 'open is null'; exit; } $op = M()->query("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)"); $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $Data['id'] . "'"); $access_token = GetAccess_Token1(); $address = '警报地址:' . $company[0]['owner_address'] . $company[0]['unitinfo']; // if (empty($time)) { $time = $status11[0]['statustime']; // } // if ($dwtype == 16) { $status11 = M()->query("SELECT time FROM sp_video2017 where id='" . $insert_id . "'"); $time66 = $status11[0]['time']; if (!empty($time66)) { $time = $time66; } // } if (!empty($bz)) { $remark = $bz; } else { $remark = '设备名称:' . $company[0]['owner_name']; } $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/16/id/" . $insert_id; // print_r($op); if ($company_code == "11111") { $url = "https://qhome.usky.cn/jdxf/wxapp7.php/Home/Fireinfo/index/type/16/id/" . $insert_id . "/zdid/" . $company[0]['push_param2']; $access_token2 = GetAccess_Token2(); print_r("伍继"); $res1=M()->query("select clzt from sp_video2017 where id=".$insert_id); if ($res1[0]['clzt']==1){ $wjurl='https://qhome.usky.cn/index.html#/pages/processedDetail1/processedDetail1?companyCode='.$company[0]['push_param2'].'&processingStatus=1&id='.$insert_id.'&type=2'; }else{ $wjurl='https://qhome.usky.cn/index.html#/pages/unprocessDetail1/unprocessDetail1?companyCode='.$company[0]['push_param2'].'&processingStatus=0&id='.$insert_id.'&type=2'; } foreach ($op as $key => $o) { if (!empty($o['openid'])) { $Message = $this->SendDeviceAlarm3($access_token2, $o['openid'], $address, $device_code, $evt_name, $time, $remark, $url); print_r($Message); $Message1 = $this->SendDeviceAlarm3($access_token2, $o['openid'], $address, $device_code, $evt_name, $time, $remark, $wjurl); print_r($Message1); } } } else { if ($pd == 1) { foreach ($op as $key => $o) { if (!empty($o['openid'])) { $Message = $this->SendDeviceAlarm($access_token, $o['openid'], $address, $device_code, $evt_name, $time, $remark, $ljurl, $url = ''); $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Message) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/video_fh_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); print_r($Message); } } } } } // } } public function voice_alarm() { $Data = I(); log_Printing($Data, 'voice_alarm'); //采集推送的参数 if (!empty($Data['device_code'])) { $dataid = $Data['device_code'];//设备编号 } elseif (!empty($Data['IMEI'])) { $dataid = $Data['IMEI'];//设备编号 } elseif (!empty($Data['IEMI'])) { $dataid = $Data['IEMI'];//设备编号 } elseif (!empty($Data['id'])) { $dataid = $Data['id'];//设备编号 } else { echo "device_code is null"; exit; } $insert_id = $Data['insert_id'];//记录id $time = $Data['time'];//报警时间 $bz = $Data['bz'];//备注 $evt = $Data['evt'];//故障类型编码 $evt_name = $Data['evt_name'];//故障类型 //单位和报警类型 $res = M()->query("select company,dwtype from sp_owner where owner_code='" . $dataid . "'"); if (empty($res)) { echo "Missing system parameter unit or type"; exit; } // print_r($res);exit(); //类型判断 $dwtype = $res[0]['dwtype']; if (empty($evt)) { $evt_name = $evt_name; if ($evt_name == '离线') { $dwtype = 8; } } else { switch ($res[0]['dwtype']) { case "1"; $type_name = '火警'; switch ($evt) { case '44'://判断是否设置离线语音报警 $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; case 'H02P1': $evt_name = '火警'; $where = " AND data2 like '%1%'"; break; case 'H02P2': $evt_name = '故障'; $where = " AND data2 like '%2%'"; break; case 'H02P3': $evt_name = '屏蔽'; $where = " AND data2 like '%0%'"; break; case 'H02P4': $evt_name = '监管'; $where = " AND data2 like '%0%'"; break; case 'H02P5': $evt_name = '启动'; $where = " AND data2 like '%1%'"; break; case 'H02P6': $evt_name = '反馈'; $where = " AND data2 like '%1%'"; break; case 'H02P8': $evt_name = '电源故障'; $where = " AND data2 like '%2%'"; break; case 'U24P0': $evt_name = '复位'; $where = " AND data2 like '%0%'"; break; case 'U24P1': $evt_name = '消音'; $where = " AND data2 like '%0%'"; break; case 'U24P2': $evt_name = '手动报警'; $where = " AND data2 like '%1%'"; break; case 'U24P4': $evt_name = '自检'; $where = " AND data2 like '%0%'"; break; case 'U21P1': $evt_name = '火警'; $where = " AND data2 like '%1%'"; break; case 'U21P2': $evt_name = '故障'; $where = " AND data2 like '%2%'"; break; case 'U21P3': $evt_name = '主电故障'; $where = " AND data2 like '%2%'"; break; case 'U21P4': $evt_name = '备电故障'; $where = " AND data2 like '%2%'"; break; default: $evt_name = '其他'; $where = " AND data2 like '%0%'"; break; } break; case "2"; $type_name = '消防水'; switch ($evt) { case 'WP1': $evt_name = '低压'; $where = " AND data2 like '%3%'"; break; case 'WP2': $evt_name = '高压'; $where = " AND data2 like '%3%'"; break; case 'WP4': $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; } break; case "3"; $type_name = '烟感'; switch ($evt) { case 'y01': $evt_name = '报警'; $where = " AND data2 like '%6%'"; break; case 'y04': $evt_name = '低压'; $where = " AND data2 like '%6%'"; break; case 'y05': $evt_name = '故障'; $where = " AND data2 like '%6%'"; break; case 'y07': $evt_name = '火灾报警'; $where = " AND data2 like '%6%'"; break; case 'y08': $evt_name = '温度报警'; $where = " AND data2 like '%6%'"; break; case 'y09': $evt_name = '烟感电量低'; $where = " AND data2 like '%6%'"; break; case 'y10': $evt_name = '防拆报警'; $where = " AND data2 like '%6%'"; break; case 'y11': $evt_name = '发射电路故障'; $where = " AND data2 like '%6%'"; break; } break; case "5"; $type_name = '液位'; switch ($evt) { case 'LL0': $evt_name = '正常'; break; case 'LL1': $evt_name = '低水位'; break; case 'LL2': $evt_name = '高水位'; break; case 'LL3': $evt_name = '故障'; break; case 'LL4': $evt_name = '离线'; break; } break; case "6"; $type_name = 'RTU'; $evt_name = $evt_name; if ($evt_name == '离线') { $where = " AND data2 like '%5%'"; } else { $where = " AND data2 like '%4%'"; } break; case "7"; $type_name = '电气火灾'; switch ($evt) { case 'EF1': $evt_name = '欠压'; $where = " AND data2 like '%7%'"; break; case 'EF2': $evt_name = '过压'; $where = " AND data2 like '%7%'"; break; case 'EF3': $evt_name = '过流'; $where = " AND data2 like '%7%'"; break; case 'EF4': $evt_name = '漏电'; $where = " AND data2 like '%7%'"; break; case 'EF5': $evt_name = '温度1超高'; $where = " AND data2 like '%7%'"; break; case 'EF6': $evt_name = '温度2超高'; $where = " AND data2 like '%7%'"; break; case 'EF7': $evt_name = '温度3超高'; $where = " AND data2 like '%7%'"; break; case 'EF8': $evt_name = '温度4超高'; $where = " AND data2 like '%7%'"; break; case 'EF9': $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; } break; case "16"; $type_name = '视频监测'; $evt_name = $evt_name; if ($evt_name == '离线') { $where = " AND data2 like '%5%'"; } else { $where = " AND data2 like '%8%'"; } break; case "17"; $type_name = '电梯监测'; switch ($evt) { case 'LF01': $evt_name = '声音报警'; // $where=" AND data2 like '%3%'"; break; case 'LF03': $evt_name = '电梯检修'; // $where=" AND data2 like '%3%'"; break; case 'LF04': $evt_name = '电梯检修恢复'; // $where=" AND data2 like '%5%'"; break; case 'LF05': $evt_name = '电梯故障'; // $where=" AND data2 like '%3%'"; break; case 'LF0501': $evt_name = '电梯异常停留'; // $where=" AND data2 like '%3%'"; break; case 'LF0502': $evt_name = '电梯异常开门'; // $where=" AND data2 like '%3%'"; break; case 'LF0503': $evt_name = '电梯异常关门'; // $where=" AND data2 like '%3%'"; break; case 'LF0504': $evt_name = '电梯异常走梯'; // $where=" AND data2 like '%3%'"; break; case 'LF06': $evt_name = '电梯故障恢复'; // $where=" AND data2 like '%3%'"; break; default: $evt_name = '其他' . $Data['Status']; // $where=" AND data2 like '%3%'"; break; } break; case "8"; break; default: echo "This type of voice function is not enabled"; break; } } //时间拼接 $Y = date("m", strtotime($time)); $R = date("d", strtotime($time)); $S = date("G", strtotime($time)); $F = date("i", strtotime($time)); $time1 = date("Y-m-d");//日期 $time2 = date("Y-m-d H:i:s");//时间 $time3 = $Y . '月' . $R . '日' . $S . '时' . $F . '分'; $time4 = date("Y-m"); $time5 = date("Y"); $usersql = "select * from ytiot_v_usercompany where owner_code='" . $res[0]['company'] . "' group by username"; $user = add66($usersql); //语音推送 foreach ($user as $key1 => $value1) { $sql = "select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype like '%" . $dwtype . "%' and jrq>='" . $time1 . "' and zed>0"; $setmeal = add66($sql); if (!empty($setmeal)) { switch ($setmeal[0]['pzlb']) { case 0; $time6 = $time1; break; case 1; $time6 = $time4; break; case 2; $time6 = $time5; break; } $sql1 = "select count(*) as tsl from ytiot_yy_sjjl where company_code='" . $user[$key1]['username'] . "' and sbtype=" . $dwtype . " and sfyy=1 and bjsj like '" . $time6 . "%'"; // $varsl = add($sql1); if ($setmeal[0]['lbsl'] > $varsl[0]['tsl']) { if (!empty($setmeal[0]['bjhm'])) {//一个手机号 // $json = singleCallByTts($setmeal[0]['bjhm'], $type_name, $evt_name, $time3); print_r($setmeal[0]['bjhm'] . $type_name . $evt_name . $time3 . $json); exit(); if ($json == 'OK') { $sql3 = "select * from ytiot_yy_pzb where id=" . $setmeal[0]['id']; $res2 = add66($sql3); $zed = $res2[0]['zed'] - 1; $sql_update = "update ytiot_yy_pzb set zed = " . $zed . " where id =" . $setmeal[0]['id']; $res3 = addDataInfo($sql_update); if ($res3) { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',1,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } // else {//多个手机号,暂时不用 // foreach ($setmeal as $key6 => $value6) { // $sql2 = "select * from ytiot_yy_bjhm where pzbid=" . $setmeal[$key6]['id']; // $phone = add66($sql2); // foreach ($phone as $key => $value) { // $json = singleCallByTts($phone[$key]['bjhm'], $type_name, $evt_name, $time3); // if ($json == 'OK') { // $sql3 = "select * from ytiot_yy_pzb where id=" . $setmeal[$key6]['id']; // $res2 = add66($sql3); // $zed = $res2[0]['zed'] - 1; // $sql_update = "update ytiot_yy_pzb set zed = " . $zed . " where id =" . $setmeal[$key6]['id']; // $res3 = addDataInfo($sql_update); // if ($res3) { // $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" // . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',1,'" . $user[$key1]['username'] . "')"; // addDataInfo($sql_inset); // } // } else { // $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" // . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; // addDataInfo($sql_inset); // } // } // } // } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } } public function voice1() { // print_r( $_SERVER["REMOTE_ADDR"]); 获得ip $Data = I('post.'); // print_r($Data); $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/voice_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); if (empty($Data['phone'])) { echo "is null"; exit; } if (!empty($Data['device_code'])) { $dataid = $Data['device_code'];//设备编号 } elseif (!empty($Data['IMEI'])) { $dataid = $Data['IMEI'];//设备编号 } elseif (!empty($Data['IEMI'])) { $dataid = $Data['IEMI'];//设备编号 } elseif (!empty($Data['id'])) { $dataid = $Data['id'];//设备编号 } else { echo "is null"; exit; } $insert_id = $Data['insert_id']; $time = $Data['time'];//报警时间 $bz = $Data['bz'];//备注 $tstype = 4;//推送类型 $evt = $Data['evt'];//故障类型 $evt_name = $Data['evt_name'];//故障类型 // addInt("insert into aa (data,time) values ('".json_encode($Data)."','".date("Y-m-d H:i:s")."')"); $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n"; $filename_log = "/var/www/html/jdxf/log/yy_log" . date("Y-m-d") . ".log"; file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX); $company = M()->query("select company,dwtype from sp_owner where owner_code='" . $dataid . "'"); if (!empty($company)) { $dwtype = $company[0]['dwtype']; switch ($dwtype) { case "1";//判断报警类型 $type_name = '火警'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($evt) { case '44'://判断是否设置离线语音报警 $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; case 'H02P1': $evt_name = '火警'; $where = " AND data2 like '%1%'"; break; case 'H02P2': $evt_name = '故障'; $where = " AND data2 like '%2%'"; break; case 'H02P3': $evt_name = '屏蔽'; $where = " AND data2 like '%0%'"; break; case 'H02P4': $evt_name = '监管'; $where = " AND data2 like '%0%'"; break; case 'H02P5': $evt_name = '启动'; $where = " AND data2 like '%1%'"; break; case 'H02P6': $evt_name = '反馈'; $where = " AND data2 like '%1%'"; break; // case 'H02P7': // $status='延时'; // break; case 'H02P8': $evt_name = '电源故障'; $where = " AND data2 like '%2%'"; break; case 'U24P0': $evt_name = '复位'; $where = " AND data2 like '%0%'"; break; case 'U24P1': $evt_name = '消音'; $where = " AND data2 like '%0%'"; break; case 'U24P2': $evt_name = '手动报警'; $where = " AND data2 like '%1%'"; break; // case 'U24P3': // $status='警情消除'; // break; case 'U24P4': $evt_name = '自检'; $where = " AND data2 like '%0%'"; break; // case 'U24P5': // $status='查岗应答'; // break; // case 'U21P0': // $status='正常'; // break; case 'U21P1': $evt_name = '火警'; $where = " AND data2 like '%1%'"; break; case 'U21P2': $evt_name = '故障'; $where = " AND data2 like '%2%'"; break; case 'U21P3': $evt_name = '主电故障'; $where = " AND data2 like '%2%'"; break; case 'U21P4': $evt_name = '备电故障'; $where = " AND data2 like '%2%'"; break; // case 'U21P5': // $status='监控'; // break; // case 'U21P6': // $status='接线'; // break; default: $evt_name = '其他'; $where = " AND data2 like '%0%'"; // $status=$evt_name; break; } } break; case "2";//判断报警类型 $type_name = '消防水'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($Data['evt']) { case 'WP1': $evt_name = '低压'; $where = " AND data2 like '%3%'"; break; case 'WP2': $evt_name = '高压'; $where = " AND data2 like '%3%'"; break; case 'WP4': $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; // default: // $status='其他'.$Data['evt']; // break; } } break; case "3";//判断报警类型 $type_name = '烟感'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($Data['evt']) { case 'y01': $evt_name = '报警'; $where = " AND data2 like '%6%'"; break; // case 'yo2': // $status='报警静音'; // break; case 'y04': $evt_name = '低压'; $where = " AND data2 like '%6%'"; break; case 'y05': $evt_name = '故障'; $where = " AND data2 like '%6%'"; break; case 'y07': $evt_name = '火灾报警'; $where = " AND data2 like '%6%'"; break; case 'y08': $evt_name = '温度报警'; $where = " AND data2 like '%6%'"; break; case 'y09': $evt_name = '烟感电量低'; $where = " AND data2 like '%6%'"; break; case 'y10': $evt_name = '防拆报警'; $where = " AND data2 like '%6%'"; break; case 'y11': $evt_name = '发射电路故障'; $where = " AND data2 like '%6%'"; break; // default: // $status='其他'.$Data['evt']; // break; } } break; case "5";//判断报警类型 $type_name = '液位'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($Data['evt']) { case 'LL0': $evt_name = '正常'; break; case 'LL1': $evt_name = '低水位'; break; case 'LL2': $evt_name = '高水位'; break; case 'LL3': $evt_name = '故障'; break; case 'LL4': $evt_name = '离线'; break; // default: // $status='其他'.$Data['Status']; // break; } } break; case "6";//判断报警类型 $type_name = 'RTU'; $evt_name = $evt_name; if ($evt_name == '离线') { $where = " AND data2 like '%5%'"; } else { $where = " AND data2 like '%4%'"; } break; case "7";//判断报警类型 $type_name = '电气火灾'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($Data['evt']) { case 'EF1': $evt_name = '欠压'; $where = " AND data2 like '%7%'"; break; case 'EF2': $evt_name = '过压'; $where = " AND data2 like '%7%'"; break; case 'EF3': $evt_name = '过流'; $where = " AND data2 like '%7%'"; break; case 'EF4': $evt_name = '漏电'; $where = " AND data2 like '%7%'"; break; case 'EF5': $evt_name = '温度1超高'; $where = " AND data2 like '%7%'"; break; case 'EF6': $evt_name = '温度2超高'; $where = " AND data2 like '%7%'"; break; case 'EF7': $evt_name = '温度3超高'; $where = " AND data2 like '%7%'"; break; case 'EF8': $evt_name = '温度4超高'; $where = " AND data2 like '%7%'"; break; case 'EF9': $evt_name = '离线'; $where = " AND data2 like '%5%'"; break; // default: // $status='其他'.$Data['evt']; // break; } } break; case "16";//判断报警类型 $type_name = '视频'; $evt_name = $evt_name; if ($evt_name == '离线') { $where = " AND data2 like '%5%'"; } else { $where = " AND data2 like '%8%'"; } break; case "17";//判断报警类型 $type_name = '电梯'; if (empty($evt)) { $evt_name = $evt_name; } else { switch ($Data['evt']) { case 'LF01': $evt_name = '声音报警'; // $where=" AND data2 like '%3%'"; break; case 'LF03': $evt_name = '电梯检修'; // $where=" AND data2 like '%3%'"; break; case 'LF04': $evt_name = '电梯检修恢复'; // $where=" AND data2 like '%5%'"; break; case 'LF05': $evt_name = '电梯故障'; // $where=" AND data2 like '%3%'"; break; case 'LF0501': $evt_name = '电梯异常停留'; // $where=" AND data2 like '%3%'"; break; case 'LF0502': $evt_name = '电梯异常开门'; // $where=" AND data2 like '%3%'"; break; case 'LF0503': $evt_name = '电梯异常关门'; // $where=" AND data2 like '%3%'"; break; case 'LF0504': $evt_name = '电梯异常走梯'; // $where=" AND data2 like '%3%'"; break; case 'LF06': $evt_name = '电梯故障恢复'; // $where=" AND data2 like '%3%'"; break; default: $evt_name = '其他' . $Data['Status']; // $where=" AND data2 like '%3%'"; break; } } break; } if ($evt_name == '离线') { $dwtype = 8; } $Y = date("m", strtotime($time)); $R = date("d", strtotime($time)); $S = date("G", strtotime($time)); $F = date("i", strtotime($time)); $time1 = date("Y-m-d");//日期 $time2 = date("Y-m-d H:i:s");//时间 $time3 = $Y . '月' . $R . '日' . $S . '时' . $F . '分'; print_r($time3); $time4 = date("Y-m"); $time5 = date("Y"); $usersql = "select * from ytiot_v_usercompany where owner_code='" . $company[0]['company'] . "' group by username"; $user = add66($usersql); // print_r($user); foreach ($user as $key1 => $value1) { // 语音推送 if ($tstype == 1 || $tstype == 3 || $tstype == 5 || $tstype == 7) { // print_r( "select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype=" . $dwtype . " and jrq>='" . $time1 . "' and zed>0"); $sql = "select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype like '%" . $dwtype . "%' and jrq>='" . $time1 . "' and zed>0"; $setmeal = add66($sql); // print_r("select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype like '%" . $dwtype . "%' and jrq>='" . $time1 . "' and zed>0"); if (!empty($setmeal)) { switch ($setmeal[0]['pzlb']) { case 0; $time6 = $time1; break; case 1; $time6 = $time4; break; case 2; $time6 = $time5; break; } $sql1 = "select count(*) as tsl from ytiot_yy_sjjl where company_code='" . $user[$key1]['username'] . "' and sbtype=" . $dwtype . " and sfyy=1 and bjsj like '" . $time6 . "%'"; $varsl = add($sql1); if ($setmeal[0]['lbsl'] > $varsl[0]['tsl']) { if (!empty($setmeal[0]['bjhm'])) {//一个手机号 $json = singleCallByTts($setmeal[0]['bjhm'], $type_name, $evt_name, $time3); if ($json == 'OK') { $sql3 = "select * from ytiot_yy_pzb where id=" . $setmeal[0]['id']; $res2 = add66($sql3); $zed = $res2[0]['zed'] - 1; $sql_update = "update ytiot_yy_pzb set zed = " . $zed . " where id =" . $setmeal[0]['id']; $res3 = addDataInfo($sql_update); if ($res3) { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',1,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else {//多个手机号,暂时不用 print_r($setmeal); foreach ($setmeal as $key6 => $value6) { $sql2 = "select * from ytiot_yy_bjhm where pzbid=" . $setmeal[$key6]['id']; print_r("select * from ytiot_yy_bjhm where pzbid=" . $setmeal[$key6]['id']); $phone = add66($sql2); print_r($phone); foreach ($phone as $key => $value) { $json = singleCallByTts($phone[$key]['bjhm'], $type_name, $evt_name, $time3); // $json=''; print_r($json); if ($json == 'OK') { $sql3 = "select * from ytiot_yy_pzb where id=" . $setmeal[$key6]['id']; $res2 = add66($sql3); $zed = $res2[0]['zed'] - 1; $sql_update = "update ytiot_yy_pzb set zed = " . $zed . " where id =" . $setmeal[$key6]['id']; $res3 = addDataInfo($sql_update); if ($res3) { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',1,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } } } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } else { $sql_inset = "insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "','" . $time . "','" . $time2 . "',0,'" . $user[$key1]['username'] . "')"; addDataInfo($sql_inset); } } // 短信推送 if ($tstype == 2 || $tstype == 3 || $tstype == 6 || $tstype == 7) { $dxsql = "select a.id as cz_id,b.id as pz_id,b.cycle,b.cycle_cs from ytiot_dx_cz as a join ytiot_dx_pz as b on a.id=b.cz_id where a.e_status=1 and a.user_name='" . $user[$key1]['username'] . "' and a.end_date>='" . $time1 . "' and a.balance>0"; $dxxx = add66($dxsql); if (!empty($dxxx)) { switch ($dxxx[0]['cycle']) { case 1; $time6 = $time1; break; case 2; $time6 = $time4; break; case 3; $time6 = $time5; break; } $dxsql1 = "select count(*) as dxfssl from ytiot_dx_sms_push_record where user_name='" . $user[$key1]['username'] . "' and success_tag=1 and alarm_time like '" . $time6 . "%'"; $dxvarsl = add($dxsql1); if ($dxxx[0]['cycle_cs'] > $dxvarsl[0]['dxfssl']) { $phonesql = "select b.phone,b.name from ytiot_dx_configure_renyuan as a join ytiot_dx_staffing as b on a.staffing_id=b.id where pz_id=" . $dxxx[0]['pz_id'] . " and b.bj_type like '%" . $dwtype . "%'"; $phone = add($phonesql); if (!empty($phone)) { foreach ($phone as $key66 => $value66) { $fsxx = array('type' => $type_name, 'gz' => $evt_name, 'bjsj' => $time3); $dxjson = dxsendSms($phone[$key66]['phone'], $fsxx); if ($dxjson == 'OK') { $yesql = "select balance from ytiot_dx_cz where id=" . $dxxx[0]['cz_id']; $ye = add($yesql); $ye1 = $ye[0]['balance'] - 1; $sql_updateye = "update ytiot_dx_cz set balance = " . $ye1 . " where id =" . $dxxx[0]['cz_id']; $ye_update = addDataInfo($sql_updateye); if ($ye_update) { $sql_dxjs_inset = "insert into ytiot_dx_sms_push_record (device_code,alarm_type,alarm_content,success_tag,sms_sending,user_name,alarm_time) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "',1,'发送成功','" . $user[$key1]['username'] . "','" . $time . "')"; addDataInfo($sql_dxjs_inset); } } else { //原因:代码出现问题 $dxsql_inset = "insert into ytiot_dx_sms_push_record (device_code,alarm_type,alarm_content,success_tag,sms_sending,user_name,alarm_time) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "',0,'原因:参数不合法','" . $user[$key1]['username'] . "','" . $time . "')"; addDataInfo($dxsql_inset); } } } else { //原因:未添加接收人; $dxsql_inset = "insert into ytiot_dx_sms_push_record (device_code,alarm_type,alarm_content,success_tag,sms_sending,user_name,alarm_time) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "',0,'原因:未添加接收人','" . $user[$key1]['username'] . "','" . $time . "')"; addDataInfo($dxsql_inset); } } else { // 原因:当天配置的报警已用完; $dxsql_inset = "insert into ytiot_dx_sms_push_record (device_code,alarm_type,alarm_content,success_tag,sms_sending,user_name,alarm_time) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "',0,'原因:当天配置的报警已用完','" . $user[$key1]['username'] . "','" . $time . "')"; addDataInfo($dxsql_inset); } } else { // 原因:1.尚未开通;2.开通时间到期;3.余额不足; $dxsql_inset = "insert into ytiot_dx_sms_push_record (device_code,alarm_type,alarm_content,success_tag,sms_sending,user_name,alarm_time) values ('" . $dataid . "'," . $dwtype . ",'" . $evt_name . "',0,'原因:1.尚未开通;2.开通时间到期;3.余额不足;','" . $user[$key1]['username'] . "','" . $time . "')"; addDataInfo($dxsql_inset); } } } // 微信推送 if ($company[0]['company'] != 10226) { if ($tstype == 4 || $tstype == 5 || $tstype == 6 || $tstype == 7) { $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 (!empty($where)){ print_r($company); $union_sql = M()->query("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 . ""); // }else{ // $union_sql=M()->query("select phone from sp_owner_phone WHERE owner_code='".$company[0]['company']."' union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='".$company[0]['company']."')"); // } if (count($union_sql) == 0) { exit; } $openids = $this->array_column1($union_sql, "phone"); if (empty($openids)) { echo 'open is null'; exit; } if ($dwtype != 17) { $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $dataid . "'"); $time66 = $status11[0]['statustime']; if (empty($time66)) { $time = $time; } else { $time = $time66; } } else { $time = $time1; } if ($dwtype == 16) { $status11 = M()->query("SELECT time FROM sp_video2017 where id='" . $insert_id . "'"); $time66 = $status11[0]['time']; if (empty($time66)) { $time = $time; } else { $time = $time66; } } $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; $evt_name = $evt_name; // $remark='设备名称:'.$company[0]['owner_name']; if (!empty($bz)) { $remark = $bz; } else { $remark = '设备名称:' . $company[0]['owner_name']; } $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/" . $dwtype . "/id/" . $insert_id; print_r($ljurl); foreach ($op as $o) { if (!empty($o['openid'])) { $this->SendDeviceAlarm($access_token, $o['openid'], $address, $deviceid, $evt_name, $time, $remark, $ljurl, $url = ''); } } } } } else { // 无此设备 } } }