HaniBlindBox/.kiro/specs/api-migration-remaining/requirements.md
2026-01-03 19:38:08 +08:00

189 lines
9.9 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.

# Requirements Document
## Introduction
本文档定义了将剩余54个PHP API接口迁移到C# ASP.NET Core后端的需求。迁移工作遵循标准化流程分析PHP源码逻辑 → 验证SQL Server数据表 → 创建缺失数据表 → 实现C#接口代码。
## Glossary
- **PHP_Backend**: 原有的ThinkPHP 6.0后端系统,位于 `server/php/` 目录
- **CSharp_Backend**: 新的ASP.NET Core后端系统位于 `server/C#/HoneyBox/` 目录
- **Migration_Process**: 接口迁移流程,包含源码分析、数据表验证、代码实现三个阶段
- **MCP_SqlServer**: 用于查询SQL Server数据库结构的MCP工具
- **API_Endpoint**: 前端调用的HTTP接口端点
- **Entity**: C#中的数据库实体类,位于 `HoneyBox.Model/Entities/`
- **Controller**: C#中的API控制器位于 `HoneyBox.Api/Controllers/`
- **Service**: C#中的业务服务类,位于 `HoneyBox.Core/Services/`
## Requirements
### Requirement 1: 地址模块迁移 (7个接口)
**User Story:** As a 用户, I want 管理我的收货地址, so that 我可以在发货时选择正确的收货地址。
#### Acceptance Criteria
1. WHEN 用户调用 `/addAddress` 接口 THEN CSharp_Backend SHALL 创建新的收货地址记录并返回地址ID
2. WHEN 用户调用 `/updateAddress` 接口 THEN CSharp_Backend SHALL 更新指定地址的信息
3. WHEN 用户调用 `/getDefaultAddress` 接口 THEN CSharp_Backend SHALL 返回用户的默认收货地址
4. WHEN 用户调用 `/getAddressList` 接口 THEN CSharp_Backend SHALL 返回用户的所有收货地址列表
5. WHEN 用户调用 `/deleteAddress` 接口 THEN CSharp_Backend SHALL 删除指定的收货地址
6. WHEN 用户调用 `/setDefaultAddress` 接口 THEN CSharp_Backend SHALL 将指定地址设为默认地址
7. WHEN 用户调用 `/getAddressDetail` 接口 THEN CSharp_Backend SHALL 返回指定地址的详细信息
### Requirement 2: 支付模块迁移 (6个接口)
**User Story:** As a 用户, I want 使用多种支付方式完成交易, so that 我可以灵活选择支付方式。
#### Acceptance Criteria
1. WHEN 用户调用 `/wx_pay` 接口 THEN CSharp_Backend SHALL 调用微信支付API并返回支付参数
2. WHEN 用户调用 `/balance_pay` 接口 THEN CSharp_Backend SHALL 使用用户余额完成支付并更新余额
3. WHEN 用户调用 `/recharge` 接口 THEN CSharp_Backend SHALL 创建充值订单并返回支付参数
4. WHEN 用户调用 `/recharge_config` 接口 THEN CSharp_Backend SHALL 返回充值配置选项列表
5. WHEN 用户调用 `/create_recharge_order` 接口 THEN CSharp_Backend SHALL 创建充值订单记录
6. WHEN 用户调用 `/query_pay_status` 接口 THEN CSharp_Backend SHALL 返回订单的支付状态
### Requirement 3: 签到功能迁移 (3个接口)
**User Story:** As a 用户, I want 每日签到获取奖励, so that 我可以积累积分和其他福利。
#### Acceptance Criteria
1. WHEN 用户调用 `/sign_info` 接口 THEN CSharp_Backend SHALL 返回用户的签到状态和连续签到天数
2. WHEN 用户调用 `/sign` 接口 THEN CSharp_Backend SHALL 记录签到并发放对应奖励
3. WHEN 用户调用 `/sign_add` 接口 THEN CSharp_Backend SHALL 执行签到操作(旧版兼容)
### Requirement 4: 福利屋模块迁移 (2个接口)
**User Story:** As a 用户, I want 参与福利屋活动, so that 我可以用积分兑换奖品。
#### Acceptance Criteria
1. WHEN 用户调用 `/fuliwu` 接口 THEN CSharp_Backend SHALL 返回福利屋活动列表
2. WHEN 用户调用 `/fuliwu_buy` 接口 THEN CSharp_Backend SHALL 创建福利屋参与订单并扣除积分
### Requirement 5: 商品详情模块迁移 (5个接口)
**User Story:** As a 用户, I want 查看各类抽奖商品的详细信息, so that 我可以了解奖品内容后参与抽奖。
#### Acceptance Criteria
1. WHEN 用户调用 `/infinite_goodsdetail` 接口 THEN CSharp_Backend SHALL 返回无限赏商品的详细信息
2. WHEN 用户调用 `/goodsdetail` 接口(POST) THEN CSharp_Backend SHALL 返回一番赏商品的详细信息
3. WHEN 用户调用 `/infinite_goodsdetail2` 接口 THEN CSharp_Backend SHALL 返回连击赏商品的详细信息
4. WHEN 用户调用 `/shang_log` 接口 THEN CSharp_Backend SHALL 返回一番赏的中奖记录列表
5. WHEN 用户调用 `/ling_zhu_king` 接口 THEN CSharp_Backend SHALL 返回领主王活动数据
### Requirement 6: 订单模块迁移 (9个接口)
**User Story:** As a 用户, I want 管理我的订单和查看抽奖结果, so that 我可以跟踪订单状态和中奖情况。
#### Acceptance Criteria
1. WHEN 用户调用 `/get_order_status` 接口 THEN CSharp_Backend SHALL 返回指定订单的状态
2. WHEN 用户调用 `/get_order_list` 接口 THEN CSharp_Backend SHALL 返回用户的订单列表
3. WHEN 用户调用 `/create_web_pay_order` 接口 THEN CSharp_Backend SHALL 创建网页支付订单
4. WHEN 用户调用 `/get_order_url_link` 接口 THEN CSharp_Backend SHALL 返回订单的支付链接
5. WHEN 用户调用 `/mall_orderbuy` 接口 THEN CSharp_Backend SHALL 创建商城购买订单
6. WHEN 用户调用 `/prize_order_log` 接口 THEN CSharp_Backend SHALL 返回一番赏抽奖结果
7. WHEN 用户调用 `/item_card_list` 接口 THEN CSharp_Backend SHALL 返回用户的道具卡列表
8. WHEN 用户调用 `/infinite_mibao_orderbuy` 接口 THEN CSharp_Backend SHALL 创建连击赏秘宝订单
9. IF 用户调用 `/get_user_test` 接口 THEN CSharp_Backend SHALL 返回测试账号token仅测试环境
### Requirement 7: 优惠券模块迁移 (5个接口)
**User Story:** As a 用户, I want 领取和使用优惠券, so that 我可以在购买时享受折扣。
#### Acceptance Criteria
1. WHEN 用户调用 `/receive` 接口 THEN CSharp_Backend SHALL 批量领取指定的优惠券
2. WHEN 用户调用 `/coupon` 接口 THEN CSharp_Backend SHALL 返回可领取的优惠券列表
3. WHEN 用户调用 `/used` 接口(GET) THEN CSharp_Backend SHALL 返回可使用的优惠券列表
4. WHEN 用户调用 `/t_coupon_list` 接口 THEN CSharp_Backend SHALL 返回领券中心的优惠券列表
5. WHEN 用户调用 `/t_coupon_ling` 接口 THEN CSharp_Backend SHALL 领取领券中心的优惠券
### Requirement 8: 用户权益模块迁移 (2个接口)
**User Story:** As a VIP用户, I want 查看和领取我的专属权益, so that 我可以享受VIP福利。
#### Acceptance Criteria
1. WHEN 用户调用 `/quan_yi` 接口 THEN CSharp_Backend SHALL 返回用户的权益信息列表
2. WHEN 用户调用 `/quan_yi_ling` 接口 THEN CSharp_Backend SHALL 领取指定的权益奖励
### Requirement 9: 收藏模块迁移 (3个接口)
**User Story:** As a 用户, I want 收藏感兴趣的商品, so that 我可以方便地找到并购买。
#### Acceptance Criteria
1. WHEN 用户调用 `/collect_list` 接口 THEN CSharp_Backend SHALL 返回用户的收藏列表
2. WHEN 用户调用 `/cancelCollect` 接口 THEN CSharp_Backend SHALL 取消指定商品的收藏
3. WHEN 用户调用 `/collect_status` 接口 THEN CSharp_Backend SHALL 返回指定商品的收藏状态
### Requirement 10: 排行榜模块迁移 (2个接口)
**User Story:** As a 用户, I want 查看各类排行榜, so that 我可以了解热门商品和用户排名。
#### Acceptance Criteria
1. WHEN 用户调用 `/getRankList` 接口 THEN CSharp_Backend SHALL 返回排行榜列表数据
2. WHEN 用户调用 `/record` 接口 THEN CSharp_Backend SHALL 返回中奖记录排行榜
### Requirement 11: 兑换码模块迁移 (2个接口)
**User Story:** As a 用户, I want 使用兑换码获取奖励, so that 我可以兑换活动礼品。
#### Acceptance Criteria
1. WHEN 用户调用 `/redeem_code` 接口 THEN CSharp_Backend SHALL 验证并使用兑换码发放奖励
2. WHEN 用户调用 `/redeem_record` 接口 THEN CSharp_Backend SHALL 返回用户的兑换码使用记录
### Requirement 12: 仓库模块迁移 (2个接口)
**User Story:** As a 用户, I want 管理我的保险柜, so that 我可以安全存放贵重奖品。
#### Acceptance Criteria
1. WHEN 用户调用 `/warehouse_movein` 接口 THEN CSharp_Backend SHALL 将奖品移入保险柜
2. WHEN 用户调用 `/warehouse_remove` 接口 THEN CSharp_Backend SHALL 将奖品移出保险柜
### Requirement 13: 认证模块迁移 (1个接口)
**User Story:** As a H5用户, I want 通过验证码绑定手机号, so that 我可以完成账号绑定。
#### Acceptance Criteria
1. WHEN 用户调用 `/login_bind_mobile_h5` 接口 THEN CSharp_Backend SHALL 验证短信验证码并绑定手机号
### Requirement 14: 配置模块迁移 (1个接口)
**User Story:** As a 用户, I want 查看单页内容, so that 我可以了解活动规则和说明。
#### Acceptance Criteria
1. WHEN 用户调用 `/danye` 接口(POST) THEN CSharp_Backend SHALL 返回指定单页的内容
### Requirement 15: 商城模块迁移 (3个接口)
**User Story:** As a 用户, I want 在钻石商城购买商品, so that 我可以用钻石兑换奖品。
#### Acceptance Criteria
1. WHEN 用户调用 `/get_diamond_list` 接口 THEN CSharp_Backend SHALL 返回钻石商品列表
2. WHEN 用户调用 `/createOrderProducts` 接口 THEN CSharp_Backend SHALL 创建钻石商品订单
3. WHEN 用户调用 `/get_diamond_order_log` 接口 THEN CSharp_Backend SHALL 返回钻石订单状态
### Requirement 16: 迁移流程规范
**User Story:** As a 开发者, I want 遵循标准化的迁移流程, so that 迁移工作高效且质量可控。
#### Acceptance Criteria
1. WHEN 开始迁移某个接口 THEN Migration_Process SHALL 首先在PHP_Backend中查找并分析对应的控制器和模型代码
2. WHEN 完成PHP代码分析 THEN Migration_Process SHALL 使用MCP_SqlServer查询SQL Server中是否存在对应的数据表
3. IF SQL Server中缺少必要的数据表 THEN Migration_Process SHALL 先创建对应的Entity和数据库迁移脚本
4. WHEN 数据表准备就绪 THEN Migration_Process SHALL 在CSharp_Backend中实现Controller、Service和相关业务逻辑
5. WHEN 接口实现完成 THEN Migration_Process SHALL 确保返回数据格式与PHP_Backend保持一致