This commit is contained in:
richboo111
2024-01-18 09:11:11 +08:00
parent bf78d9c877
commit 5ad08aeb2d
2 changed files with 17 additions and 11 deletions

View File

@@ -222,10 +222,8 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
if PushContentReq.OrderID != 0 {
userList.OrderID = utils.Int2Str(PushContentReq.OrderID)
}
//todo 增加美团自动回复
}
if vendorID == VendorIDELM {
var ElmData = ebaiapi.ImMessageSend{}
err = json.Unmarshal(msg, &ElmData)
@@ -255,6 +253,10 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
if err = PushMsgByCid(vendorStoreID, vendorID, string(msg)); err != nil {
errList.AddErr(fmt.Errorf("向商家cid推送新消息错误%v", err))
}
//4 客服自动回复
if err = CheckAndReply(jxMsg, elmAppID); err != nil {
errList.AddErr(fmt.Errorf("客服自动回复出错:%v", err))
}
if errList.GetErrListAsOne() != nil {
return fmt.Errorf("ReadMsgFromVendor:%v", errList.GetErrListAsOne())
@@ -521,17 +523,19 @@ type AutoReply struct {
}
// CheckAndReply 判断并回复
func CheckAndReply(req *JXMsg, vendorOrgCode string) (err error) {
func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
flag := false
if req.SendType == SendTypeMt {
mt := req.MsgContent.(mtwmapi.PushContentReq)
key := utils.Int2Str(mt.AppID) + ":" + utils.Int2Str(mt.OpenUserID) + ":autoReply"
//1 检测是否已有回复消息
if n, err := rdb.Exists(key); n > 0 && err == nil {
str := rdb.Get(key).(string)
v := AutoReply{}
if err = json.Unmarshal([]byte(str), &v); err == nil {
flag = v.IsApply
str := rdb.LRange(key)
for i := 0; i < len(str); i++ {
v := AutoReply{}
if err = json.Unmarshal([]byte(str[i]), &v); err == nil {
flag = v.IsApply
}
}
}
@@ -550,14 +554,16 @@ func CheckAndReply(req *JXMsg, vendorOrgCode string) (err error) {
temp.MsgID = RandTimeNumber()
dataStr, _ := json.Marshal(temp)
if _, err = partner.CurAPIManager.GetAPI(model.VendorIDMTWM, vendorOrgCode).(*mtwmapi.API).MsgSend(string(dataStr)); err != nil {
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)
}
//记录自动回复状态
data, _ := json.Marshal(apply)
if err := rdb.RPush(key, string(data)); err != nil {
err := rdb.RPush(key, string(data))
ok, err := rdb.ExpireResult(key, ExpireTimeDay)
if err != nil || !ok {
globals.SugarLogger.Debugf("CheckAndReply apply err:%v", err)
return err
}

View File

@@ -58,5 +58,5 @@ var (
)
const (
ExpireTimeDay = 6 * time.Hour //redis过期时间
ExpireTimeDay = 12 * time.Hour //redis过期时间
)