1
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -58,5 +58,5 @@ var (
|
||||
)
|
||||
|
||||
const (
|
||||
ExpireTimeDay = 6 * time.Hour //redis过期时间
|
||||
ExpireTimeDay = 12 * time.Hour //redis过期时间
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user