Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-30-wuzilong.md
T
2025-07-30 22:15:31 +08:00

2.4 KiB

学生信息导出功能参数获取问题修复

变更时间: 2025-07-30 19:45:00
变更人员: wuzilong
变更类型: Bug修复

问题描述

在学生信息导出功能中,queryPageListExportByDeptId 方法接收到的 params 参数为空,导致无法正确获取部门ID进行权限过滤。

问题现象

  • 前端传递参数:{"deptId":["1947944113418752001"],"pageSize":["10"],"pageNum":["1"]}
  • 后端日志显示:params: {}
  • 导致权限过滤失效,无法正确导出数据

根本原因

  1. 参数名称不匹配:前端使用驼峰命名 deptId,后端查找下划线命名 dept_id
  2. 参数获取逻辑不完善:只支持单一参数名称格式

修复方案

1. 修改参数获取逻辑

在 XgStudentMsgController.java 的 export 和 listByDeptId 方法中,支持多种参数名称格式:

// 支持多种参数名称:deptId(驼峰)和 dept_id(下划线)
Object deptIdValue = null;
if (requestBody.containsKey("deptId") && requestBody.get("deptId") != null) {
    deptIdValue = requestBody.get("deptId");
} else if (requestBody.containsKey("dept_id") && requestBody.get("dept_id") != null) {
    deptIdValue = requestBody.get("dept_id");
}

if (deptIdValue != null) {
    deptParams.put("dept_id", deptIdValue);
}

2. 添加调试日志

在 export 方法中添加调试日志,便于问题排查:

// 添加调试日志
log.info("export方法 - requestBody: {}", requestBody);
log.info("export方法 - deptParams: {}", deptParams);

3. 添加日志支持

  • 导入 lombok.extern.slf4j.Slf4j
  • 在类上添加 @Slf4j 注解

修改文件

  1. backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgStudentMsgController.java
    • 修改 export 方法的参数获取逻辑
    • 修改 listByDeptId 方法的参数获取逻辑
    • 添加日志支持和调试日志

测试验证

修复后,应该能够:

  1. 正确获取前端传递的 deptId 参数
  2. 在 queryPageListExportByDeptId 方法中接收到正确的 params 参数
  3. 权限过滤功能正常工作
  4. 导出功能按预期执行

影响范围

  • 正面影响:修复了学生信息导出功能的参数获取问题
  • 无负面影响:向后兼容,同时支持驼峰和下划线命名格式

相关文档

  • 学生信息管理API文档
  • 权限管理相关文档