提交订单

This commit is contained in:
邹宗楠
2022-03-09 14:52:21 +08:00
parent 19fed7f0aa
commit cff4e7fb01
6 changed files with 11 additions and 4 deletions

View File

@@ -138,6 +138,7 @@ func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
}
dao.Commit(db, txDB)
// 进运单调度器OnWaybillStatusChanged之前要确保事务是提交了的否则会导致死锁
// 加载数据到当前系统调度器当中
scheduler.CurrentScheduler.OnWaybillStatusChanged(&billCopy, false)
dao.Begin(db)
} else {

View File

@@ -162,7 +162,7 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr
}
// if order.DeliveryFlag&model.OrderDeliveryFlagMaskScheduleDisabled != 0 {
// waybillList, err := partner.CurOrderManager.GetOrderWaybillInfo(jxcontext.AdminCtx, order.VendorOrderID, order.VendorID, true)
// if err != nil {1
// if err != nil {
// return nil, err
// }
// if len(waybillList) > 0 {

View File

@@ -504,7 +504,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
return err
}
// 以下是运单
// 以下是运单 (将订单数据放入系统内部调度器当中)
func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending bool) (err error) {
if bill.Status > model.WaybillStatusUnknown {
globals.SugarLogger.Debugf("OnWaybillStatusChanged orderID:%s %s, bill:%v", bill.VendorOrderID, model.WaybillStatusName[bill.Status], utils.Format4Output(bill, true))

View File

@@ -207,6 +207,7 @@ func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendor
if vendorID == model.VendorIDELM {
return nil, fmt.Errorf("不要直接使用饿了么订单号,请使用相应的饿百订单号")
}
// 创建可调度对象,并且存储
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
if savedOrderInfo != nil {
order := savedOrderInfo.order

View File

@@ -120,6 +120,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m
c.pushToGy(msg)
return mtpsapi.SuccessResponse
}
// 加入调度器
return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
}
@@ -207,10 +208,15 @@ func (c *DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInf
deliveryFeeInfo = &partner.WaybillFeeInfo{}
// 获取送货单id
deliveryID := c.getDeliveryID(order)
shopId, err := c.getMTPSShopID(order, dao.GetDB())
if err != nil {
return nil, err
}
deliveryFeeInfo.RefDeliveryFee, deliveryFeeInfo.RefAddFee, err = api.MtpsAPI.PreCreateByShop(&mtpsapi.PreCreateByShopParam{
DeliveryID: deliveryID,
OrderID: order.VendorOrderID,
ShopID: utils.Int2Str(order.StoreID),
ShopID: shopId,
DeliveryServiceCode: mtpsapi.DeliveryServiceCodeRapid,
ReceiverName: order.ConsigneeName,
ReceiverAddress: order.ConsigneeAddress,

View File

@@ -109,7 +109,6 @@ func (c *OrderController) QueryOrderWaybillFeeInfo() {
})
}
// todo 召唤第三方骑手配送生成订单
// @Title 创建三方运单
// @Description 创建三方运单
// @Param token header string true "认证token"