From 6a48c92aa4535ef24f18f0b51edc78c8b8868a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 11:57:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=98=AF=E6=96=B0=E5=BA=97=EF=BC=8C=E8=A2=8B=E5=AD=90?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 104 +++++++++++------- 1 file changed, 64 insertions(+), 40 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 02fa21070..1c12d92e2 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -467,6 +467,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 var ( result *orderman.OrderCount sum int + flag = false //新店袋子拆分当个参数 ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) @@ -505,57 +506,80 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { //以下else为物料订单袋子金额和数量处理 - if jxSku.SkuID == 6039382 { + if result.Count == 0 && result.Flag { //这个条件被认为是新店,袋子限量 if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { + if !flag { + jxSku.SalePrice = 1 + jxSku.Count = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + if jxSku.Count > 1 { jxSku2 := *jxSku jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + jxSku2.Count = jxSku2.Count - 1 outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) } + flag = true } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count - } - } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { - if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { - jxSku2 := *jxSku - jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) - } - } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + if jxSku.SkuID == 6039382 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } } } outJxOrder.Weight += jxSku.Count * jxSku.Weight