From de05bff5a385d58cb9d0953b402a7c721f714239 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 19 Jan 2024 16:54:04 +0800 Subject: [PATCH 1/2] 1 --- business/partner/im/im.go | 31 ++++++++++++++++++++++++++++--- business/partner/im/im_model.go | 6 ++++-- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/business/partner/im/im.go b/business/partner/im/im.go index 952f3a6ec..a2fb9ebe6 100644 --- a/business/partner/im/im.go +++ b/business/partner/im/im.go @@ -172,11 +172,11 @@ func ReadMsgFromClient(vendorID int, elmAppID string, msg interface{}) error { } } - //1 存储详细聊天记录list + //1 存储展示列表时单条数据 if err = SetMessageDetail(jxMsg, vendorID, elmAppID); err != nil { errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err)) } - //2 存储展示列表时单条数据 + //2 存储详细聊天记录list if err = SetUserList(jxMsg, userList, vendorID, elmAppID); err != nil { errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err)) } @@ -482,6 +482,8 @@ func DecryptIm(appID int, msg string) (string, error) { return "", err } +//加密操作 + // FilterIm 过滤操作 func FilterIm(appID int, msg string) bool { var check = "[自动回复]" @@ -511,7 +513,10 @@ type AutoReply struct { // CheckAndReply 判断并回复 func CheckAndReply(req *JXMsg, elmAppID string) (err error) { - flag := false + var ( + flag = false + errList errlist.ErrList + ) if req.SendType == SendTypeMt { mt := req.MsgContent.(mtwmapi.PushContentReq) key := utils.Int2Str(mt.AppID) + ":" + utils.Int2Str(mt.OpenUserID) + ":autoReply" @@ -549,6 +554,26 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { if _, err = partner.CurAPIManager.GetAPI(model.VendorIDMTWM, utils.Int2Str(mt.AppID)).(*mtwmapi.API).MsgSend(string(dataStr)); err != nil { apply.IsApply = false globals.SugarLogger.Debugf("CheckAndReply mtSend err:%v", err) + } else { + jxMsg := &JXMsg{ + SendType: SendTypeJx, + MsgContent: dataStr, + } + userList := &UserMessageList{ + VendorID: VendorIDJX, + UserID: utils.Int2Str(mt.OpenUserID), + LatestMsg: mt.MsgContent, + LatestTime: mt.Cts, + OrderID: "", + } + //1 存储详细聊天记录list + if err = SetMessageDetail(jxMsg, VendorIDJX, elmAppID); err != nil { + errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err)) + } + //2 存储展示列表时单条数据 + if err = SetUserList(jxMsg, userList, VendorIDJX, elmAppID); err != nil { + errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err)) + } } //记录自动回复状态 diff --git a/business/partner/im/im_model.go b/business/partner/im/im_model.go index 94f8452b8..f46f89a66 100644 --- a/business/partner/im/im_model.go +++ b/business/partner/im/im_model.go @@ -49,8 +49,10 @@ type UserRelInfo struct { var ( rdb = api.Cacher - VendorIDMT = 1 //im美团 - VendorIDELM = 3 //im饿了么 + VendorIDMT = 1 //im美团 + VendorIDELM = 3 //im饿了么 + VendorIDJX = 3 //im京西 + SendTypeJx = "jx" //京西客户端发送方标识 SendTypeMt = "mt" //美团用户发送方标识符 SendTypeElm = "elm" //饿了么用户发送方标识符 From 7b9a4fe7aed9580802ba6bc02218fe7c293f1599 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 19 Jan 2024 17:22:20 +0800 Subject: [PATCH 2/2] 1 --- business/partner/im/im.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/business/partner/im/im.go b/business/partner/im/im.go index a2fb9ebe6..068a0eee3 100644 --- a/business/partner/im/im.go +++ b/business/partner/im/im.go @@ -557,21 +557,21 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { } else { jxMsg := &JXMsg{ SendType: SendTypeJx, - MsgContent: dataStr, + MsgContent: temp, } userList := &UserMessageList{ - VendorID: VendorIDJX, + VendorID: VendorIDMT, UserID: utils.Int2Str(mt.OpenUserID), LatestMsg: mt.MsgContent, LatestTime: mt.Cts, OrderID: "", } //1 存储详细聊天记录list - if err = SetMessageDetail(jxMsg, VendorIDJX, elmAppID); err != nil { + if err = SetMessageDetail(jxMsg, VendorIDMT, elmAppID); err != nil { errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err)) } //2 存储展示列表时单条数据 - if err = SetUserList(jxMsg, userList, VendorIDJX, elmAppID); err != nil { + if err = SetUserList(jxMsg, userList, VendorIDMT, elmAppID); err != nil { errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err)) } } @@ -590,6 +590,9 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) { //if req.SendType == SendTypeElm { // //} + if errList.GetErrListAsOne() != nil { + return fmt.Errorf("CheckAndReply err=%v", errList.GetErrListAsOne()) + } return nil }