- save real order status when new order msg came.

This commit is contained in:
gazebo
2018-07-22 21:57:56 +08:00
parent 7ae0944fc9
commit 52ac5ca64a
5 changed files with 70 additions and 30 deletions

View File

@@ -15,6 +15,18 @@ import (
"git.rosy.net.cn/jx-callback/legacy/freshfood"
)
var (
VendorStatus2StatusMap = map[string]int{
jdapi.OrderStatusNew: model.OrderStatusNew,
jdapi.OrderStatusWaitOutStore: model.OrderStatusAccepted,
jdapi.OrderStatusFinishedPickup: model.OrderStatusFinishedPickup,
jdapi.OrderStatusDelivering: model.OrderStatusDelivering,
jdapi.OrderStatusDelivered: model.OrderStatusDelivered,
jdapi.OrderStatusCanceled: model.OrderStatusCanceled,
jdapi.OrderStatusUserApplyCancel: model.OrderStatusApplyCancel,
}
)
type OrderController struct {
scheduler.BasePurchasePlatform
}
@@ -37,26 +49,11 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
retVal = c.onOrderAdjust(msg)
} else {
status := c.callbackMsg2Status(msg)
switch msg.StatusID {
case jdapi.OrderStatusWaitOutStore:
status.Status = model.OrderStatusAccepted
case jdapi.OrderStatusFinishedPickup:
status.Status = model.OrderStatusFinishedPickup
case jdapi.OrderStatusDelivering:
status.Status = model.OrderStatusDelivering
case jdapi.OrderStatusDelivered:
status.Status = model.OrderStatusDelivered
case jdapi.OrderStatusCanceled:
status.Status = model.OrderStatusCanceled
case jdapi.OrderStatusUserApplyCancel:
status.Status = model.OrderStatusApplyCancel
case jdapi.OrderStatusAddComment, jdapi.OrderStatusModifyComment:
status.Status = model.OrderStatusUnknown
status.Status = c.GetStatusFromVendorStatus(msg.StatusID)
if msg.StatusID == jdapi.OrderStatusAddComment || msg.StatusID == jdapi.OrderStatusModifyComment {
if globals.ReallyCallPlatformAPI {
freshfood.FreshFoodAPI.JDOrderComment(msg)
}
default:
status.Status = model.OrderStatusUnknown
}
err := controller.OrderManager.OnOrderStatusChanged(status)
// if globals.HandleLegacyJxOrder && err == nil {
@@ -90,6 +87,7 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
ActualPayPrice: utils.MustInterface2Int64(result["orderBuyerPayableMoney"]),
Skus: []*model.OrderSku{},
}
order.Status = c.GetStatusFromVendorStatus(order.VendorStatus)
coordinateType := utils.Interface2Int64WithDefault(result["buyerCoordType"], 1)
originalLng := utils.MustInterface2Float64(result["buyerLng"])
originalLat := utils.MustInterface2Float64(result["buyerLat"])
@@ -136,8 +134,7 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
order, err := c.GetOrder(msg.BillID)
if err == nil {
order.Status = model.OrderStatusNew
err = controller.OrderManager.OnOrderNew(order)
err = controller.OrderManager.OnOrderNew(order, msg.StatusID)
// if err == nil {
// c.legacyWriteJdOrder(order, false)
// }
@@ -148,8 +145,7 @@ func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
func (c *OrderController) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse {
order, err := c.GetOrder(msg.BillID)
if err == nil {
order.Status = model.OrderStatusAdjust
err = controller.OrderManager.OnOrderAdjust(order)
err = controller.OrderManager.OnOrderAdjust(order, msg.StatusID)
// if globals.HandleLegacyJxOrder && err == nil {
// c.legacyWriteJdOrder(order, true)
// }
@@ -171,6 +167,13 @@ func (c *OrderController) callbackMsg2Status(msg *jdapi.CallbackOrderMsg) *model
}
// PurchasePlatformHandler
func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
if status, ok := VendorStatus2StatusMap[vendorStatus]; ok {
return status
}
return model.OrderStatusUnknown
}
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
_, err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt)
return err