From 9233c75053ab4561dffb6a35c085afb6e3ac859f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 6 May 2020 16:15:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=BB=93=E7=AE=97=E4=BB=B7?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=B4=BB=E5=8A=A8=E7=BB=93=E7=AE=97=E4=BB=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 29 ++++--- business/jxcallback/orderman/orderman_ext.go | 85 +++++++++++--------- 2 files changed, 67 insertions(+), 47 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 7fc236deb..04198673b 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -364,17 +364,28 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. salePrice = 0 } v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, salePrice, storePayPercentage) - //重复购买有结算价的商品需要拆分,第一个商品按结算价,后面的商品按shopprice 或者 saleprice,然后把原来的商品信息删了 - if v.Count > 1 && v.EarningPrice != 0 { - sku := v - sku.Count = v.Count - 1 - v.Count = 1 - if v.ShopPrice < v.SalePrice { - sku.EarningPrice = v.ShopPrice + //TODO 重复购买有结算价的商品需要拆分,第一个商品按结算价,后面的商品按shopprice 或者 saleprice, 2020-05-06 + if v.Count > 1 { + storeID := 0 + if order.StoreID == 0 { + storeID = order.JxStoreID } else { - sku.EarningPrice = v.SalePrice + storeID = order.StoreID + } + result, _ := dao.GetEffectiveActStoreSkuInfo(db, 0, nil, 0, []int{storeID}, []int{v.SkuID}, order.OrderCreatedAt, order.OrderCreatedAt) + if len(result) > 0 { + if result[0].EarningPrice != 0 { + sku := v + sku.Count = v.Count - 1 + v.Count = 1 + if v.ShopPrice < v.SalePrice { + sku.EarningPrice = v.ShopPrice + } else { + sku.EarningPrice = v.SalePrice + } + orderSkus = append(orderSkus, sku) + } } - orderSkus = append(orderSkus, sku) } } // 直营店始终按比例结算,不考虑活动与结算表 diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 9c079cfbc..a983d57d2 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -332,44 +332,53 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS order.SkuInfo2 += ";" + skuStr1 } } else if v.SkuCount2 > 1 { - if v.SkuEarningPrice != 0 { - skuStr1 := strings.Join([]string{ - utils.Int2Str(v.SkuID), - utils.Int2Str(v.SkuCount2), - utils.Int2Str(v.SkuShopPrice), - utils.Int2Str(v.SkuSalePrice), - utils.Int2Str(v.SkuEarningPrice), - }, ",") - skuStr2 := strings.Join([]string{ - utils.Int2Str(v.SkuID), - utils.Int2Str(1), - utils.Int2Str(v.SkuShopPrice), - utils.Int2Str(v.SkuSalePrice), - utils.Int2Str(v.SkuEarningPrice), - }, ",") - price := 0 - if v.SkuShopPrice < v.SkuSalePrice { - price = v.SkuShopPrice - } else { - price = v.SkuSalePrice - } - skuStr3 := strings.Join([]string{ - utils.Int2Str(v.SkuID), - utils.Int2Str(v.SkuCount2 - 1), - utils.Int2Str(v.SkuShopPrice), - utils.Int2Str(v.SkuSalePrice), - utils.Int2Str(price), - }, ",") - if order == nil || v.ID != order.ID { - order = v - v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] - v.Status2 = model.OrderStatusName[v.Status] - v.SkuInfo = skuStr1 - v.SkuInfo2 = skuStr2 + ";" + skuStr3 - orders2 = append(orders2, v) - } else { - order.SkuInfo += ";" + skuStr1 - order.SkuInfo2 += ";" + skuStr2 + ";" + skuStr3 + storeID := 0 + if v.StoreID == 0 { + storeID = v.JxStoreID + } else { + storeID = v.StoreID + } + result, _ := dao.GetEffectiveActStoreSkuInfo(dao.GetDB(), 0, nil, 0, []int{storeID}, []int{v.SkuID}, v.OrderCreatedAt, v.OrderCreatedAt) + if len(result) > 0 { + if result[0].EarningPrice != 0 { + skuStr1 := strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(v.SkuCount2), + utils.Int2Str(v.SkuShopPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(v.SkuEarningPrice), + }, ",") + skuStr2 := strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(1), + utils.Int2Str(v.SkuShopPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(v.SkuEarningPrice), + }, ",") + price := 0 + if v.SkuShopPrice < v.SkuSalePrice { + price = v.SkuShopPrice + } else { + price = v.SkuSalePrice + } + skuStr3 := strings.Join([]string{ + utils.Int2Str(v.SkuID), + utils.Int2Str(v.SkuCount2 - 1), + utils.Int2Str(v.SkuShopPrice), + utils.Int2Str(v.SkuSalePrice), + utils.Int2Str(price), + }, ",") + if order == nil || v.ID != order.ID { + order = v + v.CourierVendorName = model.VendorChineseNames[v.WaybillVendorID] + v.Status2 = model.OrderStatusName[v.Status] + v.SkuInfo = skuStr1 + v.SkuInfo2 = skuStr2 + ";" + skuStr3 + orders2 = append(orders2, v) + } else { + order.SkuInfo += ";" + skuStr1 + order.SkuInfo2 += ";" + skuStr2 + ";" + skuStr3 + } } } else { skuStr1 := strings.Join([]string{