From 573a6603c5ad2d26d7b428e4be4eb3da951eb50c Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 28 Mar 2019 10:43:12 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=AF=B9=E4=BA=8E=E5=BE=AE=E7=9B=9F?= =?UTF-8?q?=E5=BE=AE=E5=95=86=E5=9F=8E=EF=BC=8C=E5=8F=AA=E6=9C=89=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E6=89=8D=E4=BC=9A=E8=B0=83=E7=94=A8order=20manger?= =?UTF-8?q?=E7=9A=84OnNewOder=20-=20=E5=B0=86=E7=8A=B6=E6=80=81OrderStatus?= =?UTF-8?q?Wait4Pay=E6=94=B9=E4=B8=BA=E9=9D=9E=E9=87=8D=E8=A6=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/const.go | 4 +- business/partner/purchase/weimob/wsc/order.go | 64 +++++++++---------- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/business/model/const.go b/business/model/const.go index e33f4223c..acbc84fdb 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -49,6 +49,7 @@ var ( } OrderStatusName = map[int]string{ + OrderStatusWait4Pay: "待付款", OrderStatusUnlocked: "解锁", OrderStatusLocked: "锁定", OrderStatusApplyUrgeOrder: "催单", @@ -57,7 +58,6 @@ var ( OrderStatusUnknown: "一般事件", - OrderStatusWait4Pay: "待付款", OrderStatusNew: "新订单", OrderStatusAdjust: "调整单", OrderStatusAccepted: "已接单", @@ -116,6 +116,7 @@ const ( ) const ( + OrderStatusWait4Pay = -30 // 下单待支付,微盟在这个时间发新订单事件 OrderStatusUnlocked = -25 OrderStatusLocked = -20 OrderStatusApplyUrgeOrder = -15 @@ -124,7 +125,6 @@ const ( OrderStatusUnknown = 0 - OrderStatusWait4Pay = 3 // 下单待支付,微盟在这个时间发新订单事件 OrderStatusNew = 5 // 新订单 OrderStatusAdjust = 8 // 订单调整 OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货 diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index bb83c6f10..30ceb3605 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -41,24 +41,28 @@ var ( ) func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weimobapi.CallbackResponse) { - if weimobapi.MsgEventCreateOrder == msg.Event { - order, err := p.GetOrder(utils.Int64ToStr(msg.OrderNo)) + var ( + err error + status *model.OrderStatus + orderMapData map[string]interface{} + ) + if weimobapi.MsgEventCreateOrder == msg.Event || weimobapi.MsgEventOrderStatusChange == msg.Event { + orderMapData, err = api.WeimobAPI.QueryOrderDetail(msg.OrderNo, false) if err == nil { - order.StatusTime = msg.StatusTime - err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus) + status = p.callbackMsg2Status(msg, orderMapData) + if status.Status == model.OrderStatusNew { + order := p.Map2Order(orderMapData) + order.StatusTime = msg.StatusTime + err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus) + } else { + err = partner.CurOrderManager.OnOrderStatusChanged(status) + } } - return weimobapi.Err2CallbackResponse(err, "") - } else { - status, err := p.callbackMsg2Status(msg) - if status != nil { - err = partner.CurOrderManager.OnOrderStatusChanged(status) - } - response = weimobapi.Err2CallbackResponse(err, "") } - return response + return weimobapi.Err2CallbackResponse(err, "") } -func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderStatus *model.OrderStatus, err error) { +func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg, orderMapData map[string]interface{}) (orderStatus *model.OrderStatus) { orderID := utils.Int64ToStr(msg.OrderNo) var vendorStatus string if msg.IsFake { @@ -67,31 +71,25 @@ func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderS if msg.Event == weimobapi.MsgEventCreateRights { vendorStatus = msg.Event } else { - vendorStatus, err = p.getOrderStatus(msg.OrderNo) + vendorStatus = p.getOrderStatus(orderMapData) } } - if err == nil { - orderStatus = &model.OrderStatus{ - VendorOrderID: orderID, - VendorID: model.VendorIDWSC, - OrderType: model.OrderTypeOrder, - RefVendorOrderID: orderID, - RefVendorID: model.VendorIDWSC, - VendorStatus: vendorStatus, - Status: p.GetStatusFromVendorStatus(vendorStatus), - StatusTime: msg.StatusTime, - Remark: "", - } + orderStatus = &model.OrderStatus{ + VendorOrderID: orderID, + VendorID: model.VendorIDWSC, + OrderType: model.OrderTypeOrder, + RefVendorOrderID: orderID, + RefVendorID: model.VendorIDWSC, + VendorStatus: vendorStatus, + Status: p.GetStatusFromVendorStatus(vendorStatus), + StatusTime: msg.StatusTime, + Remark: "", } - return orderStatus, err + return orderStatus } -func (p *PurchaseHandler) getOrderStatus(orderNo int64) (status string, err error) { - result, err := api.WeimobAPI.QueryOrderDetail(orderNo, false) - if err != nil { - return "", err - } - return utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])), nil +func (p *PurchaseHandler) getOrderStatus(orderMapData map[string]interface{}) (status string) { + return utils.Int64ToStr(utils.MustInterface2Int64(orderMapData["orderStatus"])) } func (p *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {