修复统计错误bug
This commit is contained in:
1 parent
04d9e37123
commit
87e13e6544
1 file changed
+21
-8
@@ -182,14 +182,17 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
orderShopIds.Add(shopId);
|
||||
}
|
||||
if (orderShopIds.Count == 0) return result;
|
||||
|
||||
if (startTime == endTime)
|
||||
{
|
||||
endTime = startTime.Date.AddDays(1).AddSeconds(-1);
|
||||
}
|
||||
int startStamp = TimeUtils.DateTimeToTimestampSeconds(startTime);
|
||||
int endStamp = TimeUtils.DateTimeToTimestampSeconds(endTime) + 1; // 结束时间含当天/当秒
|
||||
int endStamp = TimeUtils.DateTimeToTimestampSeconds(endTime);
|
||||
var orders = LoadOrders(startStamp, endStamp, orderShopIds);
|
||||
if (orders.Count == 0) return result;
|
||||
|
||||
// 加载买手订单(直拍和中转仓都要查),并回填商铺订单的退款金额
|
||||
LoadBuyerOrder(orders, true);
|
||||
LoadBuyerOrder(orders);
|
||||
FillRefunds(orders);
|
||||
|
||||
foreach (var order in orders)
|
||||
@@ -451,7 +454,7 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
{
|
||||
var query = _freeSql.Select<WeiOrderEntity, WeiOrderItemEntity>()
|
||||
.InnerJoin((a, b) => a.OrderId == b.OrderId)
|
||||
.Where((a, b) => a.CreateTime >= startStamp && a.CreateTime < endStamp)
|
||||
.Where((a, b) => a.CreateTime >= startStamp && a.CreateTime <= endStamp)
|
||||
.Where((a, b) => a.Status > 10);
|
||||
|
||||
if (shopIds != null && shopIds.Count > 0)
|
||||
@@ -513,14 +516,14 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
/// true:按订单的采购类型区分直拍 / 中转仓,两张买手表都能查到(查询明细用)
|
||||
/// false:沿用历史口径,按 OutAmount 是否为 0 判断(统计任务保持原行为不变)
|
||||
/// </param>
|
||||
private void LoadBuyerOrder(List<OrderInfo> orders, bool byPurchaseType = false)
|
||||
private void LoadBuyerOrder(List<OrderInfo> orders)
|
||||
{
|
||||
var result = new List<BuyerOrderInfo>();
|
||||
|
||||
|
||||
//查询中转仓购买表
|
||||
var outWarehouseOrderIds = orders
|
||||
.Where(a => byPurchaseType ? a.PurchaseType == PurchaseType.FromWarehouse : a.OutAmount == 0)
|
||||
.Where(a => a.PurchaseType == PurchaseType.FromWarehouse)
|
||||
.Select(a => a.OrderId).Distinct().ToList();
|
||||
if (outWarehouseOrderIds.Count > 0)
|
||||
{
|
||||
@@ -546,7 +549,7 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
|
||||
//查询直拍表
|
||||
var outDirectOrderIds = orders
|
||||
.Where(a => byPurchaseType ? a.PurchaseType == PurchaseType.DirectPurchase : a.OutAmount > 0)
|
||||
.Where(a => a.PurchaseType == PurchaseType.DirectPurchase)
|
||||
.Select(a => a.OrderId).Distinct().ToList();
|
||||
foreach (string[] batch in Batch(outDirectOrderIds, BatchSize))
|
||||
{
|
||||
@@ -596,7 +599,7 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
SkuId = a.WxSkuId,
|
||||
OutOrderSn = a.OrderSn,
|
||||
OutAmount = a.OrderAmount ?? 0,
|
||||
RefundAmount = a.RefundAmount ?? 0,
|
||||
RefundAmount = a.RefundAmount ?? (a.OrderAmount ?? 0),
|
||||
RefundStatusText = a.StatusText
|
||||
}));
|
||||
}
|
||||
@@ -621,6 +624,13 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//移除未购买的订单
|
||||
for (int i = orders.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (orders[i].BuyerOrders.Count == 0)
|
||||
orders.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>回填商铺订单的退款信息</summary>
|
||||
@@ -732,7 +742,10 @@ public class ShopRevenueStatisticsService : ITransientDependency
|
||||
var outOrderGroups = buyerOrders
|
||||
.GroupBy(b => b.OutOrderSn)
|
||||
.ToList();
|
||||
if (buyerOrders.Any(a => a.OutOrderSn == "261007-181907044681346"))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
long done = 0, pending = 0, rejected = 0;
|
||||
long totalPurchase = 0;
|
||||
|
||||
Reference in new issue
Block a user