Commit ff3b884a02b2a00f9985a116de0a6a7f546bacef

Authored by “wangming”
1 parent a08a576e

refactor: 营销活动统计忽略品项过滤,统计该时间段内所有开单

- 移除品项过滤逻辑,不再通过活动品项筛选
- 开单统计直接查询lq_kd_kdjlb主表
- 退卡统计直接查询lq_hytk_hytk主表,金额使用tkje字段
- 统计该活动时间段内的所有开单和退卡数据
netcore/src/Modularity/Extend/NCC.Extend/LqPackageInfoService.cs
... ... @@ -612,35 +612,7 @@ namespace NCC.Extend.LqPackageInfo
612 612 var startTime = input.StartTime ?? activity.StartTime;
613 613 var endTime = input.EndTime ?? activity.EndTime;
614 614  
615   - // 3. 获取营销活动关联的品项ID列表
616   - var itemIds = await _db.Queryable<LqPackageItemDetailEntity>()
617   - .Where(x => x.ActivityId == input.ActivityId && x.IsEffective == StatusEnum.有效.GetHashCode())
618   - .Select(x => x.ItemId)
619   - .ToListAsync();
620   -
621   - if (!itemIds.Any())
622   - {
623   - return new ActivityStatisticsOutput
624   - {
625   - ActivityId = input.ActivityId,
626   - ActivityName = activity.ActivityName,
627   - BillingCount = 0,
628   - BillingAmount = 0,
629   - RefundCount = 0,
630   - RefundAmount = 0,
631   - NetBillingCount = 0,
632   - NetBillingAmount = 0,
633   - RefundRate = 0,
634   - DebtAmount = 0
635   - };
636   - }
637   -
638   - // 4. 构建品项ID过滤条件
639   - var itemIdsStr = string.Join("','", itemIds);
640   - var itemIdsFilter = $"AND px.px IN ('{itemIdsStr}')";
641   - var itemIdsFilterRefund = $"AND hytkmx.px IN ('{itemIdsStr}')";
642   -
643   - // 5. 构建门店过滤条件
  615 + // 3. 构建门店过滤条件
644 616 string storeFilter = "";
645 617 string storeFilterRefund = "";
646 618  
... ... @@ -651,8 +623,7 @@ namespace NCC.Extend.LqPackageInfo
651 623 storeFilterRefund = $"AND hytk.md IN ('{storeIdsStr}')";
652 624 }
653 625  
654   - // 6. 开单统计
655   - // 直接从开单主表查询,通过子查询判断是否包含活动品项
  626 + // 4. 开单统计 - 直接从开单主表查询
656 627 var billingSql = $@"
657 628 SELECT
658 629 COUNT(DISTINCT kd.F_Id) as billing_count,
... ... @@ -660,15 +631,8 @@ namespace NCC.Extend.LqPackageInfo
660 631 SUM(CAST(kd.qk AS DECIMAL(18,2))) as debt_amount
661 632 FROM lq_kd_kdjlb kd
662 633 WHERE kd.F_IsEffective = 1
663   - AND EXISTS (
664   - SELECT 1
665   - FROM lq_kd_pxmx px
666   - WHERE px.glkdbh = kd.F_Id
667   - AND px.F_IsEffective = 1
668   - {itemIdsFilter}
669   - AND px.yjsj >= '{startTime:yyyy-MM-dd HH:mm:ss}'
670   - AND px.yjsj <= '{endTime:yyyy-MM-dd HH:mm:ss}'
671   - )
  634 + AND kd.kdrq >= '{startTime:yyyy-MM-dd HH:mm:ss}'
  635 + AND kd.kdrq <= '{endTime:yyyy-MM-dd HH:mm:ss}'
672 636 {storeFilter}";
673 637  
674 638 var billingData = await _db.Ado.SqlQueryAsync<dynamic>(billingSql);
... ... @@ -676,17 +640,15 @@ namespace NCC.Extend.LqPackageInfo
676 640 var billingAmount = Convert.ToDecimal(billingData.FirstOrDefault()?.billing_amount ?? 0);
677 641 var debtAmount = Convert.ToDecimal(billingData.FirstOrDefault()?.debt_amount ?? 0);
678 642  
679   - // 7. 退卡统计
  643 + // 5. 退卡统计 - 直接从退卡主表查询
680 644 var refundSql = $@"
681 645 SELECT
682 646 COUNT(DISTINCT hytk.F_Id) as refund_count,
683   - SUM(CAST(hytkmx.tkje AS DECIMAL(18,2))) as refund_amount
684   - FROM lq_hytk_mx hytkmx
685   - LEFT JOIN lq_hytk_hytk hytk ON hytkmx.F_RefundInfoId = hytk.F_Id
686   - WHERE hytkmx.F_IsEffective = 1
687   - {itemIdsFilterRefund}
688   - AND hytkmx.tksj >= '{startTime:yyyy-MM-dd HH:mm:ss}'
689   - AND hytkmx.tksj <= '{endTime:yyyy-MM-dd HH:mm:ss}'
  647 + SUM(CAST(hytk.tkje AS DECIMAL(18,2))) as refund_amount
  648 + FROM lq_hytk_hytk hytk
  649 + WHERE hytk.F_IsEffective = 1
  650 + AND hytk.tksj >= '{startTime:yyyy-MM-dd HH:mm:ss}'
  651 + AND hytk.tksj <= '{endTime:yyyy-MM-dd HH:mm:ss}'
690 652 {storeFilterRefund}";
691 653  
692 654 var refundData = await _db.Ado.SqlQueryAsync<dynamic>(refundSql);
... ...