- save real order status when new order msg came.
This commit is contained in:
@@ -23,6 +23,17 @@ const (
|
||||
fakePickedUp = "fakefinishedpickup"
|
||||
)
|
||||
|
||||
var (
|
||||
VendorStatus2StatusMap = map[string]int{
|
||||
elmapi.OrderStatusUnprocessed: model.OrderStatusNew,
|
||||
elmapi.OrderStatusValid: model.OrderStatusAccepted,
|
||||
elmapi.OrderStatusPending: model.OrderStatusNew,
|
||||
elmapi.OrderStatusRefunding: model.OrderStatusApplyRefund,
|
||||
elmapi.OrderStatusInvalid: model.OrderStatusCanceled,
|
||||
elmapi.OrderStatusSettled: model.OrderStatusFinished,
|
||||
}
|
||||
)
|
||||
|
||||
type OrderController struct {
|
||||
scheduler.BasePurchasePlatform
|
||||
}
|
||||
@@ -146,6 +157,7 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
|
||||
ActualPayPrice: jxutils.StandardPrice2Int(utils.MustInterface2Float64(result["totalPrice"])),
|
||||
Skus: []*model.OrderSku{},
|
||||
}
|
||||
order.Status = c.GetStatusFromVendorStatus(order.VendorStatus)
|
||||
deliveryGeo := strings.Split(utils.Interface2String(result["deliveryGeo"]), ",")
|
||||
if len(deliveryGeo) == 2 {
|
||||
order.CoordinateType = model.CoordinateTypeMars
|
||||
@@ -183,9 +195,8 @@ func (c *OrderController) onOrderNew(msg map[string]interface{}) (response *elma
|
||||
// todo 这里应该可以直接用msg里的内容,而不用再次去查
|
||||
order, err := c.GetOrder(msg["orderId"].(string))
|
||||
if err == nil {
|
||||
order.VendorStatus = c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid)
|
||||
order.Status = model.OrderStatusNew
|
||||
err = controller.OrderManager.OnOrderNew(order)
|
||||
order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid)
|
||||
err = controller.OrderManager.OnOrderNew(order, c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid))
|
||||
// if globals.HandleLegacyJxOrder && err == nil {
|
||||
// c.legacyWriteElmOrder(order)
|
||||
// }
|
||||
@@ -227,6 +238,14 @@ func (c *OrderController) spliltCompositeState(compositeState string) (state str
|
||||
}
|
||||
|
||||
// PurchasePlatformHandler
|
||||
func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
state, _ := c.spliltCompositeState(vendorStatus)
|
||||
if status, ok := VendorStatus2StatusMap[state]; ok {
|
||||
return status
|
||||
}
|
||||
return model.OrderStatusUnknown
|
||||
}
|
||||
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
if isAcceptIt {
|
||||
err = api.ElmAPI.ConfirmOrder(order.VendorOrderID)
|
||||
|
||||
Reference in New Issue
Block a user