京东售后单消息全处理(可能有重复)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user