package NatsServer import ( "Cold_DeductionNotice/lib" "Cold_DeductionNotice/logs" "Cold_DeductionNotice/models/Warning" "strconv" "strings" "time" ) // 发送 DEMO //NatsServer.Hw_VoiceNotice([]byte(fmt.Sprintf(`{"displayNbr":"+8675536362854","calleeNbr":"%s","playInfoList":[{"templateId":"f70c83b230dd4794860a383c38abdefa","templateParas":["%s"]}],"userData":"testUserData"}`,"18777951277","超过上线报警") ) ) // 华为云 电话通知报警 func Hw_VoiceNotice(Warning_r *Warning.Warning,PhoneNumbers string,b []byte) { logs.Println(" => Nats", lib.FuncName(), PhoneNumbers, string(b)) 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 = 1012 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("Hw_VoiceNotice", b, 3*time.Second) if err != nil { logs.PrintlnError("Hw_VoiceNotice %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("Hw_VoiceNotice => : %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: Warning_r.T_pid, T_tp: Warning_r.T_tp, T_Notice: PhoneNumbers, T_Ntype: 2, 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, }) return }