From fcdc373848f361e75dffe17daa1d26b9d92b67b6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 25 Jan 2019 17:05:58 +0800 Subject: [PATCH] - refactor order status for weimob --- business/partner/purchase/weimob/wsc/order.go | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index 8be65241b..90dfca09c 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -17,8 +17,8 @@ import ( ) const ( - FakeOrderStatusAccepted = 101 - FakeOrderStatusFinishedPickup = 102 + FakeOrderStatusAccepted = "fakeaccepted" + FakeOrderStatusFinishedPickup = "fakefinishedpickup" ) const ( @@ -26,19 +26,21 @@ const ( ) var ( - VendorStatus2StatusMap = map[int]int{ - weimobapi.OrderStatusWait4Pay: model.OrderStatusWait4Pay, - weimobapi.OrderStatusPayed: model.OrderStatusNew, - FakeOrderStatusAccepted: model.OrderStatusAccepted, - FakeOrderStatusFinishedPickup: model.OrderStatusFinishedPickup, - weimobapi.OrderStatusDelivering: model.OrderStatusDelivering, - weimobapi.OrderStatusFinished: model.OrderStatusFinished, - weimobapi.OrderStatusCanceled: model.OrderStatusCanceled, + VendorStatus2StatusMap = map[string]int{ + utils.Int2Str(weimobapi.OrderStatusWait4Pay): model.OrderStatusWait4Pay, + utils.Int2Str(weimobapi.OrderStatusPayed): model.OrderStatusNew, + FakeOrderStatusAccepted: model.OrderStatusAccepted, + FakeOrderStatusFinishedPickup: model.OrderStatusFinishedPickup, + utils.Int2Str(weimobapi.OrderStatusDelivering): model.OrderStatusDelivering, + utils.Int2Str(weimobapi.OrderStatusFinished): model.OrderStatusFinished, + utils.Int2Str(weimobapi.OrderStatusCanceled): model.OrderStatusCanceled, + + weimobapi.MsgEventCreateRights: model.OrderStatusLocked, } ) func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weimobapi.CallbackResponse) { - if weimobapi.MsgEventCreateOrder == msg.MsgEvent { + if weimobapi.MsgEventCreateOrder == msg.Event { order, err := p.GetOrder(utils.Int64ToStr(msg.OrderNo)) if err == nil { order.StatusTime = msg.StatusTime @@ -57,14 +59,17 @@ func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weim func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderStatus *model.OrderStatus, err error) { orderID := utils.Int64ToStr(msg.OrderNo) - var intStatus int + var vendorStatus string if msg.IsFake { - intStatus = int(utils.Str2Int64(msg.MsgEvent)) + vendorStatus = msg.Event } else { - intStatus, err = p.getOrderStatus(msg.OrderNo) + if msg.Event == weimobapi.MsgEventCreateRights { + vendorStatus = msg.Event + } else { + vendorStatus, err = p.getOrderStatus(msg.OrderNo) + } } if err == nil { - vendorStatus := utils.Int2Str(intStatus) orderStatus = &model.OrderStatus{ VendorOrderID: orderID, VendorID: model.VendorIDWSC, @@ -80,16 +85,16 @@ func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderS return orderStatus, err } -func (p *PurchaseHandler) getOrderStatus(orderNo int64) (status int, err error) { +func (p *PurchaseHandler) getOrderStatus(orderNo int64) (status string, err error) { result, err := api.WeimobAPI.QueryOrderDetail(orderNo, false) if err != nil { - return 0, err + return "", err } - return int(utils.MustInterface2Int64(result["orderStatus"])), nil + return utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])), nil } func (p *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int { - if status, ok := VendorStatus2StatusMap[int(utils.Str2Int64(vendorStatus))]; ok { + if status, ok := VendorStatus2StatusMap[vendorStatus]; ok { return status } return model.OrderStatusUnknown @@ -217,10 +222,10 @@ func (p *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userNam return err } -func (p *PurchaseHandler) postFakeMsg(orderNo int64, fakeStatus int) { +func (p *PurchaseHandler) postFakeMsg(orderNo int64, fakeStatus string) { msg := &weimobapi.CallbackMsg{ IsFake: true, - MsgEvent: utils.Int2Str(fakeStatus), + Event: fakeStatus, OrderNo: orderNo, StatusTime: time.Now(), }