Commit 0fae5e6f96151f2b8d90319c6d10346e9af5e1b1

Authored by “wangming”
1 parent e97f24a6

refactor: 优化查询逻辑和代码结构

- 合并多行查询条件,提升代码可读性
- 精简分页查询和关联数据查询的代码
- 确保查询性能的同时,保持功能一致性
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -3339,18 +3339,12 @@ namespace NCC.Extend.LqKdKdjlb @@ -3339,18 +3339,12 @@ namespace NCC.Extend.LqKdKdjlb
3339 .WhereIF(!string.IsNullOrEmpty(input.SourceType), pxmx => pxmx.SourceType == input.SourceType); 3339 .WhereIF(!string.IsNullOrEmpty(input.SourceType), pxmx => pxmx.SourceType == input.SourceType);
3340 3340
3341 // 2. 通过 EXISTS 子查询筛选关联字段(在分页前筛选,确保分页准确) 3341 // 2. 通过 EXISTS 子查询筛选关联字段(在分页前筛选,确保分页准确)
3342 - baseQuery = baseQuery  
3343 - .WhereIF(!string.IsNullOrEmpty(input.MemberName), pxmx =>  
3344 - SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == pxmx.MemberId && x.Khmc != null && x.Khmc.Contains(input.MemberName)).Any())  
3345 - .WhereIF(!string.IsNullOrEmpty(input.MemberPhone), pxmx =>  
3346 - SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == pxmx.MemberId && x.Sjh == input.MemberPhone).Any())  
3347 - .WhereIF(!string.IsNullOrEmpty(input.ItemType), pxmx =>  
3348 - SqlFunc.Subqueryable<LqXmzlEntity>().Where(x => x.Id == pxmx.Px && x.Fl4 == input.ItemType).Any()); 3342 + baseQuery = baseQuery.WhereIF(!string.IsNullOrEmpty(input.MemberName), pxmx => SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == pxmx.MemberId && x.Khmc != null && x.Khmc.Contains(input.MemberName)).Any())
  3343 + .WhereIF(!string.IsNullOrEmpty(input.MemberPhone), pxmx => SqlFunc.Subqueryable<LqKhxxEntity>().Where(x => x.Id == pxmx.MemberId && x.Sjh == input.MemberPhone).Any())
  3344 + .WhereIF(!string.IsNullOrEmpty(input.ItemType), pxmx => SqlFunc.Subqueryable<LqXmzlEntity>().Where(x => x.Id == pxmx.Px && x.Fl4 == input.ItemType).Any());
3349 3345
3350 // 3. 先分页查询主表数据(查询实体类,提高性能) 3346 // 3. 先分页查询主表数据(查询实体类,提高性能)
3351 - var pagedData = await baseQuery  
3352 - .OrderBy(sidx + " " + sort)  
3353 - .ToPagedListAsync(input.currentPage, input.pageSize); 3347 + var pagedData = await baseQuery.OrderBy(sidx + " " + sort).ToPagedListAsync(input.currentPage, input.pageSize);
3354 3348
3355 // 4. 批量查询关联数据 3349 // 4. 批量查询关联数据
3356 var itemIds = pagedData.list.Select(x => x.Id).ToList(); 3350 var itemIds = pagedData.list.Select(x => x.Id).ToList();
@@ -3362,10 +3356,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -3362,10 +3356,7 @@ namespace NCC.Extend.LqKdKdjlb
3362 var memberDict = new Dictionary<string, (string Name, string Phone)>(); 3356 var memberDict = new Dictionary<string, (string Name, string Phone)>();
3363 if (memberIds.Any()) 3357 if (memberIds.Any())
3364 { 3358 {
3365 - var members = await _db.Queryable<LqKhxxEntity>()  
3366 - .Where(x => memberIds.Contains(x.Id))  
3367 - .Select(x => new { x.Id, x.Khmc, x.Sjh })  
3368 - .ToListAsync(); 3359 + var members = await _db.Queryable<LqKhxxEntity>().Where(x => memberIds.Contains(x.Id)).Select(x => new { x.Id, x.Khmc, x.Sjh }).ToListAsync();
3369 memberDict = members.ToDictionary(x => x.Id, x => (x.Khmc ?? "", x.Sjh ?? "")); 3360 memberDict = members.ToDictionary(x => x.Id, x => (x.Khmc ?? "", x.Sjh ?? ""));
3370 } 3361 }
3371 3362
@@ -3373,10 +3364,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -3373,10 +3364,7 @@ namespace NCC.Extend.LqKdKdjlb
3373 var activityDict = new Dictionary<string, string>(); 3364 var activityDict = new Dictionary<string, string>();
3374 if (activityIds.Any()) 3365 if (activityIds.Any())
3375 { 3366 {
3376 - var activities = await _db.Queryable<LqPackageInfoEntity>()  
3377 - .Where(x => activityIds.Contains(x.Id))  
3378 - .Select(x => new { x.Id, x.ActivityName })  
3379 - .ToListAsync(); 3367 + var activities = await _db.Queryable<LqPackageInfoEntity>().Where(x => activityIds.Contains(x.Id)).Select(x => new { x.Id, x.ActivityName }).ToListAsync();
3380 activityDict = activities.ToDictionary(x => x.Id, x => x.ActivityName ?? ""); 3368 activityDict = activities.ToDictionary(x => x.Id, x => x.ActivityName ?? "");
3381 } 3369 }
3382 3370
@@ -3384,10 +3372,7 @@ namespace NCC.Extend.LqKdKdjlb @@ -3384,10 +3372,7 @@ namespace NCC.Extend.LqKdKdjlb
3384 var projectDict = new Dictionary<string, string>(); 3372 var projectDict = new Dictionary<string, string>();
3385 if (projectIds.Any()) 3373 if (projectIds.Any())
3386 { 3374 {
3387 - var projects = await _db.Queryable<LqXmzlEntity>()  
3388 - .Where(x => projectIds.Contains(x.Id))  
3389 - .Select(x => new { x.Id, x.Qt2 })  
3390 - .ToListAsync(); 3375 + var projects = await _db.Queryable<LqXmzlEntity>().Where(x => projectIds.Contains(x.Id)).Select(x => new { x.Id, x.Qt2 }).ToListAsync();
3391 projectDict = projects.ToDictionary(x => x.Id, x => x.Qt2 ?? ""); 3376 projectDict = projects.ToDictionary(x => x.Id, x => x.Qt2 ?? "");
3392 } 3377 }
3393 3378
netcore/src/Modularity/Extend/NCC.Extend/LqXmzlService.cs
@@ -817,6 +817,7 @@ namespace NCC.Extend.LqXmzl @@ -817,6 +817,7 @@ namespace NCC.Extend.LqXmzl
817 } 817 }
818 #endregion 818 #endregion
819 819
  820 +
820 } 821 }
821 /// <summary> 822 /// <summary>
822 /// 品项统计数据(内部类) 823 /// 品项统计数据(内部类)