4.7 KiB
4.7 KiB
Implementation Plan: CDK Activation
Overview
本计划将 CDK 激活功能分解为数据库、后端 API、后台管理、小程序前端四个部分,按顺序实现。
Tasks
-
1. 数据库表结构创建
- 1.1 创建 T_CDKs 表
- 包含 Id, Code, BatchNo, Status, UsedByUserId, UsedAt, CreatedAt, Remark 字段
- Code 字段添加唯一索引
- Requirements: 3.1, 3.2
- 1.2 创建 T_SystemSettings 表
- 包含 Id, SettingKey, SettingValue, Description, UpdatedAt 字段
- SettingKey 字段添加唯一索引
- 插入 CDK 功能开关默认配置
- Requirements: 4.1
- 1.3 修改 T_Users 表
- 新增 IsCdkActivated (BIT, 默认0) 字段
- 新增 CdkActivatedAt (DATETIME2) 字段
- Requirements: 2.3
- 1.1 创建 T_CDKs 表
-
2. 小程序 API 后端实现
- 2.1 创建实体类和 DTO
- 在 LiveForum.Model 中创建 T_CDKs.cs 和 T_SystemSettings.cs
- 创建 CdkActivateReq.cs 和 CdkStatusDto.cs
- Requirements: 2.1
- 2.2 创建 CDK 服务接口和实现
- 在 LiveForum.IService 中创建 ICdkService.cs
- 在 LiveForum.Service 中创建 CdkService.cs
- 实现 CheckCdkStatus、ActivateCdk 方法
- Requirements: 2.1, 2.2, 2.3, 2.4, 2.5
- 2.3 创建系统设置服务
- 创建 ISystemSettingsService.cs 和 SystemSettingsService.cs
- 实现 GetSetting、SetSetting 方法
- Requirements: 4.1, 4.2, 4.3
- 2.4 创建 CdkController
- 实现 GET /api/cdk/check-status 接口
- 实现 POST /api/cdk/activate 接口
- Requirements: 1.3, 2.1, 2.2, 2.3, 2.4
- 2.5 修改互动操作接口添加 CDK 检查
- 修改 PostsController 发帖接口
- 修改 PostCommentsController 回帖接口
- 修改 FlowersController 送花接口
- 添加 CDK 激活状态检查逻辑
- Requirements: 1.1, 1.2, 1.3
- 2.6 编写属性测试 - CDK 激活成功更新状态
- Property 2: CDK 激活成功更新状态
- Validates: Requirements 2.3, 2.5
- 2.7 编写属性测试 - CDK 唯一性验证
- Property 3: CDK 唯一性验证
- Validates: Requirements 2.2, 3.2
- 2.1 创建实体类和 DTO
-
3. Checkpoint - 小程序 API 完成
- 确保所有测试通过,如有问题请提出
-
4. 后台管理 API 实现
- 4.1 创建后台实体类和 DTO
- 在 ZR.LiveForum.Model 中创建 CDK 相关模型
- 创建 CdkGenerateReq.cs、CdkListDto.cs
- Requirements: 3.1, 3.3, 3.4
- 4.2 创建后台 CDK 服务
- 实现 GenerateCdks 批量生成方法
- 实现 GetCdkList 分页查询方法
- 实现 CDK 码生成算法(格式:XXXX-XXXX-XXXX)
- Requirements: 3.1, 3.2, 3.3, 3.4
- 4.3 创建后台 CdkController
- 实现 POST /api/admin/cdk/generate 接口
- 实现 GET /api/admin/cdk/list 接口
- Requirements: 3.1, 3.3, 3.4
- 4.4 创建后台系统设置接口
- 实现 PUT /api/admin/settings/cdk-enabled 接口
- 实现 GET /api/admin/settings/cdk-enabled 接口
- Requirements: 4.1
- 4.5 编写属性测试 - CDK 批量生成唯一性
- Property 5: CDK 批量生成唯一性
- Validates: Requirements 3.1
- 4.1 创建后台实体类和 DTO
-
5. Checkpoint - 后台 API 完成
- 确保所有测试通过,如有问题请提出
-
6. 后台管理前端实现
- 6.1 创建 CDK 管理页面
- 在 ZR.Vue 中创建 cdk/index.vue 页面
- 实现 CDK 列表展示(分页、筛选)
- 实现批量生成 CDK 功能
- Requirements: 3.1, 3.3, 3.4
- 6.2 创建系统设置页面
- 添加 CDK 功能开关配置项
- 实现开关切换功能
- Requirements: 4.1
- 6.3 配置路由和菜单
- 添加 CDK 管理菜单项
- 配置页面路由
- Requirements: 3.4
- 6.1 创建 CDK 管理页面
-
7. Checkpoint - 后台前端完成
- 确保页面功能正常,如有问题请提出
-
8. 小程序前端实现
- 8.1 创建 CDK 激活弹窗组件
- 创建 CdkActivateModal.vue 组件
- 实现 CDK 输入和激活功能
- 处理各种激活结果提示
- Requirements: 1.3, 2.1, 2.2, 2.3, 2.4
- 8.2 创建 CDK 状态管理
- 在 store 中添加 CDK 状态管理
- 登录后自动检查 CDK 状态
- Requirements: 1.1, 1.2
- 8.3 修改互动操作触发 CDK 检查
- 修改发帖页面添加 CDK 检查
- 修改回帖功能添加 CDK 检查
- 修改送花功能添加 CDK 检查
- 未激活时弹出激活弹窗
- Requirements: 1.2, 1.3
- 8.1 创建 CDK 激活弹窗组件
-
9. Final Checkpoint - 全部完成
- 确保所有功能正常,如有问题请提出
Notes
- 所有任务都是必需的,包括测试任务
- 每个任务都关联了具体的需求编号,便于追溯
- Checkpoint 用于阶段性验证,确保增量开发的正确性
- 属性测试验证核心正确性属性