物料订单修改配送费规则
This commit is contained in:
@@ -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
|
||||||
// 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg
|
// 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg
|
||||||
// 举例2:4kg,分为4kg
|
// 举例2:4kg,分为4kg
|
||||||
|
|||||||
Reference in New Issue
Block a user