FirewarnController.class.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. use Think\Cache\Driver;
  5. class FirewarnController extends PushWarnController
  6. {
  7. /**
  8. *
  9. * @return [type] [description]
  10. */
  11. public function message_sendalarm()
  12. {//用户传输设备微信推送
  13. $Data = I();
  14. //日志打印
  15. $filename_log = "/var/www/html/jdxf/log/fire_b_log" . date("Y-m-d") . ".log";
  16. $this->printing_log($Data, $filename_log);
  17. //需要用到的参数
  18. $insert_id = $Data['insert_id'];
  19. $device_code = $Data['id'];
  20. $remarks = $Data['bz'];
  21. $types = $Data['types'];
  22. $time = $Data['time'];
  23. if (empty($insert_id)||empty($device_code)||empty($types)){
  24. echo '缺少重要参数,请检查推送代码!';
  25. exit();
  26. }
  27. switch ($types) {
  28. case '44':
  29. $status = '离线';
  30. $ty = 5;
  31. break;
  32. case 'H02P0':
  33. $status = '测试运行';
  34. $ty = 0;
  35. break;
  36. case 'U21P1':
  37. case 'H02P1':
  38. $status = '火警';
  39. $ty = 1;
  40. break;
  41. case 'U21P2':
  42. case 'H02P2':
  43. $status = '故障';
  44. $ty = 2;
  45. break;
  46. case 'H02P3':
  47. $status = '屏蔽';
  48. $ty = 0;
  49. break;
  50. case 'H02P4':
  51. $status = '监管';
  52. $ty = 0;
  53. break;
  54. case 'H02P5':
  55. $status = '启动';
  56. $ty = 1;
  57. break;
  58. case 'H02P6':
  59. $status = '反馈';
  60. $ty = 1;
  61. break;
  62. case 'H02P7':
  63. $status = '延时';
  64. $ty = 0;
  65. break;
  66. case 'H02P8':
  67. $status = '电源故障';
  68. $ty = 2;
  69. break;
  70. case 'U24P0':
  71. $status = '复位';
  72. $ty = 0;
  73. break;
  74. case 'U24P1':
  75. $status = '消音';
  76. $ty = 0;
  77. break;
  78. case 'U24P2':
  79. $status = '手动报警';
  80. $ty = 1;
  81. break;
  82. case 'U24P3':
  83. $status = '警情消除';
  84. $ty = 0;
  85. break;
  86. case 'U24P4':
  87. $status = '自检';
  88. $ty = 0;
  89. break;
  90. case 'U24P5':
  91. $status = '查岗应答';
  92. $ty = 0;
  93. break;
  94. case 'U24P6':
  95. $status = '测试';
  96. $ty = 0;
  97. break;
  98. case 'U21P0':
  99. $status = '正常';
  100. $ty = 0;
  101. break;
  102. case 'U21P3':
  103. $status = '主电故障';
  104. $ty = 2;
  105. break;
  106. case 'U21P4':
  107. $status = '备电故障';
  108. $ty = 2;
  109. break;
  110. case 'U21P5':
  111. $status = '监控';
  112. $ty = 0;
  113. break;
  114. case 'U21P6':
  115. $status = '接线';
  116. $ty = 0;
  117. break;
  118. default:
  119. $status = '其他';
  120. $ty = 0;
  121. // $this->xxxx();
  122. break;
  123. }
  124. $data = 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 ='" . $device_code . "'");
  125. $union_sql = M()->query("select phone from sp_owner_phone WHERE owner_code='" . $data[0]['company'] . "' AND data2 like '%" . $ty . "%' union select phone from sp_owner_phone WHERE owner_code in (select other_code from sp_owner_fujin where owner_code='" . $data[0]['company'] . "') AND data2 like '%" . $ty . "%'");
  126. $openids = $this->array_column1($union_sql, "phone");
  127. if (empty($openids)) {
  128. echo 'phone is null';
  129. exit;
  130. }
  131. $op = M()->query("SELECT openid FROM sp_wx_customuser WHERE type='wx' and idphone in($openids)");
  132. $status11 = M()->query("SELECT statustime FROM sp_devices_status where deviceid='" . $device_code . "'");
  133. $access_token = GetAccess_Token1();
  134. //first.DATA
  135. $address = '警报地址:' . $data[0]['owner_address'] . $data[0]['unitinfo'];
  136. //keyword2.DATA
  137. $type = $status;
  138. //keyword3.DATA
  139. if (empty($time)) {
  140. $time = $status11[0]['statustime'];
  141. }
  142. //remark.DATA
  143. if (empty($remarks)) {
  144. $remarks = '设备名称:' . $data[0]['owner_name'];
  145. }
  146. $url = "https://iot.usky.cn/jdxf/wxapp2.php/Home/Fireinfo/index/type/1/id/" . $insert_id;
  147. foreach ($op as $o) {
  148. if (!empty($o['openid'])) {
  149. $R = $this->SendDeviceAlarm($access_token, $o['openid'], $address, $device_code, $type, $time, $remarks, $url);
  150. $filename_log = "/var/www/html/jdxf/log/fire_t_log" . date("Y-m-d") . ".log";
  151. $this->printing_log($R, $filename_log);
  152. print_r($R);
  153. }
  154. }
  155. }
  156. }