feat(moderation): add user profile content moderation for avatars, covers, and bios
All checks were successful
Build Backend / build (push) Successful in 4m24s
Build Backend / build-docker (push) Successful in 1m14s

This commit is contained in:
lafay
2026-04-15 11:50:47 +08:00
parent b6f2df87c4
commit 90495385cd
23 changed files with 1561 additions and 55 deletions

View File

@@ -32,10 +32,11 @@ var HandlerSet = wire.NewSet(
handler.NewReportHandler,
handler.NewAdminReportHandler,
handler.NewVerificationHandler,
handler.NewAdminProfileAuditHandler,
handler.NewPostHandler,
// 需要特殊处理的 Handler
handler.NewUserHandler,
handler.NewPostHandler,
ProvideUserHandler,
ProvideMessageHandler,
ProvideSystemMessageHandler,
ProvideGroupHandler,
@@ -44,7 +45,17 @@ var HandlerSet = wire.NewSet(
ProvideAdminVerificationHandler,
)
// ProvideMessageHandler 提供消息处理器
func ProvideUserHandler(
userService service.UserService,
activityService service.UserActivityService,
logService *service.LogService,
profileAuditService service.UserProfileAuditService,
) *handler.UserHandler {
h := handler.NewUserHandler(userService, activityService, logService)
h.SetProfileAuditService(profileAuditService)
return h
}
func ProvideMessageHandler(
chatService service.ChatService,
messageService *service.MessageService,

View File

@@ -137,15 +137,18 @@ func ProvideModerationHooks(
postAIService *service.PostAIService,
postRepo repository.PostRepository,
commentRepo repository.CommentRepository,
userRepo repository.UserRepository,
sensitiveService service.SensitiveService,
cfg *config.Config,
) *hook.ModerationHooks {
strictMode := cfg.OpenAI.StrictModeration
moderationHooks := hook.NewModerationHooks(
postAIService,
nil,
sensitiveService,
postRepo,
commentRepo,
userRepo,
strictMode,
"***",
)

View File

@@ -40,6 +40,9 @@ var RepositorySet = wire.NewSet(
// 敏感词相关仓储
repository.NewSensitiveWordRepository,
// 用户资料审核相关仓储
repository.NewUserProfileAuditRepository,
)
// ProvideUserActivityRepository 提供用户活跃数据仓储

View File

@@ -61,6 +61,7 @@ var ServiceSet = wire.NewSet(
ProvideVerificationService,
ProvideAdminVerificationService,
ProvideSensitiveService,
ProvideUserProfileAuditService,
// 日志服务
ProvideAsyncLogManager,
@@ -465,3 +466,12 @@ func ProvideSensitiveService(
}
return service.NewSensitiveService(sensitiveWordRepo, redisClient, sensitiveCfg)
}
func ProvideUserProfileAuditService(
auditRepo repository.UserProfileAuditRepository,
userRepo repository.UserRepository,
hookManager *hook.Manager,
moderationHooks *hook.ModerationHooks,
) service.UserProfileAuditService {
return service.NewUserProfileAuditService(auditRepo, userRepo, hookManager, moderationHooks)
}