diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 18f256732..0a88d5cbd 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -492,12 +492,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } var ( result *orderman.OrderCount - sum *int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格 + sum int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格 flag = false //新店袋子拆分当个参数 ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) - sum = &result.Count + sum = result.Count } for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { @@ -556,19 +556,20 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } else { //袋子总数小于等于销量就是1分钱,只要大于销量其他就按原价 - var bagPriceCount = func(jxSku *JxSkuInfo, outJxOrder *JxOrderInfo, sum *int, count float64) { + //这个袋子规格是一份100个 + if jxSku.SkuID == 6039382 { if bagMap[jxSku.SkuID] != 0 { - if *sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= *sum+int(utils.Float64TwoInt64(count)) { + 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)/count))) + 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) / count))) + 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) @@ -578,14 +579,32 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - *sum = *sum - bagMap[jxSku.SkuID]*jxSku.Count + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } - } - //这个袋子规格是一份100个 - if jxSku.SkuID == 6039382 { - bagPriceCount(jxSku, outJxOrder, sum, 100) } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { //这些袋子是一份200个 - bagPriceCount(jxSku, outJxOrder, sum, 200) + 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