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 3339 .WhereIF(!string.IsNullOrEmpty(input.SourceType), pxmx => pxmx.SourceType == input.SourceType);
3340 3340  
3341 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 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 3349 // 4. 批量查询关联数据
3356 3350 var itemIds = pagedData.list.Select(x => x.Id).ToList();
... ... @@ -3362,10 +3356,7 @@ namespace NCC.Extend.LqKdKdjlb
3362 3356 var memberDict = new Dictionary<string, (string Name, string Phone)>();
3363 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 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 3364 var activityDict = new Dictionary<string, string>();
3374 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 3368 activityDict = activities.ToDictionary(x => x.Id, x => x.ActivityName ?? "");
3381 3369 }
3382 3370  
... ... @@ -3384,10 +3372,7 @@ namespace NCC.Extend.LqKdKdjlb
3384 3372 var projectDict = new Dictionary<string, string>();
3385 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 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 817 }
818 818 #endregion
819 819  
  820 +
820 821 }
821 822 /// <summary>
822 823 /// 品项统计数据(内部类)
... ...