From 26734139fb1a85c9a0c6855766a413903954b5dd Mon Sep 17 00:00:00 2001 From: jianweie code Date: Sun, 12 Nov 2023 21:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=9B=A2=E8=B4=AD=E7=A7=92=E6=9D=80=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=EF=BC=8C=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E6=98=BE=E7=A4=BA=E4=BB=B7=E6=A0=BC=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8F=8A=E5=A2=9E=E5=8A=A0=E5=9B=A2=E8=B4=AD=E7=A7=92?= =?UTF-8?q?=E6=9D=80=E7=AD=96=E7=95=A5=E6=8F=90=E7=A4=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CoreCms.Net.Model/CoreCms.Net.Model.xml | 35 +++++++++++ .../Entities/Good/CoreCmsGoodsPartial.cs | 42 +++++++++++-- .../Promotion/CoreCmsPromotionServices.cs | 62 ++++++++++++++++++- .../groupBuyingDetails/groupBuyingDetails.vue | 5 ++ .../seckill/seckillDetails/seckillDetails.vue | 5 ++ 5 files changed, 141 insertions(+), 8 deletions(-) diff --git a/CoreCms.Net.Model/CoreCms.Net.Model.xml b/CoreCms.Net.Model/CoreCms.Net.Model.xml index 6bdf2a00..92997e48 100644 --- a/CoreCms.Net.Model/CoreCms.Net.Model.xml +++ b/CoreCms.Net.Model/CoreCms.Net.Model.xml @@ -3211,6 +3211,41 @@ 所属团购秒杀 + + + 团购秒杀类型 + + + + + 团购秒杀状态 + + + + + 团购秒杀时效 + + + + + 团购秒杀开始时间 + + + + + 团购秒杀结束时间 + + + + + 团购秒杀时间戳 + + + + + 团购秒杀促销结果 + + sku最小价格 diff --git a/CoreCms.Net.Model/Entities/Good/CoreCmsGoodsPartial.cs b/CoreCms.Net.Model/Entities/Good/CoreCmsGoodsPartial.cs index af36910e..f07a71c9 100644 --- a/CoreCms.Net.Model/Entities/Good/CoreCmsGoodsPartial.cs +++ b/CoreCms.Net.Model/Entities/Good/CoreCmsGoodsPartial.cs @@ -177,17 +177,47 @@ namespace CoreCms.Net.Model.Entities [SugarColumn(IsIgnore = true)] public int groupId { get; set; } - [SugarColumn(IsIgnore = true)] public int groupType { get; set; } + /// + /// 团购秒杀类型 + /// + [SugarColumn(IsIgnore = true)] + public int groupType { get; set; } - [SugarColumn(IsIgnore = true)] public bool groupStatus { get; set; } + /// + /// 团购秒杀状态 + /// + [SugarColumn(IsIgnore = true)] + public bool groupStatus { get; set; } - [SugarColumn(IsIgnore = true)] public DateTime groupTime { get; set; } + /// + /// 团购秒杀时效 + /// + [SugarColumn(IsIgnore = true)] + public DateTime groupTime { get; set; } - [SugarColumn(IsIgnore = true)] public DateTime groupStartTime { get; set; } + /// + /// 团购秒杀开始时间 + /// + [SugarColumn(IsIgnore = true)] + public DateTime groupStartTime { get; set; } - [SugarColumn(IsIgnore = true)] public DateTime groupEndTime { get; set; } + /// + /// 团购秒杀结束时间 + /// + [SugarColumn(IsIgnore = true)] + public DateTime groupEndTime { get; set; } - [SugarColumn(IsIgnore = true)] public int groupTimestamp { get; set; } + /// + /// 团购秒杀时间戳 + /// + [SugarColumn(IsIgnore = true)] + public int groupTimestamp { get; set; } + + /// + /// 团购秒杀促销结果 + /// + [SugarColumn(IsIgnore = true)] + public string groupPromotionResult { get; set; } /// diff --git a/CoreCms.Net.Services/Promotion/CoreCmsPromotionServices.cs b/CoreCms.Net.Services/Promotion/CoreCmsPromotionServices.cs index 1ca50993..330a0564 100644 --- a/CoreCms.Net.Services/Promotion/CoreCmsPromotionServices.cs +++ b/CoreCms.Net.Services/Promotion/CoreCmsPromotionServices.cs @@ -574,9 +574,67 @@ namespace CoreCms.Net.Services TimeSpan ts = promotion.endTime.Subtract(dt); goods.groupTimestamp = (int)ts.TotalSeconds; + //获取规则结果集 + decimal promotionAmount = 0; + var result = await _promotionResultServices.QueryByClauseAsync(p => p.promotionId == promotion.id); + if (result != null) + { + JObject resultParameters = (JObject)JsonConvert.DeserializeObject(result.parameters); + var cartProducts = new CartProducts() + { + nums = 1, + products = new CoreCmsProducts() + { + price = goods.product.price, + amount = goods.product.price, + } + }; + switch (result.code) + { + //指定商品减固定金额 + case "GOODS_REDUCE": + promotionAmount = _promotionResultServices.result_GOODS_REDUCE(resultParameters, cartProducts, promotion); + goods.groupPromotionResult = "指定商品减少固定金额:减" + resultParameters["money"].ObjectToString() + "元 "; + break; + //指定商品打X折 + case "GOODS_DISCOUNT": + promotionAmount = _promotionResultServices.result_GOODS_DISCOUNT(resultParameters, cartProducts, promotion); + goods.groupPromotionResult = "指定商品打折:打" + resultParameters["discount"].ObjectToString() + "折 "; + break; + //指定商品一口价 + case "GOODS_ONE_PRICE": + promotionAmount = _promotionResultServices.result_GOODS_ONE_PRICE(resultParameters, cartProducts, promotion); + goods.groupPromotionResult = "指定商品一口价:" + resultParameters["money"].ObjectToString() + "元 "; + break; + //指定商品每第几件减指定金额 + case "GOODS_HALF_PRICE": + //这个条件不在列表做处理 + promotionAmount = 0; + goods.groupPromotionResult = "指定商品每第" + resultParameters["num"].ObjectToString() + "件减少" + resultParameters["money"].ObjectToString() + "元"; + break; + case "ORDER_REDUCE": + goods.groupPromotionResult = "订单减" + resultParameters["money"].ObjectToString() + "元 "; + break; + case "ORDER_DISCOUNT": + goods.groupPromotionResult = "订单打" + resultParameters["discount"].ObjectToString() + "折 "; + break; + } + + } + if (promotionAmount > 0) + { + goods.product.price = Math.Round(goods.product.price - promotionAmount, 2); + } + + foreach (var item in goods.skuList.sku_list) + { + item.price = Math.Round(item.price - promotionAmount, 2); + } + + //进行促销后要更换原销售价替换原市场价 - var originPrice = Math.Round(goods.product.price + goods.product.promotionAmount, 2); - goods.product.mktprice = originPrice; + //var originPrice = Math.Round(goods.product.price + goods.product.promotionAmount, 2); + //goods.product.mktprice = originPrice; jm.status = true; jm.msg = "数据获取成功"; jm.data = goods; diff --git a/CoreCms.Net.Uni-App/CoreShop/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails.vue b/CoreCms.Net.Uni-App/CoreShop/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails.vue index 31089a02..f17cca4a 100644 --- a/CoreCms.Net.Uni-App/CoreShop/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails.vue +++ b/CoreCms.Net.Uni-App/CoreShop/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails.vue @@ -16,11 +16,16 @@ + + + + ¥ {{ product.price || '0.00' }} + ¥{{ product.mktprice }} diff --git a/CoreCms.Net.Uni-App/CoreShop/pages/activity/seckill/seckillDetails/seckillDetails.vue b/CoreCms.Net.Uni-App/CoreShop/pages/activity/seckill/seckillDetails/seckillDetails.vue index 801adf10..38e1d171 100644 --- a/CoreCms.Net.Uni-App/CoreShop/pages/activity/seckill/seckillDetails/seckillDetails.vue +++ b/CoreCms.Net.Uni-App/CoreShop/pages/activity/seckill/seckillDetails/seckillDetails.vue @@ -16,11 +16,16 @@ + + + + ¥ {{ product.price || '0.00' }} + ¥{{ product.mktprice }}