京东售后单消息全处理(可能有重复)

This commit is contained in:
gazebo
2020-01-20 13:48:20 +08:00
parent 1aa808aae5
commit 02e9e61295
3 changed files with 34 additions and 24 deletions

View File

@@ -46,6 +46,13 @@ var (
}
selfTakeCodeReg = regexp.MustCompile(`等待用户凭提货码(\d+)于`)
afsMsgMap = map[string]bool{
jdapi.CallbackMsgNewApplyAfterSaleBill: true,
jdapi.CallbackMsgUpdateApplyAfterSaleBill: true,
jdapi.CallbackMsgNewAfterSaleBill: true,
jdapi.CallbackMsgAfterSaleBillStatus: true,
}
)
func (c *PurchaseHandler) OnOrderMsg(vendorOrgCode string, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
@@ -72,32 +79,34 @@ func (c *PurchaseHandler) updateOrderFinancialInfo(a *jdapi.API, orderID string)
func (c *PurchaseHandler) onOrderMsg(vendorOrgCode string, msg *jdapi.CallbackOrderMsg) (retVal *jdapi.CallbackResponse) {
a := getAPI(vendorOrgCode)
status := c.callbackMsg2Status(msg)
if jdapi.StatusIDNewOrder == msg.StatusID {
status.Status = model.OrderStatusNew // 因为京东将事件32000与状态32000混用事件32000可能是新订单也可能是已接单统一当成新订单处理
}
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
return nil
}
if msg.MsgURL == jdapi.CallbackMsgOrderAccounting {
retVal = c.OnFinancialMsg(msg)
retVal = jdapi.Err2CallbackResponse(c.updateOrderFinancialInfo(a, msg.BillID), status.VendorStatus)
} else if msg.MsgURL == jdapi.CallbackMsgAfterSaleBillStatus {
if afsMsgMap[msg.MsgURL] {
retVal = c.OnAfsOrderMsg(a, msg)
} else {
// 新订单事件,与订单状态有点冲突
status := c.callbackMsg2Status(msg)
if jdapi.StatusIDNewOrder == msg.StatusID {
retVal = c.onOrderNew(a, msg, status)
} else if jdapi.OrderStatusAdjust == msg.StatusID {
retVal = c.onOrderAdjust(a, msg, status)
status.Status = model.OrderStatusNew // 因为京东将事件32000与状态32000混用事件32000可能是新订单也可能是已接单统一当成新订单处理
}
if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 {
return nil
}
if msg.MsgURL == jdapi.CallbackMsgOrderAccounting {
retVal = c.OnFinancialMsg(msg)
retVal = jdapi.Err2CallbackResponse(c.updateOrderFinancialInfo(a, msg.BillID), status.VendorStatus)
} else {
if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment {
utils.CallFuncAsync(func() {
c.onOrderComment2(a, msg)
})
// 新订单事件,与订单状态有点冲突
if jdapi.StatusIDNewOrder == msg.StatusID {
retVal = c.onOrderNew(a, msg, status)
} else if jdapi.OrderStatusAdjust == msg.StatusID {
retVal = c.onOrderAdjust(a, msg, status)
} else {
if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment {
utils.CallFuncAsync(func() {
c.onOrderComment2(a, msg)
})
}
err := partner.CurOrderManager.OnOrderStatusChanged(vendorOrgCode, status)
retVal = jdapi.Err2CallbackResponse(err, status.VendorStatus)
}
err := partner.CurOrderManager.OnOrderStatusChanged(vendorOrgCode, status)
retVal = jdapi.Err2CallbackResponse(err, status.VendorStatus)
}
}
return retVal

View File

@@ -14,6 +14,7 @@ var (
AfsVendorStatus2StatusMap = map[string]int{
jdapi.AfsServiceStateWaiting4Audit: model.AfsOrderStatusWait4Approve, // 需要审核
jdapi.AfsServiceStateWaiting4CSFeedback: model.AfsOrderStatusNew,
jdapi.AfsServiceStateRefundProcessing: model.AfsOrderStatusNew,
jdapi.AfsServiceStateWaiting4DirectCompensate: model.AfsOrderStatusNew,
jdapi.AfsServiceStateWaiting4ReturnGoods: model.AfsOrderStatusNew,

View File

@@ -180,15 +180,15 @@ func (c *DjswController) DeliveryCarrierModify() {
}
func (c *DjswController) NewApplyAfterSaleBill() {
c.nullOperation()
c.orderStatus()
}
func (c *DjswController) UpdateApplyAfterSaleBill() {
c.nullOperation()
c.orderStatus()
}
func (c *DjswController) NewAfterSaleBill() {
c.nullOperation()
c.orderStatus()
}
func (c *DjswController) AfterSaleBillStatus() {