From 953406a7dc6a4ea8a72636ff92e7661252af0a5a 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 10:06:41 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E8=A2=8B?= =?UTF-8?q?=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 7dcd9b7ad..d9f9aac13 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -432,12 +432,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.StoreName = storeDetail.Name skus := formalizeSkus(jxOrder.Skus) - if fromStoreID != 0 { - err = matterSkusLimited(skus, fromStoreID) - if err != nil { - return nil, nil, err - } - } // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { var skuIDs []int @@ -470,7 +464,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } skuMap[v.ID] = v } - + var result *orderman.OrderCount + if fromStoreID != 0 { + result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) + } + sum := result.Count for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { if sku := skuMap[v.SkuID]; sku != nil { @@ -504,18 +502,35 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if fromStoreID == 0 { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { - if bagMap[jxSku.SkuID] != 0 { - if jxSku.Count > 1 { - for i := 0; i < jxSku.Count; i++ { - if i == 0 { - outJxOrder.OrderPrice += 1 + if jxSku.SkuID == 6039382 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { + outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { - outJxOrder.OrderPrice += jxSku.SalePrice + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/100))) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/100)))) * jxSku.SalePrice } + } else { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } + 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 { + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/200))) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/200)))) * jxSku.SalePrice + } + } else { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } - } else { - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } } outJxOrder.Weight += jxSku.Count * jxSku.Weight