12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package NatsServer
- import (
- "Cold_mqtt/lib"
- "Cold_mqtt/logs"
- "Cold_mqtt/models/Account"
- "Cold_mqtt/models/Warning"
- "github.com/vmihailenco/msgpack/v5"
- "strconv"
- "strings"
- "time"
- )
- func Ali_Message(Company_Charging_r Account.Company, Warning_r *Warning.Warning, PhoneNumbers string, TemplateCode string, TemplateParam string) {
- logs.Println("Nats =>", lib.FuncName(), PhoneNumbers, TemplateCode, TemplateParam)
- type Ali_Message struct {
- PhoneNumbers string
- TemplateCode string
- TemplateParam string
- }
- b, err := msgpack.Marshal(&Ali_Message{
- PhoneNumbers: PhoneNumbers,
- TemplateCode: TemplateCode,
- TemplateParam: TemplateParam,
- })
- if err != nil {
- logs.Println("Ali_Message", err)
- return
- }
- cun_x := 0
- Data := ""
- breakHere:
- cun_x++
- // 控制发送
- if cun_x > 3 {
- // 添加
- Warning_r_e := Warning.Warning{}
- Warning_r_e.T_pid = 0
- Warning_r_e.T_tp = 1014
- Warning_r_e.T_D_name = "短信服务通讯"
- Warning_r_e.T_Remark = "短信服务通讯 异常!"
- Warning_r_e.T_Log = Data
- Warning_r_e.T_State = 3
- Warning_r_e.T_Ut = time.Now()
- //WarningNotice.WarningToAdminId(&Warning_r_e, []int{1}) // 发送给 绑定公司管理员
- // 添加报警
- Warning.Add_Warning(Warning_r_e)
- logs.PrintlnError("短信通知", "短信服务通讯 异常!")
- // 达到数量上线跳出
- return
- }
- // 请求-响应, 向 test3 发布一个 `help me` 请求数据,设置超时间3秒,如果有多个响应,只接收第一个收到的消息
- msg, err := lib.Nats.Request("Ali_Message", b, 3*time.Second)
- if err != nil {
- logs.PrintlnError("Ali_Message %s", err.Error())
- Warning.Add_Warning_Log(Warning_r, "---->短信服务通讯 异常!Nats Err!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
- Data = "短信服务通讯 异常!Nats Err!"
- time.Sleep(time.Second * time.Duration(cun_x))
- goto breakHere // 跳转到标签
- }
- Data = string(msg.Data)
- logs.Println("Ali_Message => : %s\n", Data)
- if !strings.Contains(Data, "成功") {
- Warning.Add_Warning_Log(Warning_r, "---->短信服务发送失败!["+Data+"]!尝试发送 "+strconv.Itoa(cun_x)+" 次\n")
- time.Sleep(time.Second * time.Duration(cun_x))
- goto breakHere // 跳转到标签
- }
- Warning.Add_Warning_Log(Warning_r, "->"+Data+"\n")
- // ============== 计费 ==============
- Warning.Add_WarningSand(Warning.WarningSand{
- T_pid: Company_Charging_r.Id,
- T_Spid: Warning_r.T_pid,
- T_tp: Warning_r.T_tp,
- T_Notice: PhoneNumbers,
- T_Ntype: 1,
- T_Remark: "WID:" + strconv.FormatInt(Warning_r.Id, 10) + "\n" +
- "类型:" + Warning.Read_WarningType_Get(Warning_r.T_tp) + "\n" +
- "SN:" + Warning_r.T_sn + "\n" +
- "主机:" + Warning_r.T_D_name + "\n" +
- "设备:" + Warning_r.T_DS_name + "\n" +
- "备注:" + Warning_r.T_Remark + "\n" +
- "通知方式:短信通知\n" +
- "通知对象:" + PhoneNumbers,
- })
- }
|