Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-17-cursor-question-search-id.md
T

1.9 KiB

变更管理记录:修复问卷题库查询接口的ID参数不生效问题

日期: 2025-07-17 15:30:45
类型: Bug修复
开发人员: Cursor

问题描述

问卷题库查询接口(/hq/satQuestion/list)在使用ID参数进行查询时,无论传递什么ID值都返回相同的结果。例如:

  • 请求1: http://localhost/dev-api/hq/satQuestion/list?pageSize=1&pageNum=1&id=1937751675921375243
  • 请求2: http://localhost/dev-api/hq/satQuestion/list?pageSize=1&pageNum=1&id=1937751675921375248

这两个请求返回相同的数据,这表明ID参数没有被正确应用到查询条件中。

原因分析

在HqSatQuestionServiceImpl类的buildQueryWrapper方法中,没有对id参数进行处理,导致无论传递什么ID值,都会忽略ID条件,返回相同的查询结果。

修改内容

在HqSatQuestionServiceImpl类的buildQueryWrapper方法中添加ID查询条件:

private LambdaQueryWrapper<HqSatQuestion> buildQueryWrapper(HqSatQuestionBo bo) {
    Map<String, Object> params = bo.getParams();
    LambdaQueryWrapper<HqSatQuestion> lqw = Wrappers.lambdaQuery();
    lqw.orderByAsc(HqSatQuestion::getId);
    // 添加ID查询条件
    lqw.eq(bo.getId() != null, HqSatQuestion::getId, bo.getId());
    // ... 其他查询条件 ...
    return lqw;
}

影响范围

  • 涉及文件: backend/ruoyi-modules/ruoyi-hq/src/main/java/org/dromara/hq/service/impl/HqSatQuestionServiceImpl.java
  • 影响接口: /hq/satQuestion/list
  • 影响功能: 问卷题目查询功能,通过ID查询问卷题目

测试结果

修改后,通过不同ID参数调用接口可以正确返回对应ID的题目数据,或者在ID不存在时返回空列表。

注意事项

这个问题可能会影响到其他基于同样模式实现的查询接口,建议检查其他查询接口的实现,确保都正确处理了ID参数。