From bb6adfe684200576921c52f833f65f9383d53573 Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Thu, 12 Oct 2023 02:30:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95=E5=8F=88?= =?UTF-8?q?=E4=BC=9A=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWY.Server.API/Controllers/TestController.cs | 6 +++ .../Sync/OrderSyncBusiness.cs | 1 + BBWY.Server.Business/TestBusiness.cs | 43 +++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/BBWY.Server.API/Controllers/TestController.cs b/BBWY.Server.API/Controllers/TestController.cs index f7a33fea..6a5d2d0c 100644 --- a/BBWY.Server.API/Controllers/TestController.cs +++ b/BBWY.Server.API/Controllers/TestController.cs @@ -23,5 +23,11 @@ namespace BBWY.Server.API.Controllers testBusiness.StatisticsProduct(); } + + [HttpPost] + public void XiuFu() + { + testBusiness.XiuFu(); + } } } diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index b055c426..ea28ca2c 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -442,6 +442,7 @@ namespace BBWY.Server.Business CouponPrice = orderCouponJToken.Value("couponPrice") }); } + dbOrder.PreferentialAmount = preferentialAmount; } } #endregion diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs index 23a9a1b3..c4398cee 100644 --- a/BBWY.Server.Business/TestBusiness.cs +++ b/BBWY.Server.Business/TestBusiness.cs @@ -8,6 +8,7 @@ using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.IO; +using System.Linq; namespace BBWY.Server.Business { @@ -86,6 +87,48 @@ namespace BBWY.Server.Business var filePath = Path.Combine(AppContext.BaseDirectory, "result.csv"); File.WriteAllLines(filePath, list, System.Text.Encoding.UTF8); } + + public void XiuFu() + { + var st = DateTime.Parse("2023-09-01"); + var orderList = fsql.Select().InnerJoin((oc, o) => oc.OrderId == o.Id) + .Where((oc, o) => o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.PreferentialAmount == 0) + .GroupBy((oc, o) => oc.OrderId) + .ToList(g => new Order + { + Id = g.Key, + PreferentialAmount = g.Sum(g.Value.Item1.CouponPrice) + }); + + List> updateOrderList = new List>(); + var totalCount = orderList.Count(); + for (var i = 0; i < totalCount; i++) + { + var order = orderList[i]; + updateOrderList.Add(fsql.Update(order.Id).Set(o => o.PreferentialAmount, order.PreferentialAmount)); + if (updateOrderList.Count() == 50) + { + Console.WriteLine($"执行数据库更新 {i}/{totalCount}"); + fsql.Transaction(() => + { + foreach (var update in updateOrderList) + update.ExecuteAffrows(); + }); + updateOrderList.Clear(); + } + } + + if (updateOrderList.Count() > 0) + { + fsql.Transaction(() => + { + foreach (var update in updateOrderList) + update.ExecuteAffrows(); + }); + updateOrderList.Clear(); + } + Console.WriteLine("更新完毕"); + } } public class JPCount