修改美团配送价格
This commit is contained in:
@@ -40,6 +40,7 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order *
|
|||||||
(excludeCourierVendorIDs == nil || excludeCourierVendorIDMap[storeCourier.VendorID] == 0) {
|
(excludeCourierVendorIDs == nil || excludeCourierVendorIDMap[storeCourier.VendorID] == 0) {
|
||||||
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil && handler.Use4CreateWaybill {
|
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil && handler.Use4CreateWaybill {
|
||||||
courierVendorID := storeCourier.VendorID
|
courierVendorID := storeCourier.VendorID
|
||||||
|
// 创建订单
|
||||||
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee)
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill)
|
||||||
|
|||||||
@@ -114,8 +114,10 @@ func (s *DefScheduler) isPossibleSwitch2SelfDelivery(order *model.GoodsOrder) (e
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建订单
|
||||||
func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Context, savedOrderInfo *WatchOrderInfo, courierVendorIDs, excludeCourierVendorIDs []int, forceCreate bool, maxDeliveryFee int64) (bills []*model.Waybill, err error) {
|
func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Context, savedOrderInfo *WatchOrderInfo, courierVendorIDs, excludeCourierVendorIDs []int, forceCreate bool, maxDeliveryFee int64) (bills []*model.Waybill, err error) {
|
||||||
order := savedOrderInfo.order
|
order := savedOrderInfo.order
|
||||||
|
// 查看订单状态是否处于可配送状态
|
||||||
if !forceCreate {
|
if !forceCreate {
|
||||||
err = s.canOrderCreateWaybillNormally(order, nil)
|
err = s.canOrderCreateWaybillNormally(order, nil)
|
||||||
}
|
}
|
||||||
@@ -123,6 +125,7 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
|
|||||||
if forceCreate {
|
if forceCreate {
|
||||||
maxDeliveryFee = math.MaxInt64
|
maxDeliveryFee = math.MaxInt64
|
||||||
}
|
}
|
||||||
|
// 生成美团订单
|
||||||
if bills, err = s.CreateWaybillOnProviders(ctx, order, courierVendorIDs, excludeCourierVendorIDs, maxDeliveryFee, forceCreate); err == nil {
|
if bills, err = s.CreateWaybillOnProviders(ctx, order, courierVendorIDs, excludeCourierVendorIDs, maxDeliveryFee, forceCreate); err == nil {
|
||||||
if forceCreate {
|
if forceCreate {
|
||||||
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
|
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled
|
||||||
@@ -135,7 +138,9 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
|
|||||||
//门店发单开始扣钱
|
//门店发单开始扣钱
|
||||||
if order.CreateDeliveryType == model.YES {
|
if order.CreateDeliveryType == model.YES {
|
||||||
deliveryFeeMap, _ := s.QueryOrderWaybillFeeInfoEx(ctx, order.VendorOrderID, order.VendorID)
|
deliveryFeeMap, _ := s.QueryOrderWaybillFeeInfoEx(ctx, order.VendorOrderID, order.VendorID)
|
||||||
|
// 运费相等为0或支出大于收入不做,
|
||||||
isEqual, isZero, _ := partner.CurStoreAcctManager.CheckStoreAcctExpendExist(order.VendorOrderID)
|
isEqual, isZero, _ := partner.CurStoreAcctManager.CheckStoreAcctExpendExist(order.VendorOrderID)
|
||||||
|
// 收最贵的一个订单配送费
|
||||||
if !isZero && !isEqual {
|
if !isZero && !isEqual {
|
||||||
var newPrice int64
|
var newPrice int64
|
||||||
if len(courierVendorIDs) == 1 {
|
if len(courierVendorIDs) == 1 {
|
||||||
@@ -217,6 +222,7 @@ func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendor
|
|||||||
order := savedOrderInfo.order
|
order := savedOrderInfo.order
|
||||||
order.DeliveryFlag = 0
|
order.DeliveryFlag = 0
|
||||||
err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order)
|
||||||
|
// 创建订单
|
||||||
if bills, err = s.CreateWaybillOnProviders4SavedOrder(ctx, savedOrderInfo, courierVendorIDs, nil, forceCreate, maxDeliveryFee); err == nil && len(bills) > 0 {
|
if bills, err = s.CreateWaybillOnProviders4SavedOrder(ctx, savedOrderInfo, courierVendorIDs, nil, forceCreate, maxDeliveryFee); err == nil && len(bills) > 0 {
|
||||||
partner.CurOrderManager.OnOrderMsg(order, "手动创建运单成功", fmt.Sprintf("%s创建%s平台运单,强发:%t,最高限价:%d", ctx.GetUserName(), model.VendorChineseNames[bills[0].WaybillVendorID], forceCreate, maxDeliveryFee))
|
partner.CurOrderManager.OnOrderMsg(order, "手动创建运单成功", fmt.Sprintf("%s创建%s平台运单,强发:%t,最高限价:%d", ctx.GetUserName(), model.VendorChineseNames[bills[0].WaybillVendorID], forceCreate, maxDeliveryFee))
|
||||||
}
|
}
|
||||||
@@ -339,10 +345,13 @@ func (s *DefScheduler) QueryOrderWaybillFeeInfoEx(ctx *jxcontext.Context, vendor
|
|||||||
if order.DeliveryType == model.OrderDeliveryTypeSelfTake {
|
if order.DeliveryType == model.OrderDeliveryTypeSelfTake {
|
||||||
return nil, fmt.Errorf("订单:%s是自提单", vendorOrderID)
|
return nil, fmt.Errorf("订单:%s是自提单", vendorOrderID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取用户送货地址
|
||||||
storeCourierList, err := dao.GetStoreCourierList(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, nil, model.StoreStatusAll, model.StoreAuditStatusOnline)
|
storeCourierList, err := dao.GetStoreCourierList(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, nil, model.StoreStatusAll, model.StoreAuditStatusOnline)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
// 美团配送订单兑现
|
||||||
waybillList, err := partner.CurOrderManager.GetOrderWaybillInfo(ctx, vendorOrderID, vendorID, true, false)
|
waybillList, err := partner.CurOrderManager.GetOrderWaybillInfo(ctx, vendorOrderID, vendorID, true, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -372,6 +381,7 @@ func (s *DefScheduler) QueryOrderWaybillFeeInfoEx(ctx *jxcontext.Context, vendor
|
|||||||
} else {
|
} else {
|
||||||
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil {
|
if handler := partner.GetDeliveryPlatformFromVendorID(storeCourier.VendorID); handler != nil {
|
||||||
if handler.Use4CreateWaybill {
|
if handler.Use4CreateWaybill {
|
||||||
|
// 获取订单配送费用
|
||||||
if feeInfo, err = handler.Handler.GetWaybillFee(order); err != nil {
|
if feeInfo, err = handler.Handler.GetWaybillFee(order); err != nil {
|
||||||
feeInfo = &partner.WaybillFeeInfo{
|
feeInfo = &partner.WaybillFeeInfo{
|
||||||
ErrCode: partner.WaybillFeeErrCodeCourierOthers,
|
ErrCode: partner.WaybillFeeErrCodeCourierOthers,
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ func (s *StoreAcctManager) UpdateStoreAcctBalance(ctx *jxcontext.Context, storeI
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 门店到账
|
||||||
func (s *StoreAcctManager) InsertStoreAcctExpendAndUpdateStoreAcctBalance(ctx *jxcontext.Context, storeID, price, acctType int, vendorOrderID string, expendID int) (err error) {
|
func (s *StoreAcctManager) InsertStoreAcctExpendAndUpdateStoreAcctBalance(ctx *jxcontext.Context, storeID, price, acctType int, vendorOrderID string, expendID int) (err error) {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
if err = s.InsertStoreAcctExpend(ctx, storeID, price, acctType, vendorOrderID, expendID); err == nil {
|
if err = s.InsertStoreAcctExpend(ctx, storeID, price, acctType, vendorOrderID, expendID); err == nil {
|
||||||
@@ -154,6 +155,7 @@ func (s *StoreAcctManager) InsertStoreAcctIncomeAndUpdateStoreAcctBalance(ctx *j
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查单子运费收入支出差
|
||||||
func (s *StoreAcctManager) CheckStoreAcctExpendExist(vendorOrderID string) (isEqual, isZero bool, err error) {
|
func (s *StoreAcctManager) CheckStoreAcctExpendExist(vendorOrderID string) (isEqual, isZero bool, err error) {
|
||||||
var (
|
var (
|
||||||
expends, incomes int
|
expends, incomes int
|
||||||
|
|||||||
@@ -270,8 +270,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
|
|||||||
VendorWaybillID: result.MtPeisongID,
|
VendorWaybillID: result.MtPeisongID,
|
||||||
VendorWaybillID2: utils.Int64ToStr(result.DeliveryID),
|
VendorWaybillID2: utils.Int64ToStr(result.DeliveryID),
|
||||||
WaybillVendorID: model.VendorIDMTPS,
|
WaybillVendorID: model.VendorIDMTPS,
|
||||||
// todo
|
DesiredFee: int64(result.DeliveryFee * 100),
|
||||||
DesiredFee: int64(result.DeliveryFee * 100), // todo deliveryFee,
|
|
||||||
}
|
}
|
||||||
// 当前运单总费大于配送阈值15,日志打印提示
|
// 当前运单总费大于配送阈值15,日志打印提示
|
||||||
delivery.OnWaybillCreated(bill)
|
delivery.OnWaybillCreated(bill)
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ func (c *OrderController) QueryOrderWaybillFeeInfo() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo 召唤第三方骑手配送生成订单
|
||||||
// @Title 创建三方运单
|
// @Title 创建三方运单
|
||||||
// @Description 创建三方运单
|
// @Description 创建三方运单
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
|
|||||||
Reference in New Issue
Block a user