任务时间: 2025年06月14日 21:34:10 CST
任务内容: 扩展 OpenAPI 模块,增加钻石充值/提取的能力,每个开发者都分配一个充值专用账户/提取专用账户
用户需要在 OpenAPI 模块中增加钻石充值和提取功能,为每个开发者应用分配专用的充值账户和提取账户,实现安全的资金管理。
SCOPE_TYPE 枚举中添加 FUND_RECHARGE 和 FUND_WITHDRAW 权限DeveloperAccountService 服务类DiamondRechargeHandler 处理充值逻辑DiamondWithdrawHandler 处理提取逻辑DiamondRechargeValidation 和 DiamondWithdrawValidation 验证类DiamondAmountValidator 和 UserExistenceValidator 验证器// SCOPE_TYPE.php 新增权限
case FUND_RECHARGE = 'FUND_RECHARGE'; // 钻石充值权限
case FUND_WITHDRAW = 'FUND_WITHDRAW'; // 钻石提取权限
// DeveloperAccountService.php 核心方法
public static function getRechargeUserId(int $appId): int
{
return self::RECHARGE_USER_ID_START + $appId; // 100000 + appId
}
public static function getWithdrawUserId(int $appId): int
{
return self::WITHDRAW_USER_ID_START + $appId; // 200000 + appId
}
// 新增的API路由
POST /api/openapi/diamond/recharge // 钻石充值
POST /api/openapi/diamond/withdraw // 钻石提取
GET /api/openapi/diamond/recharge-balance // 充值账户余额
GET /api/openapi/diamond/withdraw-balance // 提取账户余额
BaseHandler 基类ValidationCore 和 Validator 基类FundServiceFUND_CURRENCY_TYPE::ZUANSHIFUND_TYPE::FUND2DiamondOperationTest - 基础功能测试DiamondApiTest - API接口测试POST /api/openapi/diamond/recharge
{
"user_id": 12345,
"amount": 100.5,
"order_id": "ORDER_20250614_001",
"remark": "游戏内购买道具"
}
POST /api/openapi/diamond/withdraw
{
"user_id": 12345,
"amount": 50.25,
"order_id": "WITHDRAW_20250614_001",
"remark": "用户提现"
}
GET /api/openapi/diamond/recharge-balance // 查询充值账户余额
GET /api/openapi/diamond/withdraw-balance // 查询提取账户余额
FUND_RECHARGE 权限FUND_WITHDRAW 权限FUND_READ 权限app/Module/OpenAPI/Services/DeveloperAccountService.php - 开发者账户管理服务app/Module/OpenAPI/Handlers/Fund/DiamondRechargeHandler.php - 钻石充值Handlerapp/Module/OpenAPI/Handlers/Fund/DiamondWithdrawHandler.php - 钻石提取Handlerapp/Module/OpenAPI/Validations/DiamondRechargeValidation.php - 充值验证类app/Module/OpenAPI/Validations/DiamondWithdrawValidation.php - 提取验证类app/Module/OpenAPI/Validators/DiamondAmountValidator.php - 钻石金额验证器app/Module/OpenAPI/Validators/UserExistenceValidator.php - 用户存在性验证器app/Module/OpenAPI/Tests/DiamondOperationTest.php - 功能测试app/Module/OpenAPI/Tests/DiamondApiTest.php - API测试app/Module/OpenAPI/Enums/SCOPE_TYPE.php - 扩展权限范围app/Module/OpenAPI/Controllers/ApiController.php - 添加新的API方法app/Module/OpenAPI/Services/RouteRegistrationService.php - 注册新路由app/Module/OpenAPI/Services/HandlerRegistrationService.php - 注册新Handlerapp/Module/OpenAPI/README.md - 更新文档说明成功扩展了 OpenAPI 模块的钻石充值/提取功能,实现了:
✅ 完整的权限体系 - 新增专用权限范围,支持细粒度控制
✅ 自动账户管理 - 为每个开发者应用分配专用账户
✅ 安全的资金操作 - 完整的验证和事务处理机制
✅ 标准的API接口 - 遵循项目规范的Handler机制
✅ 完善的测试覆盖 - 全面的单元测试和功能测试
✅ 详细的文档说明 - 完整的使用指南和示例
该功能为 OpenAPI 模块提供了强大的资金管理能力,支持开发者安全、便捷地进行钻石充值和提取操作。