Просмотр исходного кода

fix: 修复残疾人企业查询分页时 companyName 筛选条件未正确应用的问题

问题:当只使用 companyName 筛选条件时,count 查询返回的是未筛选的总数,
导致分页计算错误,第二页及之后显示无数据。

原因:count 查询中的 companyName 被错误地放在 hasUnionFilter 条件块内,
只有当存在 name/idCard/platformId 筛选时才会应用。

修复:将 companyName 筛选条件移出 hasUnionFilter 块,作为独立的 AND 条件处理,
与主查询保持一致。

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 неделя назад
Родитель
Сommit
54993df726

+ 4 - 4
allin-packages/disability-module/src/services/disabled-person.service.ts

@@ -1139,15 +1139,15 @@ export class DisabledPersonService extends GenericCrudService<DisabledPerson> {
         unionConditions.push('order.platformId = :platformId');
         parameters.platformId = platformId;
       }
-      if (companyName) {
-        unionConditions.push('company.companyName LIKE :companyName');
-        parameters.companyName = `%${companyName}%`;
-      }
 
       if (unionConditions.length > 0) {
         countQueryBuilder.andWhere(`(${unionConditions.join(' OR ')})`, parameters);
       }
     }
+    // 公司名称筛选:使用 AND 逻辑(独立筛选条件,与主查询保持一致)
+    if (companyName) {
+      countQueryBuilder.andWhere('company.companyName LIKE :companyName', { companyName: `%${companyName}%` });
+    }
 
     if (gender) {
       countQueryBuilder.andWhere('person.gender = :gender', { gender });