189 lines
9.9 KiB
Markdown
189 lines
9.9 KiB
Markdown
# 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保持一致
|