f
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"tyapi-server/internal/application/api/dto"
|
||||
"tyapi-server/internal/config"
|
||||
"tyapi-server/internal/domains/api/entities"
|
||||
"tyapi-server/internal/domains/api/repositories"
|
||||
api_services "tyapi-server/internal/domains/api/services"
|
||||
@@ -18,6 +19,7 @@ import (
|
||||
|
||||
type QueryWhitelistApplicationService interface {
|
||||
CreateEntry(ctx context.Context, adminUserID string, req *dto.QueryWhitelistEntryRequest) (*dto.QueryWhitelistEntryResponse, error)
|
||||
CreateEntryPublic(ctx context.Context, headerAccessID, managementKey, clientIP, encryptedData string) (*dto.QueryWhitelistEntryResponse, string, error)
|
||||
UpdateEntry(ctx context.Context, adminUserID, id string, req *dto.QueryWhitelistEntryUpdateRequest) (*dto.QueryWhitelistEntryResponse, error)
|
||||
UpdateEntryStatus(ctx context.Context, adminUserID, id, status string) (*dto.QueryWhitelistEntryResponse, error)
|
||||
DeleteEntry(ctx context.Context, id string) error
|
||||
@@ -29,17 +31,23 @@ type QueryWhitelistApplicationService interface {
|
||||
type QueryWhitelistApplicationServiceImpl struct {
|
||||
repo repositories.QueryWhitelistRepository
|
||||
queryWhitelistSvc api_services.QueryWhitelistService
|
||||
apiUserService api_services.ApiUserAggregateService
|
||||
config *config.Config
|
||||
logger *zap.Logger
|
||||
}
|
||||
|
||||
func NewQueryWhitelistApplicationService(
|
||||
repo repositories.QueryWhitelistRepository,
|
||||
queryWhitelistSvc api_services.QueryWhitelistService,
|
||||
apiUserService api_services.ApiUserAggregateService,
|
||||
config *config.Config,
|
||||
logger *zap.Logger,
|
||||
) QueryWhitelistApplicationService {
|
||||
return &QueryWhitelistApplicationServiceImpl{
|
||||
repo: repo,
|
||||
queryWhitelistSvc: queryWhitelistSvc,
|
||||
apiUserService: apiUserService,
|
||||
config: config,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
@@ -49,35 +57,7 @@ func (s *QueryWhitelistApplicationServiceImpl) CreateEntry(
|
||||
adminUserID string,
|
||||
req *dto.QueryWhitelistEntryRequest,
|
||||
) (*dto.QueryWhitelistEntryResponse, error) {
|
||||
if err := validateQueryWhitelistRequest(req.UserID, req.Name, req.IDCard, req.APICodes); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
idCardHash := api_services.HashIDCard(req.IDCard)
|
||||
exists, err := s.repo.ExistsByUserIDCardHashAndName(ctx, req.UserID, idCardHash, strings.TrimSpace(req.Name), "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if exists {
|
||||
return nil, fmt.Errorf("该用户下已存在相同的身份证与姓名规则")
|
||||
}
|
||||
|
||||
entry := &entities.QueryWhitelistEntry{
|
||||
UserID: strings.TrimSpace(req.UserID),
|
||||
Name: normalizeWhitelistName(req.Name),
|
||||
IDCardHash: idCardHash,
|
||||
IDCardMasked: api_services.MaskIDCard(req.IDCard),
|
||||
APICodes: entities.APICodeList(req.APICodes),
|
||||
Status: entities.QueryWhitelistStatusEnabled,
|
||||
Remark: strings.TrimSpace(req.Remark),
|
||||
CreatedBy: &adminUserID,
|
||||
}
|
||||
if err := s.repo.Create(ctx, entry); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.queryWhitelistSvc.InvalidateCache(entry.UserID, idCardHash)
|
||||
resp := dto.NewQueryWhitelistEntryResponse(entry)
|
||||
return &resp, nil
|
||||
return s.createEntry(ctx, adminUserID, req, "")
|
||||
}
|
||||
|
||||
func (s *QueryWhitelistApplicationServiceImpl) UpdateEntry(
|
||||
|
||||
Reference in New Issue
Block a user