- 对于微盟微商城,只有付款才会调用order manger的OnNewOder

- 将状态OrderStatusWait4Pay改为非重要状态
This commit is contained in:
gazebo
2019-03-28 10:43:12 +08:00
parent f486057dc5
commit 573a6603c5
2 changed files with 33 additions and 35 deletions

View File

@@ -49,6 +49,7 @@ var (
} }
OrderStatusName = map[int]string{ OrderStatusName = map[int]string{
OrderStatusWait4Pay: "待付款",
OrderStatusUnlocked: "解锁", OrderStatusUnlocked: "解锁",
OrderStatusLocked: "锁定", OrderStatusLocked: "锁定",
OrderStatusApplyUrgeOrder: "催单", OrderStatusApplyUrgeOrder: "催单",
@@ -57,7 +58,6 @@ var (
OrderStatusUnknown: "一般事件", OrderStatusUnknown: "一般事件",
OrderStatusWait4Pay: "待付款",
OrderStatusNew: "新订单", OrderStatusNew: "新订单",
OrderStatusAdjust: "调整单", OrderStatusAdjust: "调整单",
OrderStatusAccepted: "已接单", OrderStatusAccepted: "已接单",
@@ -116,6 +116,7 @@ const (
) )
const ( const (
OrderStatusWait4Pay = -30 // 下单待支付,微盟在这个时间发新订单事件
OrderStatusUnlocked = -25 OrderStatusUnlocked = -25
OrderStatusLocked = -20 OrderStatusLocked = -20
OrderStatusApplyUrgeOrder = -15 OrderStatusApplyUrgeOrder = -15
@@ -124,7 +125,6 @@ const (
OrderStatusUnknown = 0 OrderStatusUnknown = 0
OrderStatusWait4Pay = 3 // 下单待支付,微盟在这个时间发新订单事件
OrderStatusNew = 5 // 新订单 OrderStatusNew = 5 // 新订单
OrderStatusAdjust = 8 // 订单调整 OrderStatusAdjust = 8 // 订单调整
OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货 OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货

View File

@@ -41,24 +41,28 @@ var (
) )
func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weimobapi.CallbackResponse) { func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weimobapi.CallbackResponse) {
if weimobapi.MsgEventCreateOrder == msg.Event { var (
order, err := p.GetOrder(utils.Int64ToStr(msg.OrderNo)) 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 { if err == nil {
order.StatusTime = msg.StatusTime status = p.callbackMsg2Status(msg, orderMapData)
err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus) 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) orderID := utils.Int64ToStr(msg.OrderNo)
var vendorStatus string var vendorStatus string
if msg.IsFake { if msg.IsFake {
@@ -67,31 +71,25 @@ func (p *PurchaseHandler) callbackMsg2Status(msg *weimobapi.CallbackMsg) (orderS
if msg.Event == weimobapi.MsgEventCreateRights { if msg.Event == weimobapi.MsgEventCreateRights {
vendorStatus = msg.Event vendorStatus = msg.Event
} else { } else {
vendorStatus, err = p.getOrderStatus(msg.OrderNo) vendorStatus = p.getOrderStatus(orderMapData)
} }
} }
if err == nil { orderStatus = &model.OrderStatus{
orderStatus = &model.OrderStatus{ VendorOrderID: orderID,
VendorOrderID: orderID, VendorID: model.VendorIDWSC,
VendorID: model.VendorIDWSC, OrderType: model.OrderTypeOrder,
OrderType: model.OrderTypeOrder, RefVendorOrderID: orderID,
RefVendorOrderID: orderID, RefVendorID: model.VendorIDWSC,
RefVendorID: model.VendorIDWSC, VendorStatus: vendorStatus,
VendorStatus: vendorStatus, Status: p.GetStatusFromVendorStatus(vendorStatus),
Status: p.GetStatusFromVendorStatus(vendorStatus), StatusTime: msg.StatusTime,
StatusTime: msg.StatusTime, Remark: "",
Remark: "",
}
} }
return orderStatus, err return orderStatus
} }
func (p *PurchaseHandler) getOrderStatus(orderNo int64) (status string, err error) { func (p *PurchaseHandler) getOrderStatus(orderMapData map[string]interface{}) (status string) {
result, err := api.WeimobAPI.QueryOrderDetail(orderNo, false) return utils.Int64ToStr(utils.MustInterface2Int64(orderMapData["orderStatus"]))
if err != nil {
return "", err
}
return utils.Int64ToStr(utils.MustInterface2Int64(result["orderStatus"])), nil
} }
func (p *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int { func (p *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {