Files
mqtt_power/LogBook.md
2025-05-18 19:52:17 +08:00

33 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 2024-07-29 (用户激活码功能 - 后端主体)
- **核心业务逻辑实现 (Service & Impl)**:
- 创建 `ActivationCodeService.java` 接口,定义了激活码生成 (`generateCodes`)、兑换 (`redeemCode`) 和查询条件构建 (`getQueryWrapper`) 的方法。
- 创建 `ActivationCodeServiceImpl.java` 实现类:
- `generateCodes`: 实现批量生成激活码的逻辑,使用 UUID 生成唯一码,支持自定义数量、面值、过期时间和批次号,并进行批量保存。
- `redeemCode`: 实现用户兑换激活码的逻辑,包含参数校验、激活码状态(是否存在、已用、过期)校验,调用 `UserService.increaseBalance()` 增加用户余额,并更新激活码状态。整个过程使用 `@Transactional` 保证事务原子性。
- `getQueryWrapper`: 根据 `ActivationCodeQueryRequest` 中的各种条件如激活码、使用状态、批次号、用户ID、面值范围、过期时间范围、创建时间范围构建 MyBatis Plus 查询条件,并处理排序(默认按创建时间降序)。
- **数据传输对象 (DTO) & 视图对象 (VO)**:
-`com.yupi.project.model.dto.activationcode` 包下创建了以下 DTO
- `RedeemCodeRequest.java`: 用户兑换激活码请求 (包含 `code`)。
- `GenerateCodesRequest.java`: 管理员生成激活码请求 (包含 `count`, `value`, `expireTime`, `batchId`)。
- `ActivationCodeQueryRequest.java`: 管理员查询激活码请求,继承自 `PageRequest`,包含多种筛选条件。
-`com.yupi.project.model.vo` 包下创建了 `ActivationCodeVO.java`:
- 包含激活码详细信息,并为已使用的激活码增加了 `userName` 字段(用于显示使用者用户名),日期时间字段使用 `@JsonFormat` 格式化。
- **API 控制器 (Controller)**:
- 创建 `ActivationCodeController.java`,定义了以下 RESTful API 接口:
- `POST /api/activation-code/redeem`: 用户兑换激活码接口。需要用户登录。调用 `activationCodeService.redeemCode`
- `POST /api/activation-code/admin/generate`: 管理员批量生成激活码接口。使用 `@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)` 进行权限控制。调用 `activationCodeService.generateCodes`
- `POST /api/activation-code/admin/list/page`: 管理员分页查询激活码接口。使用 `@AuthCheck(mustRole = UserConstant.ADMIN_ROLE)` 进行权限控制。调用 `activationCodeService.page``getQueryWrapper`,并实现 `Page<ActivationCode>``Page<ActivationCodeVO>` 的转换逻辑,包括填充 `userName`
- **依赖注入与注解**:
- 正确使用了 `@Service`, `@Resource`, `@RestController`, `@RequestMapping`, `@PostMapping`, `@RequestBody`, `@AuthCheck`, `@Transactional`, `@Slf4j` 等注解。
- **项目结构**: 相关类已放置在规范的包路径下。
- **待办与后续**:
- 编写 API 文档 (Swagger/OpenAPI)。
- 编写单元测试和集成测试。
- 前端页面对接和开发。
- 根据实际测试反馈进一步完善错误处理和日志。