live-forum/.kiro/specs/cdk-activation/tasks.md
2026-03-24 11:27:37 +08:00

4.7 KiB
Raw Blame History

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
  • 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
  • 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
  • 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
  • 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
  • 9. Final Checkpoint - 全部完成

    • 确保所有功能正常,如有问题请提出

Notes

  • 所有任务都是必需的,包括测试任务
  • 每个任务都关联了具体的需求编号,便于追溯
  • Checkpoint 用于阶段性验证,确保增量开发的正确性
  • 属性测试验证核心正确性属性