From ff3b884a02b2a00f9985a116de0a6a7f546bacef Mon Sep 17 00:00:00 2001 From: “wangming” <“wangming@antissoft.com”> Date: Tue, 28 Oct 2025 17:38:00 +0800 Subject: [PATCH] refactor: 营销活动统计忽略品项过滤,统计该时间段内所有开单 --- netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs | 58 ++++++++++------------------------------------------------ 1 file changed, 10 insertions(+), 48 deletions(-) diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs index 8801d84..074f7d8 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs @@ -612,35 +612,7 @@ namespace NCC.Extend.LqPackageInfo var startTime = input.StartTime ?? activity.StartTime; var endTime = input.EndTime ?? activity.EndTime; - // 3. 获取营销活动关联的品项ID列表 - var itemIds = await _db.Queryable() - .Where(x => x.ActivityId == input.ActivityId && x.IsEffective == StatusEnum.有效.GetHashCode()) - .Select(x => x.ItemId) - .ToListAsync(); - - if (!itemIds.Any()) - { - return new ActivityStatisticsOutput - { - ActivityId = input.ActivityId, - ActivityName = activity.ActivityName, - BillingCount = 0, - BillingAmount = 0, - RefundCount = 0, - RefundAmount = 0, - NetBillingCount = 0, - NetBillingAmount = 0, - RefundRate = 0, - DebtAmount = 0 - }; - } - - // 4. 构建品项ID过滤条件 - var itemIdsStr = string.Join("','", itemIds); - var itemIdsFilter = $"AND px.px IN ('{itemIdsStr}')"; - var itemIdsFilterRefund = $"AND hytkmx.px IN ('{itemIdsStr}')"; - - // 5. 构建门店过滤条件 + // 3. 构建门店过滤条件 string storeFilter = ""; string storeFilterRefund = ""; @@ -651,8 +623,7 @@ namespace NCC.Extend.LqPackageInfo storeFilterRefund = $"AND hytk.md IN ('{storeIdsStr}')"; } - // 6. 开单统计 - // 直接从开单主表查询,通过子查询判断是否包含活动品项 + // 4. 开单统计 - 直接从开单主表查询 var billingSql = $@" SELECT COUNT(DISTINCT kd.F_Id) as billing_count, @@ -660,15 +631,8 @@ namespace NCC.Extend.LqPackageInfo SUM(CAST(kd.qk AS DECIMAL(18,2))) as debt_amount FROM lq_kd_kdjlb kd WHERE kd.F_IsEffective = 1 - AND EXISTS ( - SELECT 1 - FROM lq_kd_pxmx px - WHERE px.glkdbh = kd.F_Id - AND px.F_IsEffective = 1 - {itemIdsFilter} - AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}' - AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}' - ) + AND kd.kdrq >= '{startTime:yyyy-MM-dd HH:mm:ss}' + AND kd.kdrq <= '{endTime:yyyy-MM-dd HH:mm:ss}' {storeFilter}"; var billingData = await _db.Ado.SqlQueryAsync(billingSql); @@ -676,17 +640,15 @@ namespace NCC.Extend.LqPackageInfo var billingAmount = Convert.ToDecimal(billingData.FirstOrDefault()?.billing_amount ?? 0); var debtAmount = Convert.ToDecimal(billingData.FirstOrDefault()?.debt_amount ?? 0); - // 7. 退卡统计 + // 5. 退卡统计 - 直接从退卡主表查询 var refundSql = $@" SELECT COUNT(DISTINCT hytk.F_Id) as refund_count, - SUM(CAST(hytkmx.tkje AS DECIMAL(18,2))) as refund_amount - FROM lq_hytk_mx hytkmx - LEFT JOIN lq_hytk_hytk hytk ON hytkmx.F_RefundInfoId = hytk.F_Id - WHERE hytkmx.F_IsEffective = 1 - {itemIdsFilterRefund} - AND hytkmx.tksj >= '{startTime:yyyy-MM-dd HH:mm:ss}' - AND hytkmx.tksj <= '{endTime:yyyy-MM-dd HH:mm:ss}' + SUM(CAST(hytk.tkje AS DECIMAL(18,2))) as refund_amount + FROM lq_hytk_hytk hytk + WHERE hytk.F_IsEffective = 1 + AND hytk.tksj >= '{startTime:yyyy-MM-dd HH:mm:ss}' + AND hytk.tksj <= '{endTime:yyyy-MM-dd HH:mm:ss}' {storeFilterRefund}"; var refundData = await _db.Ado.SqlQueryAsync(refundSql); -- libgit2 0.21.4