- 自配送门店的PickupGoods不应调用平台相应API,模拟一个事件

This commit is contained in:
gazebo
2019-03-22 20:55:59 +08:00
parent 753ce06d0b
commit 837395f431
9 changed files with 59 additions and 29 deletions

View File

@@ -31,23 +31,21 @@ func (c *BaseScheduler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt
return err
}
func (c *BaseScheduler) PickupGoods(order *model.GoodsOrder, userName string) (err error) {
func (c *BaseScheduler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
globals.SugarLogger.Infof("PickupGoods orderID:%s", order.VendorOrderID)
if (order.DeliveryFlag & model.OrderDeliveryFlagMaskPurcahseDisabled) == 0 {
if order.LockStatus == model.OrderStatusUnknown && order.Status == model.OrderStatusAccepted {
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogErrorWithInfo(func() error {
return partner.GetPurchasePlatformFromVendorID(order.VendorID).PickupGoods(order, userName)
}, "PickupGoods orderID:%s", order.VendorOrderID)
}
if order.LockStatus == model.OrderStatusUnknown && order.Status == model.OrderStatusAccepted {
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogErrorWithInfo(func() error {
return partner.GetPurchasePlatformFromVendorID(order.VendorID).PickupGoods(order, isSelfDeilivery, userName)
}, "PickupGoods orderID:%s", order.VendorOrderID)
}
} else {
if order.LockStatus != model.OrderStatusUnknown || order.Status < model.OrderStatusAccepted {
err = scheduler.ErrOrderStatusIsNotSuitable4CurOperation
globals.SugarLogger.Infof("PickupGoods orderID:%s, status:%d is not suitable", order.VendorOrderID, order.Status)
} else {
if order.LockStatus != model.OrderStatusUnknown || order.Status < model.OrderStatusAccepted {
err = scheduler.ErrOrderStatusIsNotSuitable4CurOperation
globals.SugarLogger.Infof("PickupGoods orderID:%s, status:%d is not suitable", order.VendorOrderID, order.Status)
} else {
err = scheduler.ErrOrderStatusAlreadySatisfyCurOperation
globals.SugarLogger.Debugf("PickupGoods orderID:%s status:%d already ok", order.VendorOrderID, order.Status)
}
err = scheduler.ErrOrderStatusAlreadySatisfyCurOperation
globals.SugarLogger.Debugf("PickupGoods orderID:%s status:%d already ok", order.VendorOrderID, order.Status)
}
}
return err

View File

@@ -67,7 +67,7 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo
globals.SugarLogger.Infof("PickupGoodsAndUpdateStatus orderID:%s userName:%s", vendorOrderID, userName)
order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID)
if err == nil {
err = c.PickupGoods(order, userName)
err = c.PickupGoods(order, GetStoreDeliveryType(order, nil) == scheduler.StoreDeliveryTypeByStore, userName)
if err == nil {
order.Status = model.OrderStatusFinishedPickup
if err = partner.CurOrderManager.UpdateOrderStatusAndFlag(order); err == nil {