# 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保持一致