From 69948b966cb66b3b220ff7682f3280c969e1584f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 28 Apr 2020 10:18:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=85=8D=E9=80=81=E8=B4=B9=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 95252b9c5..5a6655bf9 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -682,12 +682,23 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 deliveryAddress.ConsigneeName = storeDetail2.Name } outJxOrder.FromStoreID = fromStoreID - ///规则为: 配送费用规则。起价5元(含2kg),之后每kg+2元,不足1kg按1kg计算。 - if outJxOrder.Weight <= 2000 { + //TODO 修改配送费规则,2020-04-28 + //3kg 5元,每多1kg加2元 + //配送费要按分包规则计算 + if outJxOrder.Weight <= 3000 { 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 { - 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 { if outJxOrder.FreightPrice > specialFreightPrice { outJxOrder.FreightPrice = specialFreightPrice @@ -1471,7 +1482,7 @@ func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessage return err } -func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { +func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int64, err error) { var ( skus = jxOrder.Skus weightList []*JxSkuInfo2 @@ -1518,6 +1529,13 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei 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 } @@ -1532,6 +1550,7 @@ func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo { return sku } +//TODO 修改为4.5kg 2020-04-2? //商品分包规则2。最后一个包不超过5kg,其他包不超过3kg // 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg // 举例2:4kg,分为4kg