- 重构创建运单策略

This commit is contained in:
gazebo
2019-03-30 15:00:59 +08:00
parent 68b5ec38b6
commit 10a444c895
11 changed files with 142 additions and 125 deletions

View File

@@ -19,9 +19,8 @@ import (
)
const (
maxOrderPrice = 6399 // 单位为分,达达最大价格,超过这个价格配送费会增加
maxOrderWeight = 5000 // 5公斤
maxDiffFee2Mtps = 150 // 与美团配送最多差价
maxOrderPrice = 6399 // 单位为分,达达最大价格,超过这个价格配送费会增加
maxOrderWeight = 5000 // 5公斤
)
var (
@@ -102,16 +101,14 @@ func (c *DeliveryHandler) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVal
}
// IDeliveryPlatformHandler
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, policy func(deliveryFee, addFee int64) error) (bill *model.Waybill, err error) {
func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, policy partner.CreateWaybillPolicy) (bill *model.Waybill, err error) {
db := orm.NewOrm()
deliveryFee, addFee, err := delivery.CalculateOrderDeliveryFee(order, time.Now(), db)
if err != nil {
return nil, err
}
if policy != nil {
if err = policy(deliveryFee, addFee); err != nil {
return nil, err
}
if err = delivery.CallCreateWaybillPolicy(policy, deliveryFee, addFee, deliveryFee, order, model.VendorIDDada); err != nil {
return nil, err
}
billParams := &dadaapi.OperateOrderRequiredParams{
// ShopNo: utils.Int2Str(order.StoreID), // 当前达达的门店号与京西是一样的
@@ -158,9 +155,8 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, policy func(del
return nil, err
}
dadaFee := jxutils.StandardPrice2Int(result.Fee)
if dadaFee-deliveryFee > maxDiffFee2Mtps {
globals.SugarLogger.Infof("CreateWaybill orderID:%s 达达与美团配送超价太多,达达:%d美团配送:%d", order.VendorOrderID, dadaFee, deliveryFee)
return nil, ErrExceedMaxDiffFee2Mtps
if err = delivery.CallCreateWaybillPolicy(policy, deliveryFee, addFee, dadaFee, order, model.VendorIDDada); err != nil {
return nil, err
}
err = api.DadaAPI.AddOrderAfterQuery(result.DeliveryNo)
}