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

9.9 KiB
Raw Blame History

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