From 02e9e6129582c5b446536b40091ad2ee0ea5b1a2 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 20 Jan 2020 13:48:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E5=94=AE=E5=90=8E=E5=8D=95?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=85=A8=E5=A4=84=E7=90=86=EF=BC=88=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E6=9C=89=E9=87=8D=E5=A4=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/order.go | 51 +++++++++++++---------- business/partner/purchase/jd/order_afs.go | 1 + controllers/jd_callback.go | 6 +-- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index df436eb19..8a3f50e81 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -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 diff --git a/business/partner/purchase/jd/order_afs.go b/business/partner/purchase/jd/order_afs.go index b89bc58e4..37a935747 100644 --- a/business/partner/purchase/jd/order_afs.go +++ b/business/partner/purchase/jd/order_afs.go @@ -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, diff --git a/controllers/jd_callback.go b/controllers/jd_callback.go index 476e2cdfe..e74476e7f 100644 --- a/controllers/jd_callback.go +++ b/controllers/jd_callback.go @@ -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() {