Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-24-cursor.md
T
2025-07-26 17:54:01 +08:00

3.8 KiB

代码调整记录 - 2025-07-24 - Cursor

📋 调整概览

  • 调整日期: 2025-07-24 10:30:00
  • 调整人员: Cursor AI
  • 调整模块: 系统管理 - 用户信息管理
  • 调整类型: 功能增强

🎯 本次调整

1. 用户信息更新同步学生信息功能

文件: backend/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

调整内容

  1. 导入新增:

    • 添加 JdbcTemplate 相关导入
    • 添加 @Autowired 注解导入
  2. 依赖注入:

    @Autowired
    private JdbcTemplate jdbcTemplate;
    
  3. 方法增强: updateUserProfile() 方法

    • 添加 @Transactional 事务控制
    • 新增学生信息同步逻辑
    • 当 accountType = "2" 时自动更新 xg_student_msg 表

实现逻辑

// 判断账号类型为学生(accountType = "2")时,同步更新学生信息表
if ("2".equals(user.getAccountType()) && result > 0) {
    try {
        String updateSql = "UPDATE xg_student_msg SET " +
                "name = ?, email = ?, gender = ?, phone = ?, update_time = NOW() " +
                "WHERE id = ? AND deleted = 0";
        
        jdbcTemplate.update(updateSql,
                user.getNickName(),  // 昵称对应学生姓名
                user.getEmail(),     // 邮箱
                user.getSex(),       // 性别
                user.getPhonenumber(), // 手机号
                user.getUserId()     // 用户ID对应学生ID
        );
    } catch (Exception e) {
        // 异常处理和日志记录
    }
}

字段映射关系

用户表字段 学生表字段 说明
nickName name 用户昵称 → 学生姓名
email email 邮箱地址
sex gender 性别信息
phonenumber phone 手机号码
userId id 用户ID → 学生ID

✅ 功能特性

🔐 安全控制

  • ✅ 条件判断: 仅当 accountType = "2" 时执行同步
  • ✅ 事务控制: 确保数据一致性
  • ✅ 异常隔离: 学生信息更新失败不影响用户信息更新

📊 数据同步

  • ✅ 实时同步: 用户信息更新时自动同步学生信息
  • ✅ 逻辑删除: 仅更新未删除的学生记录 (deleted = 0)
  • ✅ 时间戳: 自动更新修改时间

📝 操作日志

  • ✅ 成功日志: 记录同步成功信息
  • ✅ 错误日志: 记录同步失败详情
  • ✅ 用户ID: 便于问题排查

🧪 测试建议

测试场景

  1. 正常场景: 学生用户(accountType = "2")更新个人信息
  2. 条件验证: 非学生用户更新信息时不触发同步
  3. 异常处理: 学生表不存在对应记录时的处理
  4. 事务验证: 确保同步失败时不影响用户信息更新

测试数据

-- 测试用户数据 (accountType = "2")
UPDATE sys_user SET account_type = '2' WHERE user_id = 123;

-- 对应学生数据
SELECT * FROM xg_student_msg WHERE id = 123;

📖 相关文档

更新的文档

  • 需要更新: API文档 - 用户信息管理部分
  • 需要更新: 学生信息管理相关文档

参考规范

  • 数据库规范: docs/设计文档/database/mysql-database-standard.md
  • 后端开发规范: .cursor/cursorrules-backend.md

🔄 后续计划

优化建议

  1. 性能优化: 考虑批量更新场景的优化
  2. 监控告警: 添加同步失败的监控机制
  3. 配置化: 将同步逻辑配置化,支持开关控制

扩展功能

  1. 双向同步: 考虑学生信息更新时反向同步用户信息
  2. 字段扩展: 支持更多字段的自动同步
  3. 异步同步: 对于非关键更新采用异步同步机制

✅ 调整状态: 已完成
🔍 验证状态: 待测试
📝 文档状态: 已记录