个人冲刺第一阶段项目任务

团队作业个人冲刺第一阶段总结

一、任务完成情况

  1. 核心功能模块开发

    • 设备管理模块(CRUD+分页查询)
    • 维修工单模块(提交/查询/更新)
    • 用户登录认证(JWT+MD5加密)
    • 统一响应封装(Result/PageBean)
  2. 代码贡献统计

    • 控制器层:3个完整Controller(300+行)
    • 数据访问层:Mapper接口+SQL提供类
    • 实体类:2个POJO(Device/RepairManager)
    • 工具类:参与Result/PageBean设计
  3. 技术方案落地

    graph TD A[前端] -->|Axios| B[SpringBoot] B -->|MyBatis| C[MySQL] B --> D[Redis缓存] B --> E[JWT鉴权]

二、关键技术实现解析

  1. RESTful API设计

    // 设备分页查询示例
    @GetMapping
    public Result<PageBean<Device>> list(
        @RequestParam Integer pageNum, 
        @RequestParam Integer pageSize,
        @RequestParam(required=false) String deviceCode) {
        // 实现逻辑
    }
    
    • 使用HTTP语义化动词(GET/POST/PUT/DELETE)
    • 统一返回Result包装类(code/message/data)
  2. 动态SQL构建

    // DeviceSqlProvider示例
    WHERE("device_code LIKE CONCAT('%', #{deviceCode}, '%')")
    if (status != null) {
        WHERE("status = #{status}")
    }
    
    • 采用MyBatis的@SelectProvider动态生成SQL
    • 实现多条件模糊查询+分页
  3. 安全控制

    // 登录认证流程
    String token = JwtUtil.genToken(claims);
    // 密码加密存储
    String encryptedPwd = Md5Util.getMD5String(password);
    
    • JWT无状态认证
    • MD5密码加密存储
    • 参数校验(@Pattern(regexp = "^\\S{5,16}$")
  4. 异常处理机制

    try {
        int result = deviceMapper.insert(device);
        return ResponseEntity.status(HttpStatus.CREATED)
                .body(Result.success(device));
    } catch (Exception e) {
        return ResponseEntity.status(500)
                .body(Result.error(e.getMessage()));
    }
    
    • 统一异常捕获
    • HTTP状态码精准返回

三、特色功能实现

  1. 智能分页查询

    SELECT * FROM device 
    WHERE device_name LIKE '%空调%' 
    ORDER BY id DESC 
    LIMIT 0, 10
    
    • 支持多字段组合查询
    • 后端计算分页偏移量
  2. 工单状态机设计

    // 维修工单状态流转
    repairManager.setStatus(0); // 0-待处理
    repairManager.setStatus(1); // 1-处理中
    repairManager.setStatus(2); // 2-已完成
    
  3. 跨域解决方案

    @CrossOrigin(origins = "http://localhost:5173")
    public class DevicesController {...}
    
    • 精确控制允许访问的源

四、待改进点

  1. 性能优化

    • 添加Redis缓存查询结果
    • 实现批量操作接口
  2. 安全增强

    • 添加接口限流
    • 实现操作日志审计
  3. 功能扩展

    • 设备二维码生成
    • 维修进度推送通知

五、技术栈总结

技术分类 具体实现
后端框架 SpringBoot 3.x
数据访问 MyBatis + 动态SQL
安全认证 JWT + MD5
接口规范 RESTful + 统一响应封装
辅助工具 Lombok + PageHelper

项目亮点:通过DeviceSqlProvider实现的高度灵活查询方案,可支持未来新增查询条件无需修改Mapper接口,体现了良好的扩展性设计。

posted @ 2025-04-18 21:09  haoyinuo  阅读(17)  评论(0)    收藏  举报