diff --git a/business/partner/im/im.go b/business/partner/im/im.go index 952f3a6ec..068a0eee3 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: temp, + } + userList := &UserMessageList{ + VendorID: VendorIDMT, + UserID: utils.Int2Str(mt.OpenUserID), + LatestMsg: mt.MsgContent, + LatestTime: mt.Cts, + OrderID: "", + } + //1 存储详细聊天记录list + if err = SetMessageDetail(jxMsg, VendorIDMT, elmAppID); err != nil { + errList.AddErr(fmt.Errorf("存储详细聊天记录错误:%v", err)) + } + //2 存储展示列表时单条数据 + if err = SetUserList(jxMsg, userList, VendorIDMT, elmAppID); err != nil { + errList.AddErr(fmt.Errorf("存储STU聊天记录错误:%v", err)) + } } //记录自动回复状态 @@ -565,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 } 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" //饿了么用户发送方标识符