接口测试-zlgl-SimpleSearch-修复说明.md 1.78 KB

zlgl SimpleSearch 无数据问题修复说明

问题现象

请求 /api/Extend/zlgl/SimpleSearch?currentPage=1&pageSize=10&fl=786180219823195397&sskhbh=781034840806917381 返回空列表,但该用户认为应有对应数据。

根因

  1. 数据库情况

    • zlgl 表存在 fl=786180219823195397 的资料(如:卧式五缸泵产品技术介绍)
    • khsb 表中关联该产品(fl=786180219823195397)的设备,其 sskhbh781034555321615621785683205549196549 等组织 ID
    • 传入的 sskhbh=781034840806917381 为用户 ID,与设备上的组织 ID 不一致
  2. 原逻辑缺陷

    • 仅用 k.Sskhbh.Contains(sskhbh) 做客户过滤
    • 未按用户所属组织扩展,导致用户所属组织下的设备被排除
    • 仅通过 Khsb.Fl 获取产品,未考虑 Khsb.Dysbbh = cpgl.Cpid 的关联方式(旧数据可能只有 dysbbh 无 fl)

修复内容

调整 ZlglService.GetSimpleSearchList 的客户权限逻辑,与 KhsbPermissionHelper 保持一致:

  1. sskhbh 扩展:调用 KhsbPermissionHelper.GetUserAllowedSskhbhIdsAsync,得到当前用户可查看的 sskhbh 集合(userId、所属组织、上级组织等)。
  2. 产品来源
    • 来源 1:Khsb.Fl(已填关联产品 ID 的设备)
    • 来源 2:Khsb.Dysbbh = cpgl.Cpid(通过产品编号关联的旧设备)
  3. 权限过滤:仅返回该用户可查看设备关联产品下的 zlgl 资料。

验证建议

  1. 使用同一 token 再次请求: GET /api/Extend/zlgl/SimpleSearch?currentPage=1&pageSize=10&fl=786180219823195397&sskhbh=781034840806917381
  2. 预期:用户 781034840806917381 若属于组织 781034555321615621(或其它已关联产品的组织),应能查到 fl=786180219823195397 的资料。