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