"09", * "IMEI" => 设备编号, * "DateTime" => 时间, * "Interval" => 间隔时间, * "Status" => 状态, * "Battery" => 电量, * "Signal" => 信号, * "Unit" => 单位, * "Pressure" => 水压值, * "phone" => 电话, * "insert_id" => 插入表id * @return [type] [description] */ public function message_water() { $Data = I(); if (empty($Data['phone'])) { echo "is null"; exit; } $insert_id = $Data['insert_id']; if (!empty($Data['IMEI'])) { $dataid = $Data['IMEI']; } else if (!empty($Data['IEMI'])) { $dataid = $Data['IEMI']; } else { exit; } //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['Status']) { case 'LL0': $status = '正常'; break; case 'LL1': $status = '低水位'; break; case 'LL2': $status = '高水位'; break; case 'LL3': $status = '故障'; break; case 'LL4': $status = '离线'; break; case 'LL5': $status = '波动告警'; break; default: $status = '其他' . $Data['Status']; break; } if (!empty($Data['evt_c'])) { $status = $Data['evt_c']; } $company = M()->query("select s.owner_name,s.unitinfo,s.company,c.owner_address,s.company 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'] . "' and statusbb=1"); if (count($union_sql) == 0) { exit; } $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='" . $dataid . "'"); $access_token = GetAccess_Token1(); $address = '警报地址:' . $company[0]['owner_address'] . $company[0]['unitinfo']; $deviceid = $dataid; $type = $status; if (empty($Data['time'])) { $time = $status11[0]['statustime']; } else { $time = $Data['time']; } $remark = '设备名称:' . $company[0]['owner_name']; $ljurl = "https://qhome.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/2/id/" . $insert_id; print_r($op); if ($pd == 1) { foreach ($op as $o) { if (!empty($o['openid'])) { $res=$this->SendDeviceAlarm($access_token, $o['openid'], $address, $deviceid, $type, $time, $remark, $ljurl, $url = ''); print_r($res); } } } } }