2.8 KiB
2.8 KiB
Implementation Plan: Float Ball Migration
Overview
将悬浮球功能从 PHP 后端迁移到 .NET 10 后端,包括数据库表创建、数据迁移脚本和 API 接口实现。
Tasks
-
1. 创建数据库表和 Entity 配置
-
1.1 创建 SQL Server 表
float_ball_configs- 在 SQL Server 中执行建表语句
- 包含所有必要字段和约束
- Requirements: 1.1, 1.2, 1.3, 1.4
-
1.2 创建 FloatBallConfig 实体类
- 在
HoneyBox.Model/Entities/目录创建FloatBallConfig.cs - 定义所有属性和数据类型
- Requirements: 4.1, 4.4
- 在
-
1.3 配置 DbContext
- 在
HoneyBoxDbContext.cs中添加DbSet<FloatBallConfig> - 配置 Fluent API 映射
- Requirements: 4.2, 4.3
- 在
-
-
2. 创建数据迁移脚本
-
2.1 创建
migrate_float_ball.js迁移脚本- 参考
migrate_coupons.js的模式 - 实现 MySQL 到 SQL Server 的数据迁移
- 支持增量迁移(跳过已迁移记录)
- 包含错误处理和日志记录
- Requirements: 2.1, 2.2, 2.3, 2.5, 2.6
- 参考
-
2.2 执行数据迁移并验证
- 运行迁移脚本
- 验证记录数一致性
- Requirements: 2.4
-
-
3. 实现 API 接口
-
3.1 创建 FloatBallResponse DTO
- 在
HoneyBox.Model/Models/FloatBall/目录创建响应模型 - 排除 status, created_at, updated_at 字段
- Requirements: 3.3, 3.4
- 在
-
3.2 创建 IFloatBallService 接口和实现
- 在
HoneyBox.Core/Interfaces/创建接口 - 在
HoneyBox.Core/Services/创建实现 - 实现 GetEnabledFloatBallsAsync 方法
- Requirements: 3.1, 3.2
- 在
-
3.3 创建 API 端点
- 在
ConfigController.cs或新建FloatBallController.cs添加端点 - 实现
GET /api/getFloatBall接口 - 设置
[AllowAnonymous]属性 - Requirements: 3.5, 3.6, 5.1, 5.2, 5.3
- 在
-
3.4 注册服务依赖
- 在 Autofac 模块中注册 IFloatBallService
- Requirements: 4.3
-
-
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]属性