- GetStatusDuplicatedCount

- 提前判断消息是否重复,防止一些事件在判断是否重复前已经超时
This commit is contained in:
gazebo
2019-05-27 11:34:02 +08:00
parent b509e76b6e
commit e81f195032
5 changed files with 26 additions and 3 deletions

View File

@@ -298,11 +298,14 @@ func (c *PurchaseHandler) onOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.
if c.isAfsMsg(msg) {
retVal = c.OnAfsOrderMsg(msg)
} else {
status := c.callbackMsg2Status(msg)
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
return nil
}
if ebaiapi.CmdOrderCreate == msg.Cmd {
retVal = c.onOrderNew(msg)
} else {
var err error
status := c.callbackMsg2Status(msg)
if status != nil {
if status.Status == model.OrderStatusAdjust {
var order *model.GoodsOrder

View File

@@ -42,6 +42,10 @@ func (c *PurchaseHandler) OnOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
}
func (c *PurchaseHandler) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
status := c.callbackMsg2Status(msg)
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
return nil
}
if msg.MsgURL == jdapi.CallbackMsgOrderAccounting {
retVal = c.OnFinancialMsg(msg)
} else if msg.MsgURL == jdapi.CallbackMsgAfterSaleBillStatus {
@@ -53,7 +57,6 @@ func (c *PurchaseHandler) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
} else if jdapi.OrderStatusAdjust == msg.StatusID {
retVal = c.onOrderAdjust(msg)
} else {
status := c.callbackMsg2Status(msg)
if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment {
utils.CallFuncAsync(func() {
c.onOrderComment2(msg)

View File

@@ -184,6 +184,10 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
if c.isAfsMsg(msg) {
response = c.OnAfsOrderMsg(msg)
} else {
status := c.callbackMsg2Status(msg)
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
return nil
}
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg))
if err = err2; err == nil {
@@ -199,7 +203,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
}
}
} else {
if status := c.callbackMsg2Status(msg); status != nil {
if status != nil {
if status.Status == model.OrderStatusAdjust {
var order *model.GoodsOrder
if order, err = c.GetOrder(GetOrderIDFromMsg(msg)); err == nil {