修复统计 table列表 总金额计算 多出了退款金额
This commit is contained in:
1 parent
543eb2f3fc
commit
88d75ff914
1 file changed
+13
-7
@@ -105,10 +105,14 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
{
|
||||
return row.BuyerRefundStatus == "退款成功";
|
||||
}
|
||||
private static List<ShopRevenueStatisticsRow> GetPaymentOrderList(IEnumerable<ShopRevenueStatisticsRow> rows)
|
||||
{
|
||||
return (rows ?? new List<ShopRevenueStatisticsRow>()).Where(a => a.OutAmount > 0).ToList(); //买手付钱后的订单数量
|
||||
}
|
||||
/// <summary>汇总卡片</summary>
|
||||
public static ShopRevenueSummary GetSummary(IEnumerable<ShopRevenueStatisticsRow> rows)
|
||||
{
|
||||
var list = (rows ?? new List<ShopRevenueStatisticsRow>()).Where(a => a.OutAmount > 0).ToList(); //买手付钱后的订单数量
|
||||
var list = GetPaymentOrderList(rows); //买手付钱后的订单数量
|
||||
var valid = list.Where(IsValidOrder).ToList();
|
||||
var refunded = list.Where(IsRefunded).ToList();
|
||||
|
||||
@@ -149,7 +153,8 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
/// <summary>销售趋势(按天,缺失日期补 0,仅统计有效订单)</summary>
|
||||
public static List<RevenueTrendPoint> GetSalesTrend(IEnumerable<ShopRevenueStatisticsRow> rows, DateTime startDate, DateTime endDate)
|
||||
{
|
||||
var list = (rows ?? new List<ShopRevenueStatisticsRow>()).Where(IsValidOrder).ToList();
|
||||
var list = GetPaymentOrderList(rows);
|
||||
list = list.Where(IsValidOrder).ToList();
|
||||
var map = list
|
||||
.GroupBy(r => r.CreateTime.Date)
|
||||
.ToDictionary(
|
||||
@@ -175,7 +180,8 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
/// <summary>店铺销售占比(饼图,仅统计有效订单)</summary>
|
||||
public static List<ShopSalesProportionItem> GetShopSalesProportion(IEnumerable<ShopRevenueStatisticsRow> rows)
|
||||
{
|
||||
var list = (rows ?? new List<ShopRevenueStatisticsRow>()).Where(IsValidOrder).ToList();
|
||||
var list = GetPaymentOrderList(rows);
|
||||
list = list.Where(IsValidOrder).ToList();
|
||||
decimal total = list.Sum(r => (decimal)(r.OrderPrice)) / 100m;
|
||||
|
||||
return list
|
||||
@@ -193,7 +199,7 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
/// <summary>店铺统计表格</summary>
|
||||
public static List<ShopStatisticsItem> GetShopStatistics(IEnumerable<ShopRevenueStatisticsRow> rows)
|
||||
{
|
||||
var list = (rows ?? new List<ShopRevenueStatisticsRow>()).Where(a => a.OutAmount > 0).ToList(); //买手付钱后的订单
|
||||
var list = GetPaymentOrderList(rows); //买手付钱后的订单
|
||||
|
||||
return list
|
||||
.GroupBy(r => r.ShopName)
|
||||
@@ -201,7 +207,7 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
{
|
||||
var valid = g.Where(IsValidOrder).ToList();
|
||||
var refunded = g.Where(IsRefunded).ToList();
|
||||
decimal salesAmount = g.Sum(r => (decimal)(r.OrderPrice)) / 100m; //与 GetSummary 一致:含已退款订单的销售额
|
||||
decimal salesAmount = valid.Sum(r => (decimal)(r.OrderPrice)) / 100m; //与 GetSummary 一致:不含已退款订单的销售额
|
||||
int orderCount = valid.Select(r => r.OrderId).Distinct().Count();
|
||||
decimal profit = valid.Concat(refunded).Sum(r => (decimal)(r.Profit)) / 100m; //与 GetSummary 一致:有效+退款订单利润
|
||||
decimal purchaseAmount = valid.Sum(r => (decimal)(r.OutAmount)) / 100m; //与 GetSummary 一致:买手付款金额(采购金额)
|
||||
@@ -238,7 +244,7 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
{
|
||||
var valid = g.Where(IsValidOrder).ToList();
|
||||
var refunded = g.Where(IsRefunded).ToList();
|
||||
decimal salesAmount = g.Sum(r => (decimal)(r.OrderPrice)) / 100m; //与 GetSummary 一致:含已退款订单的销售额
|
||||
decimal salesAmount = valid.Sum(r => (decimal)(r.OrderPrice)) / 100m; //与 GetSummary 一致:不含已退款订单的销售额
|
||||
decimal profit = valid.Concat(refunded).Sum(r => (decimal)(r.Profit)) / 100m; //与 GetSummary 一致:有效+退款订单利润
|
||||
decimal purchaseAmount = valid.Sum(r => (decimal)(r.OutAmount)) / 100m; //与 GetSummary 一致:买手付款金额(采购金额)
|
||||
int orderCount = valid.Select(r => r.OrderId).Distinct().Count();
|
||||
@@ -358,7 +364,7 @@ namespace _29WxOrderWpf.Ctrls.Statistics.Services
|
||||
/// 查询时按天命中:未命中的天合并成连续段一次请求,返回后按天拆分写入;
|
||||
/// 前台选某一个或某多个店铺时,按所选店铺(ShopName)过滤,复用同一批时间数据。
|
||||
/// </summary>
|
||||
private readonly Dictionary<string, CacheEntry> _rowCache =
|
||||
private static readonly Dictionary<string, CacheEntry> _rowCache =
|
||||
new Dictionary<string, CacheEntry>();
|
||||
private readonly object _cacheLock = new object();
|
||||
|
||||
|
||||
Reference in new issue
Block a user