- refactor order status for weimob

This commit is contained in:
gazebo
2019-01-25 17:05:58 +08:00
parent 088b613905
commit fcdc373848

View File

@@ -17,8 +17,8 @@ import (
) )
const ( const (
FakeOrderStatusAccepted = 101 FakeOrderStatusAccepted = "fakeaccepted"
FakeOrderStatusFinishedPickup = 102 FakeOrderStatusFinishedPickup = "fakefinishedpickup"
) )
const ( const (
@@ -26,19 +26,21 @@ const (
) )
var ( var (
VendorStatus2StatusMap = map[int]int{ VendorStatus2StatusMap = map[string]int{
weimobapi.OrderStatusWait4Pay: model.OrderStatusWait4Pay, utils.Int2Str(weimobapi.OrderStatusWait4Pay): model.OrderStatusWait4Pay,
weimobapi.OrderStatusPayed: model.OrderStatusNew, utils.Int2Str(weimobapi.OrderStatusPayed): model.OrderStatusNew,
FakeOrderStatusAccepted: model.OrderStatusAccepted, FakeOrderStatusAccepted: model.OrderStatusAccepted,
FakeOrderStatusFinishedPickup: model.OrderStatusFinishedPickup, FakeOrderStatusFinishedPickup: model.OrderStatusFinishedPickup,
weimobapi.OrderStatusDelivering: model.OrderStatusDelivering, utils.Int2Str(weimobapi.OrderStatusDelivering): model.OrderStatusDelivering,
weimobapi.OrderStatusFinished: model.OrderStatusFinished, utils.Int2Str(weimobapi.OrderStatusFinished): model.OrderStatusFinished,
weimobapi.OrderStatusCanceled: model.OrderStatusCanceled, utils.Int2Str(weimobapi.OrderStatusCanceled): model.OrderStatusCanceled,
weimobapi.MsgEventCreateRights: model.OrderStatusLocked,
} }
) )
func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weimobapi.CallbackResponse) { 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)) order, err := p.GetOrder(utils.Int64ToStr(msg.OrderNo))
if err == nil { if err == nil {
order.StatusTime = msg.StatusTime 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) { func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderStatus *model.OrderStatus, err error) {
orderID := utils.Int64ToStr(msg.OrderNo) orderID := utils.Int64ToStr(msg.OrderNo)
var intStatus int var vendorStatus string
if msg.IsFake { if msg.IsFake {
intStatus = int(utils.Str2Int64(msg.MsgEvent)) vendorStatus = msg.Event
} else { } 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 { if err == nil {
vendorStatus := utils.Int2Str(intStatus)
orderStatus = &model.OrderStatus{ orderStatus = &model.OrderStatus{
VendorOrderID: orderID, VendorOrderID: orderID,
VendorID: model.VendorIDWSC, VendorID: model.VendorIDWSC,
@@ -80,16 +85,16 @@ func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderS
return orderStatus, err 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) result, err := api.WeimobAPI.QueryOrderDetail(orderNo, false)
if err != nil { 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 { 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 status
} }
return model.OrderStatusUnknown return model.OrderStatusUnknown
@@ -217,10 +222,10 @@ func (p *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userNam
return err return err
} }
func (p *PurchaseHandler) postFakeMsg(orderNo int64, fakeStatus int) { func (p *PurchaseHandler) postFakeMsg(orderNo int64, fakeStatus string) {
msg := &weimobapi.CallbackMsg{ msg := &weimobapi.CallbackMsg{
IsFake: true, IsFake: true,
MsgEvent: utils.Int2Str(fakeStatus), Event: fakeStatus,
OrderNo: orderNo, OrderNo: orderNo,
StatusTime: time.Now(), StatusTime: time.Now(),
} }