WarningNotice.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. package WarningNotice
  2. import (
  3. "Cold_DeductionNotice/Nats/NatsServer"
  4. "Cold_DeductionNotice/lib"
  5. "Cold_DeductionNotice/logs"
  6. "Cold_DeductionNotice/models/Account"
  7. "Cold_DeductionNotice/models/Warning"
  8. "encoding/json"
  9. "strconv"
  10. "strings"
  11. )
  12. // 报警发送给用户表
  13. func WarningToUser(Warning_r *Warning.Warning, T_pid int) {
  14. logs.Println("==>WarningToUserId ", "Msid", Warning_r.T_Msid, " T_pid:", T_pid)
  15. Warning_r.T_pid = T_pid
  16. var T_Admin_list []int
  17. Tpid := Account.Read_Admin_Tpid_List(Warning_r.T_pid)
  18. for _, v := range Tpid {
  19. T_Admin_list = append(T_Admin_list, v.Id)
  20. }
  21. if len(T_Admin_list) == 0 {
  22. Warning.Add_Warning_Log(Warning_r, "!!!没有要通知的用户!!!\n")
  23. return
  24. }
  25. T_Admin_list_str := ""
  26. for _, T_Admin_list_r := range T_Admin_list {
  27. T_Admin_list_str += strconv.Itoa(T_Admin_list_r) + "|"
  28. }
  29. Warning.Add_Warning_Log(Warning_r, "通知 用户ID列表 -> ["+T_Admin_list_str+"]\n")
  30. // 通知策略
  31. for _, T_Admin_list_r := range T_Admin_list {
  32. logs.Println("==> WarningToAdminId T_Admin_id:", T_Admin_list_r)
  33. Admin_r, err := Account.Read_Admin_Byid(T_Admin_list_r)
  34. if err != nil {
  35. logs.Println("==> WarningToAdminId 没找到 T_Admin_id:", err)
  36. Warning.Add_Warning_Log(Warning_r, "没找到 T_Admin_id:-> "+strconv.Itoa(T_Admin_list_r)+"\n")
  37. continue
  38. }
  39. Warning.Add_Warning_Log(Warning_r, "通知-> ["+strconv.Itoa(Admin_r.Id)+"|"+Admin_r.T_name+"]\n")
  40. // 累积报警记录数
  41. key_Warning_num := "A" + strconv.Itoa(Admin_r.Id) + "|" + Warning_r.T_sn + "|" + strconv.Itoa(Warning_r.T_tp) // 用户+报警类型
  42. if !Warning.Redis_WarningToAdmin_Num(key_Warning_num) {
  43. Warning.Add_Warning_Log(Warning_r, "-> "+Admin_r.T_name+"["+strconv.Itoa(Admin_r.Id)+"]"+"相同报警(30分钟内),跳过该用户通知\n")
  44. continue
  45. }
  46. // 获取公司名称
  47. _, Company_r := Account.Read_Company_id(Warning_r.T_pid)
  48. if Company_r.Id == 0 {
  49. Company_r.T_name = "冷链系统"
  50. }
  51. // 微信通知
  52. if len(Admin_r.T_wx) > 3 {
  53. data_json_t := Wx_d_struct{
  54. Corporate: Wx_struct{Value: lib.Limit_len(Company_r.T_name, 10)},
  55. Type: Wx_struct{Value: Warning.Read_WarningType_Get(Warning_r.T_tp)},
  56. Name: Wx_struct{Value: lib.Limit_len(Warning_r.T_D_name, 20)},
  57. Time: Wx_struct{Value: Warning_r.T_Ut.Format("2006-01-02 15:04:05")},
  58. Remark: Wx_struct{Value: lib.Limit_len(Warning_r.T_Remark, 20)},
  59. }
  60. data_json_str, _ := json.Marshal(data_json_t)
  61. logs.Println("==> WarningToAdminId 通知内容:", string(data_json_str))
  62. // 用户下 多个微信
  63. arr_b := strings.Split(Admin_r.T_wx, "|")
  64. for _, v_b := range arr_b {
  65. v_b_l := strings.Split(v_b, "/")
  66. if len(v_b_l) != 2 {
  67. logs.Println("==> WarningToAdminId 推送 T_Notice_wx:", v_b, " len(v_b_l) != 2")
  68. continue
  69. }
  70. if len(v_b_l[0]) == 0 {
  71. logs.Println("==> WarningToAdminId 推送 T_Notice_wx:", v_b, " len(v_b_l[0]) == 0")
  72. continue
  73. }
  74. NatsServer.Wx_MessageTemplate(Warning_r, v_b_l[0], "gnpERD6ilOQK6zvp1W_Pmae-to4wEqXmHrM0poN7IoY", string(data_json_str))
  75. }
  76. //Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
  77. }
  78. // 短信通知
  79. //if len(Admin_r.T_phone) > 3 {
  80. // reqdata_Message := ""
  81. // NatsServer.Ali_Message(Warning_r, Admin_r.T_phone, "SMS_232170337", reqdata_Message)
  82. // Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
  83. //}
  84. }
  85. defer func() {
  86. if Warning_r.Id > 0 {
  87. Warning.Update_Warning(*Warning_r, "T_Log")
  88. }
  89. }()
  90. }
  91. // 报警发送给用户表
  92. //func WarningToUser(Warning_r *Warning.Warning, T_pid int) {
  93. // logs.Println("==>WarningToUserId ", "Msid", Warning_r.T_Msid, " T_pid:", T_pid)
  94. //
  95. // var T_Admin_list []int
  96. //
  97. // Tpid := Account.Read_Admin_Tpid_List(Warning_r.T_pid)
  98. // for _, v := range Tpid {
  99. // T_Admin_list = append(T_Admin_list, v.Id)
  100. // }
  101. //
  102. // if len(T_Admin_list) == 0 {
  103. // Warning.Add_Warning_Log(Warning_r, "!!!没有要通知的用户!!!\n")
  104. // return
  105. // }
  106. //
  107. // T_Admin_list_str := ""
  108. // for _, T_Admin_list_r := range T_Admin_list {
  109. // T_Admin_list_str += strconv.Itoa(T_Admin_list_r) + "|"
  110. // }
  111. // Warning.Add_Warning_Log(Warning_r, "通知 用户ID列表 -> ["+T_Admin_list_str+"]\n")
  112. // // 通知策略
  113. // for _, T_Admin_list_r := range T_Admin_list {
  114. //
  115. // logs.Println("T_Admin_id:", T_Admin_list_r)
  116. // Admin_r, err := Account.Read_Admin_Byid(T_Admin_list_r)
  117. // if err != nil {
  118. // logs.Println("没找到 T_Admin_id:", err)
  119. // Warning.Add_Warning_Log(Warning_r, "没找到 T_Admin_id:-> "+strconv.Itoa(T_Admin_list_r)+"\n")
  120. // continue
  121. // }
  122. // Warning.Add_Warning_Log(Warning_r, "通知-> ["+strconv.Itoa(Admin_r.Id)+"|"+Admin_r.T_name+"]\n")
  123. // // 累积报警记录数
  124. // key_Warning_num := "A" + strconv.Itoa(Admin_r.Id) + "|" + strconv.Itoa(Warning_r.T_tp) // 用户+报警类型
  125. // if !Warning.Redis_WarningToAdmin_Num(key_Warning_num) {
  126. // Warning.Add_Warning_Log(Warning_r, "-> "+Admin_r.T_name+"["+strconv.Itoa(Admin_r.Id)+"]"+"相同报警(30分钟内),跳过该用户通知\n")
  127. // continue
  128. // }
  129. // // 获取公司名称
  130. // _, Company_r := Account.Read_Company_id(Warning_r.T_pid)
  131. // if Company_r.Id == 0 {
  132. // Company_r.T_name = "冷链系统"
  133. // }
  134. // // 微信通知
  135. // if len(Admin_r.T_wx) > 3 {
  136. //
  137. // data_json_t := Wx_d_struct{
  138. // Corporate: Wx_struct{Value: lib.Limit_len(Company_r.T_name, 10)},
  139. // Type: Wx_struct{Value: Warning.Read_WarningType_Get(Warning_r.T_tp)},
  140. // Name: Wx_struct{Value: lib.Limit_len(Warning_r.T_D_name, 20)},
  141. // Time: Wx_struct{Value: Warning_r.T_Ut.Format("2006-01-02 15:04:05")},
  142. // Remark: Wx_struct{Value: lib.Limit_len(Warning_r.T_Remark, 20)},
  143. // }
  144. // data_json_str, _ := json.Marshal(data_json_t)
  145. // logs.Println("通知内容:", string(data_json_str))
  146. //
  147. // // 用户下 多个微信
  148. // arr_b := strings.Split(Admin_r.T_wx, "|")
  149. // for _, v_b := range arr_b {
  150. // v_b_l := strings.Split(v_b, "/")
  151. // if len(v_b_l) != 2 {
  152. // logs.Println("推送 T_Notice_wx:", v_b, " len(v_b_l) != 2")
  153. // continue
  154. // }
  155. // if len(v_b_l[0]) == 0 {
  156. // logs.Println("推送 T_Notice_wx:", v_b, " len(v_b_l[0]) == 0")
  157. // continue
  158. // }
  159. // NatsServer.Wx_MessageTemplate(Warning_r, v_b_l[0], "gnpERD6ilOQK6zvp1W_Pmae-to4wEqXmHrM0poN7IoY", string(data_json_str))
  160. //
  161. // }
  162. //
  163. // //Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
  164. // }
  165. //
  166. // // 短信通知
  167. // //if len(Admin_r.T_phone) > 3 {
  168. // // reqdata_Message := ""
  169. // // NatsServer.Ali_Message(Warning_r, Admin_r.T_phone, "SMS_232170337", reqdata_Message)
  170. // // Warning.Add_Warning_Log(Warning_r, "微信-> "+Admin_r.T_name+"\n")
  171. // //}
  172. //
  173. // }
  174. //
  175. // defer func() {
  176. // if Warning_r.Id > 0 {
  177. // Warning.Update_Warning(*Warning_r, "T_Log")
  178. // }
  179. // }()
  180. //
  181. //}
  182. //