mirror of
http://124.126.16.154:8888/singularity/hdk-pay.git
synced 2026-01-15 03:55:07 +08:00
- 创建 Email 值对象用于封装邮箱信息 - 扩展 AccountRepoInterface 添加邮箱管理方法 - 重命名 AccountBalanceRepo 为 AccountRepo 并实现邮箱功能 - 更新相关测试用例和配置以适配新功能
3.0 KiB
3.0 KiB
邮箱管理 SDK 生成计划(最终版本)
任务目标
根据 OpenAPI 规范,生成“获取用户常用邮箱”和“更新用户常用邮箱”接口的 SDK,严格遵循 DDD 架构,不创建新的 Rpc 文件,创建独立的邮箱管理仓库或合理命名现有仓库。
分析与设计
1. 接口分析
从 OpenAPI 规范中,我找到了两个邮箱管理相关接口:
- GET /rpc/v2/account/{uid}/inv-email:获取用户常用邮箱
- PUT /rpc/v2/account/{uid}/inv-email:更新用户常用邮箱
2. 现有代码结构(DDD 架构)
-
Domain 层:
AccountRepoInterface:账户仓库接口AccountBalance、PointsBalance:账户相关聚合根和值对象PointType、PointAction:枚举类
-
Infrastructure 层:
AccountBalanceRepo:实现了AccountRepoInterface,但名称仅反映余额管理AbstractRepo:基础仓库类,封装了 HTTP 请求
3. 实现方案
3.1 方案选择
考虑到用户反馈,我选择以下方案:
- 扩展 AccountRepoInterface:添加邮箱管理方法
- 创建新的 AccountRepo 实现:将 AccountBalanceRepo 重命名为 AccountRepo,使其更通用
- 创建 Email 领域对象:创建 Email 值对象封装邮箱信息
3.2 具体设计
-
创建 Email 领域对象:
Email:值对象,封装邮箱信息
-
扩展 AccountRepoInterface:
getEmail:获取用户常用邮箱,返回Email对象updateEmail:更新用户常用邮箱,接收Email对象
-
重命名并扩展 AccountBalanceRepo:
- 将
AccountBalanceRepo重命名为AccountRepo - 实现新添加的邮箱管理方法
- 保持原有余额管理功能不变
- 将
执行步骤
-
创建 Email 领域对象:
- 在
Domain/Account/ValueObject目录下创建Email.php
- 在
-
扩展 AccountRepoInterface:
- 添加
getEmail和updateEmail方法
- 添加
-
重命名并扩展 AccountBalanceRepo:
- 将
AccountBalanceRepo重命名为AccountRepo - 实现邮箱管理方法
- 将
-
更新 ConfigProvider:
- 更新依赖注入配置,将
AccountRepoInterface指向新的AccountRepo
- 更新依赖注入配置,将
-
编写测试用例:
- 验证邮箱管理功能
预期结果
- 完成邮箱管理相关接口的 SDK 实现
- 严格遵循 DDD 架构,不创建新的 Rpc 文件
- 仓库名称更合理,支持账户的多种操作(余额和邮箱)
- 创建了 Email 领域对象,封装邮箱信息
- 代码结构符合项目现有规范
- 包含必要的测试用例
技术细节
- 使用现有的
AbstractRepo作为基础类 - 使用
RequestService进行 HTTP 请求 - 遵循项目现有的代码风格和命名规范
- 使用 PHP 8.2 的特性(如 readonly 属性、命名参数)
- 保持与现有代码的一致性
命名调整说明
- 将
AccountBalanceRepo重命名为AccountRepo,使其更通用,能够处理账户相关的多种操作,包括余额和邮箱管理 - 创建
Email值对象,封装邮箱信息,符合 DDD 领域驱动设计原则