Browse Source

修复订单又会数据

AddValidOverTime
shanji 2 years ago
parent
commit
bb6adfe684
  1. 6
      BBWY.Server.API/Controllers/TestController.cs
  2. 1
      BBWY.Server.Business/Sync/OrderSyncBusiness.cs
  3. 43
      BBWY.Server.Business/TestBusiness.cs

6
BBWY.Server.API/Controllers/TestController.cs

@ -23,5 +23,11 @@ namespace BBWY.Server.API.Controllers
testBusiness.StatisticsProduct();
}
[HttpPost]
public void XiuFu()
{
testBusiness.XiuFu();
}
}
}

1
BBWY.Server.Business/Sync/OrderSyncBusiness.cs

@ -442,6 +442,7 @@ namespace BBWY.Server.Business
CouponPrice = orderCouponJToken.Value<decimal>("couponPrice")
});
}
dbOrder.PreferentialAmount = preferentialAmount;
}
}
#endregion

43
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<OrderCoupon, Order>().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<IUpdate<Order>> updateOrderList = new List<IUpdate<Order>>();
var totalCount = orderList.Count();
for (var i = 0; i < totalCount; i++)
{
var order = orderList[i];
updateOrderList.Add(fsql.Update<Order>(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

Loading…
Cancel
Save