This commit is contained in:
2026-07-26 23:04:18 +08:00
parent 6631f8d382
commit dc9a98e893
3 changed files with 38 additions and 7 deletions

View File

@@ -2,10 +2,14 @@ package services
import (
"context"
"errors"
"time"
"hyapi-server/internal/config"
"hyapi-server/internal/domains/api/entities"
repo "hyapi-server/internal/domains/api/repositories"
"gorm.io/gorm"
)
type ApiUserAggregateService interface {
@@ -30,6 +34,15 @@ func NewApiUserAggregateService(repo repo.ApiUserRepository, cfg *config.Config)
}
func (s *ApiUserAggregateServiceImpl) CreateApiUser(ctx context.Context, apiUserId string) error {
// 已存在则幂等成功,避免重复 INSERT 导致 PostgreSQL 事务中止SQLSTATE 25P02
existing, err := s.repo.FindByUserId(ctx, apiUserId)
if err == nil && existing != nil {
return nil
}
if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return err
}
apiUser, err := entities.NewApiUser(apiUserId, s.cfg.Wallet.BalanceAlert.DefaultEnabled, s.cfg.Wallet.BalanceAlert.DefaultThreshold)
if err != nil {
return err