物料订单修改配送费规则

This commit is contained in:
苏尹岚
2020-04-28 10:18:09 +08:00
parent 3ebebc9aac
commit 69948b966c

View File

@@ -682,12 +682,23 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
deliveryAddress.ConsigneeName = storeDetail2.Name deliveryAddress.ConsigneeName = storeDetail2.Name
} }
outJxOrder.FromStoreID = fromStoreID outJxOrder.FromStoreID = fromStoreID
///规则为: 配送费规则。起价5元(含2kg)之后每kg+2元不足1kg按1kg计算。 //TODO 修改配送费规则2020-04-28
if outJxOrder.Weight <= 2000 { //3kg 5元每多1kg加2元
//配送费要按分包规则计算
if outJxOrder.Weight <= 3000 {
outJxOrder.FreightPrice = 500 outJxOrder.FreightPrice = 500
} else if outJxOrder.Weight > 3000 && outJxOrder.Weight <= splitMatterOrderMinWeight {
outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-3000)/1000)*200)
} else { } else {
outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) _, freightPrice, _ := tryToSplitMatterOrder(jxOrder)
outJxOrder.FreightPrice = freightPrice
} }
///规则为: 配送费用规则。起价5元(含2kg)之后每kg+2元不足1kg按1kg计算。
// if outJxOrder.Weight <= 2000 {
// outJxOrder.FreightPrice = 500
// } else {
// outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200)
// }
} else { } else {
if outJxOrder.FreightPrice > specialFreightPrice { if outJxOrder.FreightPrice > specialFreightPrice {
outJxOrder.FreightPrice = specialFreightPrice outJxOrder.FreightPrice = specialFreightPrice
@@ -1471,7 +1482,7 @@ func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessage
return err return err
} }
func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int64, err error) {
var ( var (
skus = jxOrder.Skus skus = jxOrder.Skus
weightList []*JxSkuInfo2 weightList []*JxSkuInfo2
@@ -1518,6 +1529,13 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei
break break
} }
} }
for _, v := range outOrders {
if v.Weight <= 3000 {
freightPrice += 500
} else if v.Weight > 3000 && v.Weight <= splitMatterOrderMinWeight {
freightPrice += utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(v.Weight)-3000)/1000)*200)
}
}
return outOrders, freightPrice, err return outOrders, freightPrice, err
} }
@@ -1532,6 +1550,7 @@ func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo {
return sku return sku
} }
//TODO 修改为4.5kg 2020-04-2?
//商品分包规则2。最后一个包不超过5kg,其他包不超过3kg //商品分包规则2。最后一个包不超过5kg,其他包不超过3kg
// 举例15.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg // 举例15.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg
// 举例24kg,分为4kg // 举例24kg,分为4kg