123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/4/30 0030
- * Time: 上午 9:53
- */
- namespace Home\Controller;
- use Think\Controller;
- include '../Common/function.php';
- include('/php/aliyun-dyvms-php-sdk/api_demo/singleCallByTts1.php');
- include('/php/api_sdk/JdMessageSend4.php');
- class GeneralPushController extends PushWarnController
- {
- public function voice()
- {
- $Data = I();
- $log = "[时间" . date("Y-m-d H:i:s") . "]报警数据:" . json_encode($Data) . "\r\n";
- $filename_log = "/var/www/html/jdxf/log/video_log" . date("Y-m-d") . ".log";
- file_put_contents($filename_log, $log, FILE_APPEND | LOCK_EX);
- print_r($Data);
- if (empty($Data['device_code'])) {
- echo 'device_code is null';
- exit;
- }
- $where = " AND data2 like '%8%'";
- $device_code = $Data['device_code'];
- $phone = $Data['phone'];
- $evt_name = $Data['evt_name'];
- $time = $Data['time'];
- $insert_id = $Data['insert_id'];
- $bz = $Data['bz'];
- $user_from = $Data['user_from'];
- // //3小时以内相同设备报警未处理则不推送;
- $unique_number = $device_code;
- $redis = new \Redis();
- $result = $redis->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 {
- // 无此设备
- }
- }
- }
|