From 0fae5e6f96151f2b8d90319c6d10346e9af5e1b1 Mon Sep 17 00:00:00 2001 From: “wangming” <“wangming@antissoft.com”> Date: Sat, 15 Nov 2025 22:09:50 +0800 Subject: [PATCH] refactor: 优化查询逻辑和代码结构 --- netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs | 29 +++++++---------------------- netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs | 1 + 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs index 27806f2..a81735b 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs @@ -3339,18 +3339,12 @@ namespace NCC.Extend.LqKdKdjlb .WhereIF(!string.IsNullOrEmpty(input.SourceType), pxmx => pxmx.SourceType == input.SourceType); // 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()); + 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()); // 3. 先分页查询主表数据(查询实体类,提高性能) - var pagedData = await baseQuery - .OrderBy(sidx + " " + sort) - .ToPagedListAsync(input.currentPage, input.pageSize); + var pagedData = await baseQuery.OrderBy(sidx + " " + sort).ToPagedListAsync(input.currentPage, input.pageSize); // 4. 批量查询关联数据 var itemIds = pagedData.list.Select(x => x.Id).ToList(); @@ -3362,10 +3356,7 @@ namespace NCC.Extend.LqKdKdjlb var memberDict = new Dictionary(); if (memberIds.Any()) { - var members = await _db.Queryable() - .Where(x => memberIds.Contains(x.Id)) - .Select(x => new { x.Id, x.Khmc, x.Sjh }) - .ToListAsync(); + var members = await _db.Queryable().Where(x => memberIds.Contains(x.Id)).Select(x => new { x.Id, x.Khmc, x.Sjh }).ToListAsync(); memberDict = members.ToDictionary(x => x.Id, x => (x.Khmc ?? "", x.Sjh ?? "")); } @@ -3373,10 +3364,7 @@ namespace NCC.Extend.LqKdKdjlb var activityDict = new Dictionary(); if (activityIds.Any()) { - var activities = await _db.Queryable() - .Where(x => activityIds.Contains(x.Id)) - .Select(x => new { x.Id, x.ActivityName }) - .ToListAsync(); + var activities = await _db.Queryable().Where(x => activityIds.Contains(x.Id)).Select(x => new { x.Id, x.ActivityName }).ToListAsync(); activityDict = activities.ToDictionary(x => x.Id, x => x.ActivityName ?? ""); } @@ -3384,10 +3372,7 @@ namespace NCC.Extend.LqKdKdjlb var projectDict = new Dictionary(); if (projectIds.Any()) { - var projects = await _db.Queryable() - .Where(x => projectIds.Contains(x.Id)) - .Select(x => new { x.Id, x.Qt2 }) - .ToListAsync(); + var projects = await _db.Queryable().Where(x => projectIds.Contains(x.Id)).Select(x => new { x.Id, x.Qt2 }).ToListAsync(); projectDict = projects.ToDictionary(x => x.Id, x => x.Qt2 ?? ""); } diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs index fe7cb99..10427a9 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs @@ -817,6 +817,7 @@ namespace NCC.Extend.LqXmzl } #endregion + } /// /// 品项统计数据(内部类) -- libgit2 0.21.4