- OnOrderNew and OnOrderAdjust需要参数status
This commit is contained in:
@@ -51,7 +51,7 @@ func (c *OrderManager) LoadPendingOrders() []*model.GoodsOrder {
|
|||||||
|
|
||||||
// msgVendorStatus的意思是事件本身的类型,类似有时收到NewOrder事件去取,订单状态不一定就是New的
|
// msgVendorStatus的意思是事件本身的类型,类似有时收到NewOrder事件去取,订单状态不一定就是New的
|
||||||
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
// OnOrderAdjust也类似,而OrderStatus要记录的是消息,所以添加这个
|
||||||
func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error) {
|
||||||
if order.ConsigneeMobile2 == "" && !jxutils.IsMobileFake(order.ConsigneeMobile) {
|
if order.ConsigneeMobile2 == "" && !jxutils.IsMobileFake(order.ConsigneeMobile) {
|
||||||
order.ConsigneeMobile2 = order.ConsigneeMobile
|
order.ConsigneeMobile2 = order.ConsigneeMobile
|
||||||
}
|
}
|
||||||
@@ -67,12 +67,7 @@ func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, msgVendorStatus strin
|
|||||||
if order.Status == model.OrderStatusUnknown {
|
if order.Status == model.OrderStatusUnknown {
|
||||||
order.Status = model.OrderStatusNew
|
order.Status = model.OrderStatusNew
|
||||||
}
|
}
|
||||||
status := model.Order2Status(order)
|
isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db)
|
||||||
if status.Status > model.OrderStatusNew {
|
|
||||||
status.Status = model.OrderStatusNew
|
|
||||||
}
|
|
||||||
status.VendorStatus = msgVendorStatus
|
|
||||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
|
||||||
if err == nil && !isDuplicated {
|
if err == nil && !isDuplicated {
|
||||||
isDuplicated, err = c.SaveOrder(order, false, db)
|
isDuplicated, err = c.SaveOrder(order, false, db)
|
||||||
}
|
}
|
||||||
@@ -88,7 +83,7 @@ func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, msgVendorStatus strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
|
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
|
||||||
func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) {
|
func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error) {
|
||||||
if order.ConsigneeMobile2 == "" && !jxutils.IsMobileFake(order.ConsigneeMobile) {
|
if order.ConsigneeMobile2 == "" && !jxutils.IsMobileFake(order.ConsigneeMobile) {
|
||||||
order.ConsigneeMobile2 = order.ConsigneeMobile
|
order.ConsigneeMobile2 = order.ConsigneeMobile
|
||||||
}
|
}
|
||||||
@@ -104,10 +99,7 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus st
|
|||||||
if order.Status == model.OrderStatusUnknown {
|
if order.Status == model.OrderStatusUnknown {
|
||||||
order.Status = model.OrderStatusAccepted
|
order.Status = model.OrderStatusAccepted
|
||||||
}
|
}
|
||||||
status := model.Order2Status(order)
|
isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db)
|
||||||
status.Status = model.OrderStatusAdjust
|
|
||||||
status.VendorStatus = msgVendorStatus
|
|
||||||
isDuplicated, err := addOrderOrWaybillStatus(status, db)
|
|
||||||
if err == nil && !isDuplicated {
|
if err == nil && !isDuplicated {
|
||||||
err = utils.CallFuncLogError(func() error {
|
err = utils.CallFuncLogError(func() error {
|
||||||
_, err = db.Db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
_, err = db.Db.Raw("DELETE FROM order_sku WHERE vendor_order_id = ? AND vendor_id = ?", order.VendorOrderID, order.VendorID).Exec()
|
||||||
@@ -131,7 +123,7 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus st
|
|||||||
msghub.OnNewOrder(order)
|
msghub.OnNewOrder(order)
|
||||||
// 因为订单调度器需要的是真实状态,所以用order的状态
|
// 因为订单调度器需要的是真实状态,所以用order的状态
|
||||||
_ = scheduler.CurrentScheduler.OnOrderNew(order, false)
|
_ = scheduler.CurrentScheduler.OnOrderNew(order, false)
|
||||||
_ = scheduler.CurrentScheduler.OnOrderStatusChanged(order, model.Order2Status(order), false)
|
_ = scheduler.CurrentScheduler.OnOrderStatusChanged(order, orderStatus, false)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ var (
|
|||||||
type IOrderManager interface {
|
type IOrderManager interface {
|
||||||
SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao.DaoDB) (isDuplicated bool, err error)
|
SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao.DaoDB) (isDuplicated bool, err error)
|
||||||
|
|
||||||
OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error)
|
OnOrderNew(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error)
|
||||||
OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error)
|
OnOrderAdjust(order *model.GoodsOrder, orderStatus *model.OrderStatus) (err error)
|
||||||
OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error)
|
OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error)
|
||||||
OnOrderMsg(order *model.GoodsOrder, vendorStatus, remark string) (err error)
|
OnOrderMsg(order *model.GoodsOrder, vendorStatus, remark string) (err error)
|
||||||
|
|
||||||
@@ -187,6 +187,14 @@ type IPurchasePlatformHandler interface {
|
|||||||
// order.Skus要包含原始订单中的Sku信息,removedSkuList中是要移除的Sku信息
|
// order.Skus要包含原始订单中的Sku信息,removedSkuList中是要移除的Sku信息
|
||||||
AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error)
|
AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error)
|
||||||
|
|
||||||
|
// 售后
|
||||||
|
// 同意用户退款申请
|
||||||
|
// AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error)
|
||||||
|
// // 发起全款退款
|
||||||
|
// RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error)
|
||||||
|
// // 发起部分退款
|
||||||
|
// PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error)
|
||||||
|
|
||||||
////////
|
////////
|
||||||
// Store
|
// Store
|
||||||
ReadStore(vendorStoreID string) (store *model.Store, err error)
|
ReadStore(vendorStoreID string) (store *model.Store, err error)
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.
|
|||||||
if status.Status == model.OrderStatusAdjust {
|
if status.Status == model.OrderStatusAdjust {
|
||||||
var order *model.GoodsOrder
|
var order *model.GoodsOrder
|
||||||
if order, err = c.GetOrder4PartRefund(GetOrderIDFromMsg(msg)); err == nil {
|
if order, err = c.GetOrder4PartRefund(GetOrderIDFromMsg(msg)); err == nil {
|
||||||
err = partner.CurOrderManager.OnOrderAdjust(order, status.VendorStatus)
|
err = partner.CurOrderManager.OnOrderAdjust(order, status)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
||||||
@@ -319,7 +319,7 @@ func (c *PurchaseHandler) onOrderNew(msg *ebaiapi.CallbackMsg) (response *ebaiap
|
|||||||
vendorOrderID := GetOrderIDFromMsg(msg)
|
vendorOrderID := GetOrderIDFromMsg(msg)
|
||||||
order, orderMap, err := c.getOrder(vendorOrderID)
|
order, orderMap, err := c.getOrder(vendorOrderID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus); err == nil {
|
if err = partner.CurOrderManager.OnOrderNew(order, c.callbackMsg2Status(msg)); err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ func (c *PurchaseHandler) onOrderNew(msg map[string]interface{}) (response *elma
|
|||||||
order, err := c.GetOrder(msg["orderId"].(string))
|
order, err := c.GetOrder(msg["orderId"].(string))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid)
|
order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid)
|
||||||
err = partner.CurOrderManager.OnOrderNew(order, c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid))
|
err = partner.CurOrderManager.OnOrderNew(order, nil)
|
||||||
// if globals.HandleLegacyJxOrder && err == nil {
|
// if globals.HandleLegacyJxOrder && err == nil {
|
||||||
// c.legacyWriteElmOrder(order)
|
// c.legacyWriteElmOrder(order)
|
||||||
// }
|
// }
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
|||||||
func (c *PurchaseHandler) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
|
func (c *PurchaseHandler) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
|
||||||
order, orderMap, err := c.getOrder(msg.BillID)
|
order, orderMap, err := c.getOrder(msg.BillID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = partner.CurOrderManager.OnOrderNew(order, msg.StatusID); err == nil {
|
if err = partner.CurOrderManager.OnOrderNew(order, c.callbackMsg2Status(msg)); err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
c.OnOrderDetail(orderMap, partner.CreatedPeration)
|
||||||
})
|
})
|
||||||
@@ -174,7 +174,7 @@ func (c *PurchaseHandler) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
|
|||||||
func (c *PurchaseHandler) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse {
|
func (c *PurchaseHandler) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse {
|
||||||
order, orderMap, err := c.getOrder(msg.BillID)
|
order, orderMap, err := c.getOrder(msg.BillID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = partner.CurOrderManager.OnOrderAdjust(order, msg.StatusID)
|
err = partner.CurOrderManager.OnOrderAdjust(order, c.callbackMsg2Status(msg))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
|
c.OnOrderDetail(orderMap, partner.UpdatedPeration)
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
|||||||
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
||||||
order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg))
|
order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg))
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus)
|
err = partner.CurOrderManager.OnOrderNew(order, c.callbackMsg2Status(msg))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
||||||
@@ -181,7 +181,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
|
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
|
||||||
err = partner.CurOrderManager.OnOrderAdjust(order, status.VendorStatus)
|
err = partner.CurOrderManager.OnOrderAdjust(order, status)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func (p *PurchaseHandler) onOrderMsg(msg *weimobapi.CallbackMsg) (response *weim
|
|||||||
if status.Status == model.OrderStatusNew {
|
if status.Status == model.OrderStatusNew {
|
||||||
order := p.Map2Order(orderMapData)
|
order := p.Map2Order(orderMapData)
|
||||||
order.StatusTime = msg.StatusTime
|
order.StatusTime = msg.StatusTime
|
||||||
err = partner.CurOrderManager.OnOrderNew(order, order.VendorStatus)
|
err = partner.CurOrderManager.OnOrderNew(order, status)
|
||||||
} else {
|
} else {
|
||||||
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
err = partner.CurOrderManager.OnOrderStatusChanged(status)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user