Commit aaed198b by 朱继来

添加钉钉告警转发

parent 11c8777c
......@@ -3,7 +3,7 @@ package main
import (
"crm-server/configs"
"crm-server/internal/dao"
_"crm-server/internal/service"
"crm-server/internal/service"
"encoding/json"
"flag"
"fmt"
......@@ -58,14 +58,14 @@ func main() {
conn, err := amqp.Dial("amqp://"+configs.RABBITMQBOM+"/")
if err != nil {
logger.Info("Failed to connect to RabbitMQ ", err.Error())
//sendMsg("bom_crm队列任务,连接MQ失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,连接MQ失败,原因:"+err.Error(), "")
}
defer conn.Close()
ch, err := conn.Channel()
if err != nil {
logger.Info("Failed to open a channel ", err.Error())
//sendMsg("bom_crm队列任务,打开channel失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,打开channel失败,原因:"+err.Error(), "")
}
defer ch.Close()
......@@ -86,13 +86,13 @@ func main() {
)
if err != nil {
logger.Info("Failed to declare a queue ", err.Error())
//sendMsg("bom_crm队列任务,声明queue失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,声明queue失败,原因:"+err.Error(), "")
}
err = ch.QueueBind(q.Name, "bom_crm", "bom", false, nil)
if nil != err {
logger.Info("Failed to bind a queue and exchange ", err.Error())
//sendMsg("bom_crm队列任务,队列绑定失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,队列绑定失败,原因:"+err.Error(), "")
}
msgs, err := ch.Consume(
......@@ -106,7 +106,7 @@ func main() {
)
if err != nil {
logger.Info("Failed to register a consumer ", err.Error())
//sendMsg("bom_crm队列任务,注册消费者失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,注册消费者失败,原因:"+err.Error(), "")
}
forever := make(chan bool)
......@@ -115,7 +115,6 @@ func main() {
go func() {
for d := range msgs {
fmt.Println(string(d.Body))
//sendMsg("获取bom_crm队列:"+string(d.Body))
json.Unmarshal(d.Body, &bom_order)
consume(bom_order)
}
......@@ -132,13 +131,13 @@ func consume(bom BomOrder) {
if err != nil {
logger.Info("Failed to connect crm db ", err.Error())
//sendMsg("bom_crm队列任务,连接CRM数据库失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,连接CRM数据库失败,原因:"+err.Error(), "")
return
}
if crmUserId == 0 { // 不存在推送告警
logger.Info("没有找到crm用户,用户ID:" + strconv.Itoa(bom.UserId))
//sendMsg("bom_crm队列任务,用户ID("+strconv.Itoa(bom.UserId)+")CRM不存在")
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,用户ID("+strconv.Itoa(bom.UserId)+")CRM不存在", "")
return
}
......@@ -169,10 +168,10 @@ func consume(bom BomOrder) {
if err != nil {
logger.Info("Failed to insert into lie_bom_extend db ", err.Error())
//sendMsg("bom_crm队列任务,添加到lie_bom_extend表失败,原因:"+err.Error())
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,添加到lie_bom_extend表失败,原因:"+err.Error(), "")
return
}
logger.Info("已添加到lie_bom_extend,用户ID:" + strconv.Itoa(bom.UserId) + ",BOM-ID:"+ strconv.Itoa(bom.BomId))
//sendMsg("bom_crm队列任务,添加到lie_bom_extend表成功")
service.DingAlert(configs.Ding_crm_token, "bom_crm队列任务,已添加到lie_bom_extend表,用户ID:" + strconv.Itoa(bom.UserId) + ",BOM-ID:"+ strconv.Itoa(bom.BomId), "")
}
......@@ -5,6 +5,8 @@ import (
"crm-server/internal/common"
"encoding/json"
"fmt"
"github.com/ichunt2019/logger"
"io/ioutil"
"net/http"
"net/url"
"strconv"
......@@ -14,6 +16,7 @@ import (
const APIMD5STR string = "fh6y5t4rr351d2c3bryi"
const APIDOMAIN string = configs.Api_url+"/msg/sendMessageByAuto"
const ADMINTEL int64 = 17600091664
const DINGALERTURL string = configs.Api_url+"/msg/dingalert"
func AdminErr(err error) {
......@@ -74,3 +77,23 @@ func SendBomMsg(user_id int64 , client_account string){
}
}
func DingAlert(token string, text string, at string) []byte {
curr_time := time.Now().Unix()
resp, err := http.PostForm(DINGALERTURL, url.Values{
"token": {token},
"text": {text},
"at": {at},
"k1": {strconv.FormatInt(int64(curr_time), 10)},
"k2": {common.Md5(common.Md5(strconv.FormatInt(int64(curr_time), 10)) + APIMD5STR)},
})
defer resp.Body.Close()
if err != nil {
logger.Info(err.Error())
}
body, _ := ioutil.ReadAll(resp.Body) // 获取接口返回数据
return body
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment