This commit is contained in:
邹宗楠
2024-08-20 09:54:09 +08:00
parent c01c7dc3ff
commit f67224e7b6

View File

@@ -851,6 +851,7 @@ func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
//}
// GetIfReply 检查是否已回复
// 美团只需要第一条消息在一分钟之内回复就达标了,后面不需要自动回复了
func GetIfReply(key string, keyDetail UserRelInfo) (flag bool) {
flag = false
if n, err := rdb.Exists(key); n > 0 && err == nil {
@@ -877,26 +878,48 @@ func GetIfReply(key string, keyDetail UserRelInfo) (flag bool) {
if err == nil && detail != nil {
tKey := keyDetail.AppID + ":" + keyDetail.VendorStoreID + ":" + keyDetail.VendorID + ":" + keyDetail.UserID
if detail[tKey] != nil {
tDetail := detail[tKey][len(detail[tKey])-1]
b := tDetail.(string)
lastMsg := &JXMsg{}
err = json.Unmarshal([]byte(b), lastMsg)
if err != nil || lastMsg.SendType == SendTypeJx {
return false
}
switch keyDetail.VendorID {
case VendorIDMTStr:
mt := lastMsg.MsgContent.(map[string]interface{})
if mt["msg_source"].(float64) != mtwmapi.MsgSourceUser {
for _, v := range detail[tKey] {
b := v.(string)
lastMsg := &JXMsg{}
err = json.Unmarshal([]byte(b), lastMsg)
if err != nil {
return false
}
case VendorIDELMStr:
elm := lastMsg.MsgContent.(map[string]interface{})
s := elm["payLoad"].(map[string]interface{})["senderId"].(string)
if s == "" || s[:2] != ebaiapi.SenderTypeUser {
return false
switch keyDetail.VendorID {
case VendorIDMTStr:
mt := lastMsg.MsgContent.(map[string]interface{})
if mt["msg_source"].(float64) == mtwmapi.MsgSourceStore {
return true
}
case VendorIDELMStr:
elm := lastMsg.MsgContent.(map[string]interface{})
s := elm["payLoad"].(map[string]interface{})["senderId"].(string)
if s == "" || s[:2] == ebaiapi.SenderTypeBusiness || s[:2] == ebaiapi.SenderTypeChainedAccountLogin || s[:2] == ebaiapi.SenderTypeSystem {
return true
}
}
}
//tDetail := detail[tKey][len(detail[tKey])-1]
//b := tDetail.(string)
//lastMsg := &JXMsg{}
//err = json.Unmarshal([]byte(b), lastMsg)
//if err != nil || lastMsg.SendType == SendTypeJx {
// return false
//}
//switch keyDetail.VendorID {
//case VendorIDMTStr:
// mt := lastMsg.MsgContent.(map[string]interface{})
// if mt["msg_source"].(float64) != mtwmapi.MsgSourceUser {
// return false
// }
//case VendorIDELMStr:
// elm := lastMsg.MsgContent.(map[string]interface{})
// s := elm["payLoad"].(map[string]interface{})["senderId"].(string)
// if s == "" || s[:2] != ebaiapi.SenderTypeUser {
// return false
// }
//}
}
}
return flag