123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 |
- <?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 SmsNotificationController extends Controller
- {
- public function voice()
- {
- print_r( $_SERVER["REMOTE_ADDR"]);
- $Data = I('post.');
- $dataid = $Data['IMEI'];
- $time = $Data['time'];
- $evt = $Data['evt'];
- $evt_name = $Data['evt_name'];
- $dwtype = $Data['dwtype'];
- $company = M()->query("select company,dwtype from sp_owner where owner_code=" . $dataid);
- if (empty($company)) {
- exit();
- }
- if (empty($dwtype)) {
- $dwtype = $company[0]['dwtype'];
- }
- switch ($dwtype) {
- case "1";//判断报警类型
- $type_name = '火警';
- if(empty($evt)){
- $status = $evt_name;
- }else{
- switch ($evt) {
- case '44'://判断是否设置离线语音报警
- $status = '离线';
- break;
- case 'H02P1':
- $status = '火警';
- break;
- case 'H02P2':
- $status = '故障';
- break;
- case 'H02P3':
- $status='屏蔽';
- break;
- case 'H02P4':
- $status='监管';
- break;
- case 'H02P5':
- $status='启动';
- break;
- case 'H02P6':
- $status='反馈';
- break;
- // case 'H02P7':
- // $status='延时';
- // break;
- case 'H02P8':
- $status = '电源故障';
- break;
- case 'U24P0':
- $status='复位';
- break;
- case 'U24P1':
- $status='消音';
- break;
- case 'U24P2':
- $status = '手动报警';
- break;
- // case 'U24P3':
- // $status='警情消除';
- // break;
- case 'U24P4':
- $status='自检';
- break;
- // case 'U24P5':
- // $status='查岗应答';
- // break;
- // case 'U21P0':
- // $status='正常';
- // break;
- case 'U21P1':
- $status = '火警';
- break;
- case 'U21P2':
- $status = '故障';
- break;
- case 'U21P3':
- $status = '主电故障';
- break;
- case 'U21P4':
- $status = '备电故障';
- break;
- // case 'U21P5':
- // $status='监控';
- // break;
- // case 'U21P6':
- // $status='接线';
- // break;
- default:
- $status='其他';
- // $status=$evt_name;
- break;
- }
- }
- break;
- case "2";// 判断报警类型
- $type_name = '消防水';
- switch ($Data['evt']) {
- case 'WP1':
- $status = '低压';
- break;
- case 'WP2':
- $status = '高压';
- break;
- case 'WP4':
- $status = '离线';
- break;
- // default:
- // $status='其他'.$Data['evt'];
- // break;
- }
- break;
- case "3";// 判断报警类型
- $type_name = '烟感';
- switch ($Data['evt']) {
- case 'y01':
- $status = '报警';
- break;
- // case 'yo2':
- // $status='报警静音';
- // break;
- case 'y04':
- $status = '低压';
- break;
- case 'y05':
- $status = '故障';
- break;
- // default:
- // $status='其他'.$Data['evt'];
- // break;
- }
- break;
- case "5";//判断报警类型
- $type_name = '液位';
- switch ($Data['evt']) {
- case 'LL0':
- $status = '正常';
- break;
- case 'LL1':
- $status = '低水位';
- break;
- case 'LL2':
- $status = '高水位';
- break;
- case 'LL3':
- $status = '故障';
- break;
- case 'LL4':
- $status = '离线';
- break;
- // default:
- // $status='其他'.$Data['Status'];
- // break;
- }
- break;
- case "6";
- $type_name = 'RTU';
- $status = $evt_name;
- break;
- case "7";
- $type_name = '电气火灾';
- switch ($Data['evt']) {
- case 'EF1':
- $status = '欠压';
- break;
- case 'EF2':
- $status = '过压';
- break;
- case 'EF3':
- $status = '过流';
- break;
- case 'EF4':
- $status = '漏电';
- break;
- case 'EF5':
- $status = '温度1超高';
- break;
- case 'EF6':
- $status = '温度2超高';
- break;
- case 'EF7':
- $status = '温度3超高';
- break;
- case 'EF8':
- $status = '温度4超高';
- break;
- case 'EF9':
- $status = '离线';
- break;
- // default:
- // $status='其他'.$Data['evt'];
- // break;
- }
- break;
- }
- // print_r(第一);
- $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");
- if ($status == '离线') {
- $dwtype = 8;
- }
- // print_r(第一);
- $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){
- // 语音
- $sql = "select * from ytiot_yy_pzb where e_status=1 and username='" . $user[$key1]['username'] . "' and sbtype=" . $dwtype . " and jrq>='" . $time1 . "' and zed>0";
- $setmeal = add66($sql);
- // 短信
- $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);
- // print_r('第一'.$dxsql);
- // print_r('第一'.$dxxx);
- //语音
- if (!empty($setmeal)){
- print_r(第二);
- 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']){
- print_r(第三);
- if (!empty($setmeal[0]['bjhm'])){
- print_r(第四);
- $json=singleCallByTts($setmeal[0]['bjhm'],$type_name,$status,$time3);
- if($json=='OK'){
- print_r(第五);
- $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){
- print_r(第六);
- // print_r($status);
- $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".
- $status."','".$time."','".$time2."',1,'".$user[$key1]['username']."')";
- $res1 = addDataInfo($sql_inset);
- }
- }else{
- // print_r($status);
- $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".$status."','".$time."','".$time2."',0,'".$user[$key1]['username']."')";
- $inset=addDataInfo($sql_inset);
- }
- }else{//多个被叫号码,暂时不用
- $sql2="select * from ytiot_yy_bjhm where pzbid=".$setmeal[0]['id'];
- $phone=add66($sql2);
- foreach ($phone as $key => $value){
- $json=singleCallByTts($phone[$key]['bjhm'],$type_name,$status,$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.",'".
- $status."','".$time."','".$time2."',1,'".$user[$key1]['username']."')";
- $res1 = addDataInfo($sql_inset);
- }
- }else{
- // print_r($status);
- $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".$status."','".$time."','".$time2."',0,'".$user[$key1]['username']."')";
- $inset=addDataInfo($sql_inset);
- }
- }
- }
- }else{
- // print_r($status);
- $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('".$dataid."',".$dwtype.",'".$status."','".$time."','".$time2."',0,'".$user[$key1]['username']."')";
- $inset=addDataInfo($sql_inset);
- }
- }
- else{
- // print_r($status);
- if($user[$key1]['username']){
- }
- $sql_inset="insert into ytiot_yy_sjjl (sbbh,sbtype,bjtype,bjsj,lrsj,sfyy,company_code) values ('"
- .$dataid."',".$dwtype.",'".$status."','".$time."','".$time2."',0,'".$user[$key1]['username']."')";
- $inset=addDataInfo($sql_inset);
- // if($inset){
- // return 'OK';
- // }
- }
- //短信
- if (!empty($dxxx)){
- // print_r(第七);
- 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."%'";
- // print_r('第八'.$dxsql1);
- $dxvarsl=add($dxsql1);
- // print_r(第八);
- 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);
- // print_r('第九'.$phonesql);
- if (!empty($phone)){
- foreach ($phone as $key66=>$value66){
- $fsxx=array('type'=>$type_name,'gz'=>$status,'bjsj'=>$time3);
- $dxjson=dxsendSms($phone[$key66]['phone'],$fsxx);
- print_r('第十'.$dxjson['Code']);
- if($dxjson=='OK'){
- $yesql="select balance from ytiot_dx_cz where id=".$dxxx[0]['cz_id'];
- print_r('第十一'.$yesql);
- $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.",'".
- $status."',1,'发送成功','".$user[$key1]['username']."','".$time."')";
- $dxjs_inset = 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.",'".
- $status."',0,'原因:参数不合法','".$user[$key1]['username']."','".$time."')";
- $dx_inset=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.",'".
- $status."',0,'原因:未添加接收人','".$user[$key1]['username']."','".$time."')";
- $dx_inset=addDataInfo($dxsql_inset);
- }
- // json_encode($phone_list);
- }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.",'".
- $status."',0,'原因:当天配置的报警已用完','".$user[$key1]['username']."','".$time."')";
- $dx_inset=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.",'".
- $status."',0,'原因:1.尚未开通;2.开通时间到期;3.余额不足;','".$user[$key1]['username']."','".$time."')";
- $dx_inset=addDataInfo($dxsql_inset);
- }
- }
- }
- }
|