From 69ac19b7cc7e82f5d698f3759384f3f1794aedf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 29 Jan 2023 15:38:17 +0800 Subject: [PATCH] 1 --- business/jxutils/ddmsg/ddmsg.go | 12 ++++- .../enterprise_msg/enterprise_send_msg.go | 44 ++++++++++++++++++- business/jxutils/msg/msg.go | 8 +++- 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/business/jxutils/ddmsg/ddmsg.go b/business/jxutils/ddmsg/ddmsg.go index 258f80d94..a4d60e0d5 100644 --- a/business/jxutils/ddmsg/ddmsg.go +++ b/business/jxutils/ddmsg/ddmsg.go @@ -2,6 +2,8 @@ package ddmsg import ( "fmt" + "git.rosy.net.cn/jx-callback/business/jxutils/enterprise_msg" + "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/utils/errlist" @@ -32,7 +34,14 @@ func SendUserMessage(msgType, userID, title, content string) (err error) { if len(content) > dingdingapi.MaxWorkContentLen { content = content[:dingdingapi.MaxWorkContentLen-4] + "..." } - err = SendDDUserMessage(msgType, auth.AuthID, title, content) + if err := SendDDUserMessage(msgType, auth.AuthID, title, content); err != nil { + userInfo, err := dao.GetUserByID(dao.GetDB(), "user_id", auth.UserID) + if err != nil || userInfo == nil { + globals.SugarLogger.Errorf("get user err %v", err) + continue + } + enterprise_msg.SendUserMessage(*userInfo.Mobile, title, "", content) + } break } } @@ -43,6 +52,7 @@ func SendUserMessage(msgType, userID, title, content string) (err error) { if err != nil { globals.SugarLogger.Infof("SendUserMessage userID:%s, title:%s, content:%s failed with error:%v", userID, title, content, err) } + return err } diff --git a/business/jxutils/enterprise_msg/enterprise_send_msg.go b/business/jxutils/enterprise_msg/enterprise_send_msg.go index bf37ab428..f6468ca2d 100644 --- a/business/jxutils/enterprise_msg/enterprise_send_msg.go +++ b/business/jxutils/enterprise_msg/enterprise_send_msg.go @@ -5,6 +5,7 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) +// SendUserMessage 发送文本卡片 func SendUserMessage(phone, title, description, url string) error { // 根据电话号码获取用户touserId enterpriseUserId, err := api.EnterpriseChatMin.GetUserIdByMobile(phone) @@ -15,7 +16,7 @@ func SendUserMessage(phone, title, description, url string) error { msg := &enterprise.EnterpriseSendMsgReq{ Touser: enterpriseUserId, Msgtype: enterprise.MsgTypeTextCard, - Agentid: 1000005, + Agentid: enterprise.EnterpriseAgentid, Textcard: enterprise.TextCardObject{ Title: title, Description: description, @@ -25,3 +26,44 @@ func SendUserMessage(phone, title, description, url string) error { } return api.EnterpriseChatMin.SendMsgToUser(msg) } + +// SendUserMessageText 发送文本消息 +func SendUserMessageText() { + +} + +func SendEnterpriseUserMessage(msgType, phone, title, content string) (err error) { + // 根据电话号码获取用户touserId + enterpriseUserId, err := api.EnterpriseChatMin.GetUserIdByMobile(phone) + if err != nil { + return err + } + if msgType == enterprise.MsgTypeText { + err = api.EnterpriseChatMin.SendMsgToUserTypeText(&enterprise.SendTextMsgReq{ + Touser: enterpriseUserId, + Msgtype: enterprise.MsgTypeText, + Agentid: enterprise.EnterpriseAgentid, + Text: struct { + Content string `json:"content"` + }{Content: title + ":" + content}, + Safe: 0, + EnableIdTrans: 0, + EnableDuplicateCheck: 0, + DuplicateCheckInterval: 0, + }) + } else if msgType == enterprise.MsgTypeMarkdown { + err = api.EnterpriseChatMin.SendMsgToUserMarkdown(&enterprise.SendMarkdownMsgReq{ + Touser: enterpriseUserId, + Msgtype: enterprise.MsgTypeMarkdown, + Agentid: enterprise.EnterpriseAgentid, + Markdown: struct { + Content string `json:"content"` + }{Content: title + ":" + content}, + Safe: 0, + EnableIdTrans: 0, + EnableDuplicateCheck: 0, + DuplicateCheckInterval: 0, + }) + } + return err +} diff --git a/business/jxutils/msg/msg.go b/business/jxutils/msg/msg.go index 6b961680d..937f168ee 100644 --- a/business/jxutils/msg/msg.go +++ b/business/jxutils/msg/msg.go @@ -2,6 +2,7 @@ package msg import ( "fmt" + "git.rosy.net.cn/jx-callback/business/jxutils/enterprise_msg" "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" @@ -30,7 +31,12 @@ func SendUserMessage(msgType string, user *model.User, title, content string) (e if title != "" { content = title + "\n" + content } - err = ddmsg.SendDDUserMessage(msgType, auth.AuthID, title, content) + if err2 := ddmsg.SendDDUserMessage(msgType, auth.AuthID, title, content); err2 != nil { + if msgType == "txt" { + msgType = "text" + } + err = enterprise_msg.SendEnterpriseUserMessage(msgType, auth.AuthID, title, content) + } } else if auth.Type == weixin.AuthTypeMP && msgType != dingdingapi.MsgTypeMarkdown { err = weixinmsg.NotifyStoreStatusChanged(auth.AuthID, title, content) }