个人冲刺第一阶段项目任务
团队作业个人冲刺第一阶段总结
一、任务完成情况
-
核心功能模块开发
- 设备管理模块(CRUD+分页查询)
- 维修工单模块(提交/查询/更新)
- 用户登录认证(JWT+MD5加密)
- 统一响应封装(Result/PageBean)
-
代码贡献统计
- 控制器层:3个完整Controller(300+行)
- 数据访问层:Mapper接口+SQL提供类
- 实体类:2个POJO(Device/RepairManager)
- 工具类:参与Result/PageBean设计
-
技术方案落地
graph TD A[前端] -->|Axios| B[SpringBoot] B -->|MyBatis| C[MySQL] B --> D[Redis缓存] B --> E[JWT鉴权]
二、关键技术实现解析
-
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)
-
动态SQL构建
// DeviceSqlProvider示例 WHERE("device_code LIKE CONCAT('%', #{deviceCode}, '%')") if (status != null) { WHERE("status = #{status}") }- 采用MyBatis的
@SelectProvider动态生成SQL - 实现多条件模糊查询+分页
- 采用MyBatis的
-
安全控制
// 登录认证流程 String token = JwtUtil.genToken(claims); // 密码加密存储 String encryptedPwd = Md5Util.getMD5String(password);- JWT无状态认证
- MD5密码加密存储
- 参数校验(
@Pattern(regexp = "^\\S{5,16}$"))
-
异常处理机制
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状态码精准返回
三、特色功能实现
-
智能分页查询
SELECT * FROM device WHERE device_name LIKE '%空调%' ORDER BY id DESC LIMIT 0, 10- 支持多字段组合查询
- 后端计算分页偏移量
-
工单状态机设计
// 维修工单状态流转 repairManager.setStatus(0); // 0-待处理 repairManager.setStatus(1); // 1-处理中 repairManager.setStatus(2); // 2-已完成 -
跨域解决方案
@CrossOrigin(origins = "http://localhost:5173") public class DevicesController {...}- 精确控制允许访问的源
四、待改进点
-
性能优化
- 添加Redis缓存查询结果
- 实现批量操作接口
-
安全增强
- 添加接口限流
- 实现操作日志审计
-
功能扩展
- 设备二维码生成
- 维修进度推送通知
五、技术栈总结
| 技术分类 | 具体实现 |
|---|---|
| 后端框架 | SpringBoot 3.x |
| 数据访问 | MyBatis + 动态SQL |
| 安全认证 | JWT + MD5 |
| 接口规范 | RESTful + 统一响应封装 |
| 辅助工具 | Lombok + PageHelper |
项目亮点:通过DeviceSqlProvider实现的高度灵活查询方案,可支持未来新增查询条件无需修改Mapper接口,体现了良好的扩展性设计。

浙公网安备 33010602011771号