From 631fcb03ef97a7a53d211877c6d5ec7a833a4649 Mon Sep 17 00:00:00 2001
From: “wangming” <“wangming@antissoft.com”>
Date: Sun, 16 Nov 2025 20:54:23 +0800
Subject: [PATCH] feat: 开单品项明细记录列表接口新增门店信息
---
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListOutput.cs | 10 ++++++++++
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListQueryInput.cs | 5 +++++
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs | 35 +++++++++++++++++++++++++++++++----
3 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListOutput.cs
index 132e466..d3b0432 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListOutput.cs
@@ -66,6 +66,16 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
/// 备注
///
public string remark { get; set; }
+
+ ///
+ /// 门店ID
+ ///
+ public string storeId { get; set; }
+
+ ///
+ /// 门店名称
+ ///
+ public string storeName { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListQueryInput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListQueryInput.cs
index 1d5f3a4..b5669e6 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListQueryInput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/BillingItemDetailListQueryInput.cs
@@ -66,6 +66,11 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
/// 来源类型(购买/赠送/体验)
///
public string SourceType { get; set; }
+
+ ///
+ /// 门店ID
+ ///
+ public string StoreId { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
index a81735b..b8dff6a 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -3237,7 +3237,8 @@ namespace NCC.Extend.LqKdKdjlb
/// "ItemId": "品项ID",
/// "ItemName": "品项名称",
/// "ItemType": "品项类型",
- /// "SourceType": "来源类型"
+ /// "SourceType": "来源类型",
+ /// "StoreId": "门店ID"
/// }
/// ```
///
@@ -3258,6 +3259,7 @@ namespace NCC.Extend.LqKdKdjlb
/// - ItemName: 品项名称(可选,模糊查询)
/// - ItemType: 品项类型(可选,精确匹配,对应项目资料表的qt2字段)
/// - SourceType: 来源类型(可选,精确匹配,如:购买、赠送、体验)
+ /// - StoreId: 门店ID(可选,精确匹配,根据开单记录表的门店ID筛选)
///
/// 返回数据结构:
/// ```json
@@ -3280,7 +3282,9 @@ namespace NCC.Extend.LqKdKdjlb
/// "actualPrice": 500.00,
/// "projectNumber": 5.0,
/// "sourceType": "购买",
- /// "remark": "备注"
+ /// "remark": "备注",
+ /// "storeId": "门店ID",
+ /// "storeName": "门店名称"
/// }
/// ]
/// }
@@ -3299,6 +3303,8 @@ namespace NCC.Extend.LqKdKdjlb
/// - projectNumber: 项目次数(decimal类型,支持小数)
/// - sourceType: 来源类型(字符串,如:购买、赠送、体验)
/// - remark: 备注(字符串)
+ /// - storeId: 门店ID(关联开单记录表的门店ID)
+ /// - storeName: 门店名称(关联门店表的店名字段)
///
/// 查询参数
/// 开单品项明细记录列表(分页)
@@ -3341,7 +3347,8 @@ namespace NCC.Extend.LqKdKdjlb
// 2. 通过 EXISTS 子查询筛选关联字段(在分页前筛选,确保分页准确)
baseQuery = baseQuery.WhereIF(!string.IsNullOrEmpty(input.MemberName), pxmx => SqlFunc.Subqueryable().Where(x => x.Id == pxmx.MemberId && x.Khmc != null && x.Khmc.Contains(input.MemberName)).Any())
.WhereIF(!string.IsNullOrEmpty(input.MemberPhone), pxmx => SqlFunc.Subqueryable().Where(x => x.Id == pxmx.MemberId && x.Sjh == input.MemberPhone).Any())
- .WhereIF(!string.IsNullOrEmpty(input.ItemType), pxmx => SqlFunc.Subqueryable().Where(x => x.Id == pxmx.Px && x.Fl4 == input.ItemType).Any());
+ .WhereIF(!string.IsNullOrEmpty(input.ItemType), pxmx => SqlFunc.Subqueryable().Where(x => x.Id == pxmx.Px && x.Fl4 == input.ItemType).Any())
+ .WhereIF(!string.IsNullOrEmpty(input.StoreId), pxmx => SqlFunc.Subqueryable().Where(x => x.Id == pxmx.Glkdbh && x.Djmd == input.StoreId).Any());
// 3. 先分页查询主表数据(查询实体类,提高性能)
var pagedData = await baseQuery.OrderBy(sidx + " " + sort).ToPagedListAsync(input.currentPage, input.pageSize);
@@ -3351,6 +3358,7 @@ namespace NCC.Extend.LqKdKdjlb
var memberIds = pagedData.list.Where(x => !string.IsNullOrEmpty(x.MemberId)).Select(x => x.MemberId).Distinct().ToList();
var activityIds = pagedData.list.Where(x => !string.IsNullOrEmpty(x.ActivityId)).Select(x => x.ActivityId).Distinct().ToList();
var projectIds = pagedData.list.Where(x => !string.IsNullOrEmpty(x.Px)).Select(x => x.Px).Distinct().ToList();
+ var billingIds = pagedData.list.Where(x => !string.IsNullOrEmpty(x.Glkdbh)).Select(x => x.Glkdbh).Distinct().ToList();
// 批量查询会员信息
var memberDict = new Dictionary();
@@ -3376,6 +3384,23 @@ namespace NCC.Extend.LqKdKdjlb
projectDict = projects.ToDictionary(x => x.Id, x => x.Qt2 ?? "");
}
+ // 批量查询开单记录,获取门店ID
+ var billingStoreDict = new Dictionary();
+ if (billingIds.Any())
+ {
+ var billings = await _db.Queryable().Where(x => billingIds.Contains(x.Id)).Select(x => new { x.Id, x.Djmd }).ToListAsync();
+ billingStoreDict = billings.ToDictionary(x => x.Id, x => x.Djmd ?? "");
+ }
+
+ // 批量查询门店信息
+ var storeDict = new Dictionary();
+ var storeIds = billingStoreDict.Values.Where(x => !string.IsNullOrEmpty(x)).Distinct().ToList();
+ if (storeIds.Any())
+ {
+ var stores = await _db.Queryable().Where(x => storeIds.Contains(x.Id)).Select(x => new { x.Id, x.Dm }).ToListAsync();
+ storeDict = stores.ToDictionary(x => x.Id, x => x.Dm ?? "");
+ }
+
// 5. 组装返回数据
var resultList = pagedData.list.Select(pxmx => new BillingItemDetailListOutput
{
@@ -3390,7 +3415,9 @@ namespace NCC.Extend.LqKdKdjlb
actualPrice = pxmx.ActualPrice,
projectNumber = pxmx.ProjectNumber,
sourceType = pxmx.SourceType,
- remark = pxmx.Remark
+ remark = pxmx.Remark,
+ storeId = pxmx.Glkdbh != null && billingStoreDict.ContainsKey(pxmx.Glkdbh) ? billingStoreDict[pxmx.Glkdbh] : "",
+ storeName = pxmx.Glkdbh != null && billingStoreDict.ContainsKey(pxmx.Glkdbh) && !string.IsNullOrEmpty(billingStoreDict[pxmx.Glkdbh]) && storeDict.ContainsKey(billingStoreDict[pxmx.Glkdbh]) ? storeDict[billingStoreDict[pxmx.Glkdbh]] : ""
}).ToList();
// 6. 返回分页结果
--
libgit2 0.21.4