This commit is contained in:
2025-07-28 01:46:39 +08:00
parent b03129667a
commit 357639462a
219 changed files with 21634 additions and 8138 deletions

View File

@@ -0,0 +1,69 @@
package services
import (
"context"
"fmt"
"tyapi-server/internal/domains/api/entities"
repo "tyapi-server/internal/domains/api/repositories"
"gorm.io/gorm"
)
// ApiCallAggregateService 聚合服务管理ApiCall生命周期
type ApiCallAggregateService interface {
CreateApiCall(accessId, requestParams, clientIp string) (*entities.ApiCall, error)
LoadApiCall(ctx context.Context, id string) (*entities.ApiCall, error)
SaveApiCall(ctx context.Context, call *entities.ApiCall) error
}
type ApiCallAggregateServiceImpl struct {
apiUserRepo repo.ApiUserRepository
apiCallRepo repo.ApiCallRepository
}
func NewApiCallAggregateService(apiUserRepo repo.ApiUserRepository, apiCallRepo repo.ApiCallRepository) ApiCallAggregateService {
return &ApiCallAggregateServiceImpl{
apiUserRepo: apiUserRepo,
apiCallRepo: apiCallRepo,
}
}
// NewApiCall 创建ApiCall
func (s *ApiCallAggregateServiceImpl) CreateApiCall(accessId, requestParams, clientIp string) (*entities.ApiCall, error) {
return entities.NewApiCall(accessId, requestParams, clientIp)
}
// GetApiCallById 查询ApiCall
func (s *ApiCallAggregateServiceImpl) LoadApiCall(ctx context.Context, id string) (*entities.ApiCall, error) {
return s.apiCallRepo.FindById(ctx, id)
}
// SaveApiCall 保存ApiCall
func (s *ApiCallAggregateServiceImpl) SaveApiCall(ctx context.Context, call *entities.ApiCall) error {
// 先尝试查找现有记录
existingCall, err := s.apiCallRepo.FindById(ctx, call.ID)
if err != nil {
if err == gorm.ErrRecordNotFound {
// 记录不存在,执行创建
err = s.apiCallRepo.Create(ctx, call)
if err != nil {
return fmt.Errorf("创建ApiCall失败: %w", err)
}
return nil
}
// 其他错误
return fmt.Errorf("查询ApiCall失败: %w", err)
}
// 记录存在,执行更新
if existingCall != nil {
err = s.apiCallRepo.Update(ctx, call)
if err != nil {
return fmt.Errorf("更新ApiCall失败: %w", err)
}
return nil
}
// 理论上不会到达这里,但为了安全起见
return s.apiCallRepo.Create(ctx, call)
}