85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
# Implementation Plan: Float Ball Migration
|
|
|
|
## Overview
|
|
|
|
将悬浮球功能从 PHP 后端迁移到 .NET 10 后端,包括数据库表创建、数据迁移脚本和 API 接口实现。
|
|
|
|
## Tasks
|
|
|
|
- [x] 1. 创建数据库表和 Entity 配置
|
|
- [x] 1.1 创建 SQL Server 表 `float_ball_configs`
|
|
- 在 SQL Server 中执行建表语句
|
|
- 包含所有必要字段和约束
|
|
- _Requirements: 1.1, 1.2, 1.3, 1.4_
|
|
|
|
- [x] 1.2 创建 FloatBallConfig 实体类
|
|
- 在 `HoneyBox.Model/Entities/` 目录创建 `FloatBallConfig.cs`
|
|
- 定义所有属性和数据类型
|
|
- _Requirements: 4.1, 4.4_
|
|
|
|
- [x] 1.3 配置 DbContext
|
|
- 在 `HoneyBoxDbContext.cs` 中添加 `DbSet<FloatBallConfig>`
|
|
- 配置 Fluent API 映射
|
|
- _Requirements: 4.2, 4.3_
|
|
|
|
- [x] 2. 创建数据迁移脚本
|
|
- [x] 2.1 创建 `migrate_float_ball.js` 迁移脚本
|
|
- 参考 `migrate_coupons.js` 的模式
|
|
- 实现 MySQL 到 SQL Server 的数据迁移
|
|
- 支持增量迁移(跳过已迁移记录)
|
|
- 包含错误处理和日志记录
|
|
- _Requirements: 2.1, 2.2, 2.3, 2.5, 2.6_
|
|
|
|
- [x] 2.2 执行数据迁移并验证
|
|
- 运行迁移脚本
|
|
- 验证记录数一致性
|
|
- _Requirements: 2.4_
|
|
|
|
- [x] 3. 实现 API 接口
|
|
- [x] 3.1 创建 FloatBallResponse DTO
|
|
- 在 `HoneyBox.Model/Models/FloatBall/` 目录创建响应模型
|
|
- 排除 status, created_at, updated_at 字段
|
|
- _Requirements: 3.3, 3.4_
|
|
|
|
- [x] 3.2 创建 IFloatBallService 接口和实现
|
|
- 在 `HoneyBox.Core/Interfaces/` 创建接口
|
|
- 在 `HoneyBox.Core/Services/` 创建实现
|
|
- 实现 GetEnabledFloatBallsAsync 方法
|
|
- _Requirements: 3.1, 3.2_
|
|
|
|
- [x] 3.3 创建 API 端点
|
|
- 在 `ConfigController.cs` 或新建 `FloatBallController.cs` 添加端点
|
|
- 实现 `GET /api/getFloatBall` 接口
|
|
- 设置 `[AllowAnonymous]` 属性
|
|
- _Requirements: 3.5, 3.6, 5.1, 5.2, 5.3_
|
|
|
|
- [x] 3.4 注册服务依赖
|
|
- 在 Autofac 模块中注册 IFloatBallService
|
|
- _Requirements: 4.3_
|
|
|
|
- [x] 4. Checkpoint - 验证功能
|
|
- 确保所有代码编译通过
|
|
- 测试 API 接口返回正确数据
|
|
- 验证响应格式与 PHP 后端一致
|
|
- 如有问题请询问用户
|
|
|
|
- [ ]* 5. 编写测试
|
|
- [ ]* 5.1 编写单元测试
|
|
- 测试 FloatBallService 只返回启用的配置
|
|
- 测试空结果场景
|
|
- **Property 4: API Returns Only Enabled Configurations**
|
|
- **Validates: Requirements 3.1, 3.2**
|
|
|
|
- [ ]* 5.2 编写集成测试
|
|
- 测试完整 API 端点
|
|
- 验证响应格式
|
|
- **Property 6: API Response Format Consistency**
|
|
- **Validates: Requirements 5.1, 5.2**
|
|
|
|
## Notes
|
|
|
|
- 任务标记 `*` 为可选任务,可跳过以加快 MVP 开发
|
|
- 每个任务引用具体需求以便追溯
|
|
- 数据迁移脚本参考现有的 `migrate_coupons.js` 模式
|
|
- API 端点无需认证,使用 `[AllowAnonymous]` 属性
|