接口测试-zlgl-SimpleSearch-修复说明.md
1.78 KB
zlgl SimpleSearch 无数据问题修复说明
问题现象
请求 /api/Extend/zlgl/SimpleSearch?currentPage=1&pageSize=10&fl=786180219823195397&sskhbh=781034840806917381 返回空列表,但该用户认为应有对应数据。
根因
数据库情况:
zlgl表存在fl=786180219823195397的资料(如:卧式五缸泵产品技术介绍)khsb表中关联该产品(fl=786180219823195397)的设备,其sskhbh为781034555321615621、785683205549196549等组织 ID- 传入的
sskhbh=781034840806917381为用户 ID,与设备上的组织 ID 不一致
原逻辑缺陷:
- 仅用
k.Sskhbh.Contains(sskhbh)做客户过滤 - 未按用户所属组织扩展,导致用户所属组织下的设备被排除
- 仅通过
Khsb.Fl获取产品,未考虑Khsb.Dysbbh = cpgl.Cpid的关联方式(旧数据可能只有 dysbbh 无 fl)
- 仅用
修复内容
调整 ZlglService.GetSimpleSearchList 的客户权限逻辑,与 KhsbPermissionHelper 保持一致:
- sskhbh 扩展:调用
KhsbPermissionHelper.GetUserAllowedSskhbhIdsAsync,得到当前用户可查看的 sskhbh 集合(userId、所属组织、上级组织等)。 - 产品来源:
- 来源 1:
Khsb.Fl(已填关联产品 ID 的设备) - 来源 2:
Khsb.Dysbbh = cpgl.Cpid(通过产品编号关联的旧设备)
- 来源 1:
- 权限过滤:仅返回该用户可查看设备关联产品下的
zlgl资料。
验证建议
- 使用同一 token 再次请求:
GET /api/Extend/zlgl/SimpleSearch?currentPage=1&pageSize=10&fl=786180219823195397&sskhbh=781034840806917381 - 预期:用户 781034840806917381 若属于组织 781034555321615621(或其它已关联产品的组织),应能查到
fl=786180219823195397的资料。