refactor(pay): 重构账户余额查询功能

- 新增 AbstractRepo 抽象类,用于统一封装请求服务
- 修正 Infrastructure 目录名称拼写错误
- 更新命名空间和类名引用
- 简化 AccountBalanceRepo 类的构造方法
This commit is contained in:
李东云
2025-08-18 14:41:06 +08:00
parent 4f0d402538
commit 5559f2c2a5
5 changed files with 37 additions and 22 deletions

View File

@@ -7,7 +7,7 @@ namespace Singularity\HDK\Pay;
use Hyperf\Contract\StdoutLoggerInterface;
use Hyperf\Framework\Logger\StdoutLogger;
use Singularity\HDK\Pay\Domain\Account\Repository\AccountRepoInterface;
use Singularity\HDK\Pay\Infratracture\Repository\AccountBalanceRepo;
use Singularity\HDK\Pay\Infrastructure\Repository\AccountBalanceRepo;
/**
* ConfigProvider.php@HyperfAuth

View File

@@ -0,0 +1,31 @@
<?php
/**
* AbstractRepo.php@Pay
*
* @author 李东云 <Dongyun.Li@LuxCreo.Ai>
* Powered by PhpStorm
* Created on 2025/8/18
*/
declare(strict_types=1);
namespace Singularity\HDK\Pay\Infrastructure\Repository;
use GuzzleHttp\RequestOptions;
use Singularity\HDK\Core\Http\RequestService;
use Singularity\HDK\Core\Http\RequestServiceFactory;
use function Hyperf\Config\config;
abstract class AbstractRepo
{
protected RequestService $requestService;
public function __construct(?string $baseUrl = null)
{
$this->requestService = RequestServiceFactory::make([
'base_uri' => $baseUrl ?? config('payment.base_uri'),
RequestOptions::ALLOW_REDIRECTS => true,
]);
}
}

View File

@@ -9,34 +9,19 @@
*/
declare(strict_types=1);
namespace Singularity\HDK\Pay\Infratracture\Repository;
namespace Singularity\HDK\Pay\Infrastructure\Repository;
use GuzzleHttp\RequestOptions;
use Hyperf\Codec\Json;
use Singularity\HDK\Core\Http\RequestService;
use Singularity\HDK\Core\Http\RequestServiceFactory;
use Singularity\HDK\Pay\Domain\Account\Aggregate\AccountBalance;
use Singularity\HDK\Pay\Domain\Account\Aggregate\ValueObject\PointsBalance;
use Singularity\HDK\Pay\Domain\Account\Enum\PointType;
use Singularity\HDK\Pay\Domain\Account\Repository\AccountRepoInterface;
use Singularity\HDK\Pay\Trait\RequestHeaderBuilder;
use function Hyperf\Config\config;
final class AccountBalanceRepo implements AccountRepoInterface
final class AccountBalanceRepo extends AbstractRepo implements AccountRepoInterface
{
use RequestHeaderBuilder;
private RequestService $requestService;
public function __construct(?string $baseUrl = null)
{
$this->requestService = RequestServiceFactory::make([
'base_uri' => $baseUrl ?? config('payment.base_uri'),
RequestOptions::ALLOW_REDIRECTS => true,
]);
}
public function getAccount(string $uid): AccountBalance
{
$response = $this->requestService->requestGet(

View File

@@ -9,8 +9,7 @@
*/
use Singularity\HDK\Pay\Domain\Account\Aggregate\AccountBalance;
use Singularity\HDK\Pay\Infratracture\Repository\AccountBalanceRepo;
use Singularity\HDK\Pay\Infrastructure\Repository\AccountBalanceRepo;
use function Hyperf\Support\make;

View File

@@ -10,7 +10,7 @@
use Singularity\HDK\Pay\Domain\Account\Aggregate\ValueObject\PointsBalance;
use Singularity\HDK\Pay\Domain\Account\Enum\PointType;
use Singularity\HDK\Pay\Infratracture\Repository\AccountBalanceRepo;
use Singularity\HDK\Pay\Infrastructure\Repository\AccountBalanceRepo;
use function Hyperf\Support\make;
@@ -21,4 +21,4 @@ it('should query point balance', function () {
expect($point_balance)
->toBeInstanceOf(PointsBalance::class)
->and($point_balance->getType())->toBe(PointType::EMA);
})->only();
});