47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
# 变更管理记录:修复问卷题库查询接口的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查询条件:
|
|
|
|
```java
|
|
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参数。 |