1
This commit is contained in:
@@ -222,10 +222,8 @@ func ReadMsgFromVendor(vendorID int, elmAppID string, msg []byte) error {
|
|||||||
if PushContentReq.OrderID != 0 {
|
if PushContentReq.OrderID != 0 {
|
||||||
userList.OrderID = utils.Int2Str(PushContentReq.OrderID)
|
userList.OrderID = utils.Int2Str(PushContentReq.OrderID)
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo 增加美团自动回复
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if vendorID == VendorIDELM {
|
if vendorID == VendorIDELM {
|
||||||
var ElmData = ebaiapi.ImMessageSend{}
|
var ElmData = ebaiapi.ImMessageSend{}
|
||||||
err = json.Unmarshal(msg, &ElmData)
|
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 {
|
if err = PushMsgByCid(vendorStoreID, vendorID, string(msg)); err != nil {
|
||||||
errList.AddErr(fmt.Errorf("向商家cid推送新消息错误:%v", err))
|
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 {
|
if errList.GetErrListAsOne() != nil {
|
||||||
return fmt.Errorf("ReadMsgFromVendor:%v", errList.GetErrListAsOne())
|
return fmt.Errorf("ReadMsgFromVendor:%v", errList.GetErrListAsOne())
|
||||||
@@ -521,17 +523,19 @@ type AutoReply struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CheckAndReply 判断并回复
|
// CheckAndReply 判断并回复
|
||||||
func CheckAndReply(req *JXMsg, vendorOrgCode string) (err error) {
|
func CheckAndReply(req *JXMsg, elmAppID string) (err error) {
|
||||||
flag := false
|
flag := false
|
||||||
if req.SendType == SendTypeMt {
|
if req.SendType == SendTypeMt {
|
||||||
mt := req.MsgContent.(mtwmapi.PushContentReq)
|
mt := req.MsgContent.(mtwmapi.PushContentReq)
|
||||||
key := utils.Int2Str(mt.AppID) + ":" + utils.Int2Str(mt.OpenUserID) + ":autoReply"
|
key := utils.Int2Str(mt.AppID) + ":" + utils.Int2Str(mt.OpenUserID) + ":autoReply"
|
||||||
//1 检测是否已有回复消息
|
//1 检测是否已有回复消息
|
||||||
if n, err := rdb.Exists(key); n > 0 && err == nil {
|
if n, err := rdb.Exists(key); n > 0 && err == nil {
|
||||||
str := rdb.Get(key).(string)
|
str := rdb.LRange(key)
|
||||||
v := AutoReply{}
|
for i := 0; i < len(str); i++ {
|
||||||
if err = json.Unmarshal([]byte(str), &v); err == nil {
|
v := AutoReply{}
|
||||||
flag = v.IsApply
|
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()
|
temp.MsgID = RandTimeNumber()
|
||||||
|
|
||||||
dataStr, _ := json.Marshal(temp)
|
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
|
apply.IsApply = false
|
||||||
globals.SugarLogger.Debugf("CheckAndReply mtSend err:%v", err)
|
globals.SugarLogger.Debugf("CheckAndReply mtSend err:%v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
//记录自动回复状态
|
//记录自动回复状态
|
||||||
data, _ := json.Marshal(apply)
|
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)
|
globals.SugarLogger.Debugf("CheckAndReply apply err:%v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,5 +58,5 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ExpireTimeDay = 6 * time.Hour //redis过期时间
|
ExpireTimeDay = 12 * time.Hour //redis过期时间
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user