- save real order status when new order msg came.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user