2026-05-06 12:39:11 +08:00
|
|
|
// Code generated by Wire. DO NOT EDIT.
|
2026-03-15 18:17:39 +08:00
|
|
|
|
|
|
|
|
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
|
|
|
|
|
//go:build !wireinject
|
|
|
|
|
// +build !wireinject
|
|
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2026-04-22 16:01:59 +08:00
|
|
|
"with_you/internal/handler"
|
|
|
|
|
"with_you/internal/repository"
|
|
|
|
|
"with_you/internal/router"
|
|
|
|
|
"with_you/internal/service"
|
|
|
|
|
"with_you/internal/wire"
|
2026-03-15 18:17:39 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Injectors from wire.go:
|
|
|
|
|
|
|
|
|
|
// InitializeApp 初始化应用程序
|
|
|
|
|
func InitializeApp() (*App, error) {
|
|
|
|
|
config, err := wire.ProvideConfig()
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
db, err := wire.ProvideDB(config)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
userRepository := repository.NewUserRepository(db)
|
|
|
|
|
systemNotificationRepository := repository.NewSystemNotificationRepository(db)
|
|
|
|
|
pushRecordRepository := repository.NewPushRecordRepository(db)
|
|
|
|
|
deviceTokenRepository := repository.NewDeviceTokenRepository(db)
|
|
|
|
|
messageRepository := repository.NewMessageRepository(db)
|
2026-05-06 12:39:11 +08:00
|
|
|
client := wire.ProvideRedisClient(config)
|
|
|
|
|
messagePublisher := wire.ProvideWSMessagePublisher(config, client)
|
2026-04-27 23:20:24 +08:00
|
|
|
logger := wire.ProvideLogger()
|
|
|
|
|
jpushClient := wire.ProvideJPushClient(config, logger)
|
2026-05-06 12:39:11 +08:00
|
|
|
pushService := wire.ProvidePushService(pushRecordRepository, deviceTokenRepository, messageRepository, messagePublisher, jpushClient)
|
2026-03-15 18:17:39 +08:00
|
|
|
postRepository := repository.NewPostRepository(db)
|
|
|
|
|
cache := wire.ProvideCache(config, client)
|
|
|
|
|
systemMessageService := wire.ProvideSystemMessageService(systemNotificationRepository, pushService, userRepository, postRepository, cache)
|
|
|
|
|
emailClient := wire.ProvideEmailClient(config)
|
|
|
|
|
emailService := wire.ProvideEmailService(emailClient)
|
2026-03-15 20:38:22 +08:00
|
|
|
operationLogRepository := repository.NewOperationLogRepository(db)
|
|
|
|
|
loginLogRepository := repository.NewLoginLogRepository(db)
|
|
|
|
|
dataChangeLogRepository := repository.NewDataChangeLogRepository(db)
|
2026-03-26 18:14:16 +08:00
|
|
|
asyncLogManager := wire.ProvideAsyncLogManager(operationLogRepository, loginLogRepository, dataChangeLogRepository, logger, config)
|
2026-03-15 20:38:22 +08:00
|
|
|
operationLogService := wire.ProvideOperationLogService(asyncLogManager, operationLogRepository)
|
|
|
|
|
loginLogService := wire.ProvideLoginLogService(asyncLogManager, loginLogRepository)
|
|
|
|
|
dataChangeLogService := wire.ProvideDataChangeLogService(asyncLogManager, dataChangeLogRepository)
|
|
|
|
|
logService := wire.ProvideLogService(operationLogService, loginLogService, dataChangeLogService)
|
2026-03-28 07:03:21 +08:00
|
|
|
userService := wire.ProvideUserService(userRepository, systemMessageService, emailService, cache, logService)
|
|
|
|
|
userActivityRepository := wire.ProvideUserActivityRepository(db, cache)
|
|
|
|
|
userActivityService := wire.ProvideUserActivityService(userActivityRepository)
|
2026-04-15 11:50:47 +08:00
|
|
|
userProfileAuditRepository := repository.NewUserProfileAuditRepository(db)
|
|
|
|
|
manager := wire.ProvideHookManager()
|
2026-03-28 07:03:21 +08:00
|
|
|
openaiClient := wire.ProvideOpenAIClient(config)
|
2026-04-21 22:31:30 +08:00
|
|
|
tencentClient := wire.ProvideTencentClient(config)
|
|
|
|
|
postAIService := wire.ProvidePostAIService(openaiClient, tencentClient, config)
|
2026-03-28 07:03:21 +08:00
|
|
|
commentRepository := repository.NewCommentRepository(db)
|
2026-04-15 11:50:47 +08:00
|
|
|
sensitiveWordRepository := repository.NewSensitiveWordRepository(db)
|
|
|
|
|
sensitiveService := wire.ProvideSensitiveService(sensitiveWordRepository, client, config)
|
|
|
|
|
moderationHooks := wire.ProvideModerationHooks(manager, postAIService, postRepository, commentRepository, userRepository, sensitiveService, config)
|
|
|
|
|
userProfileAuditService := wire.ProvideUserProfileAuditService(userProfileAuditRepository, userRepository, manager, moderationHooks)
|
|
|
|
|
userHandler := wire.ProvideUserHandler(userService, userActivityService, logService, userProfileAuditService)
|
|
|
|
|
transactionManager := wire.ProvideTransactionManager(db)
|
2026-03-28 07:03:21 +08:00
|
|
|
builtinHooks := wire.ProvideBuiltinHooks(manager)
|
|
|
|
|
postService := wire.ProvidePostService(postRepository, systemMessageService, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks, logService)
|
2026-04-26 00:37:20 +08:00
|
|
|
postRefRepository := repository.NewPostRefRepository(db)
|
|
|
|
|
postRefService := wire.ProvidePostRefService(postRefRepository, postRepository)
|
2026-05-06 12:39:11 +08:00
|
|
|
channelRepository := repository.NewChannelRepository(db)
|
|
|
|
|
channelService := wire.ProvideChannelService(channelRepository, cache)
|
2026-04-26 00:37:20 +08:00
|
|
|
postHandler := handler.NewPostHandler(postService, postRefService, userService, channelService)
|
2026-03-28 07:03:21 +08:00
|
|
|
commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, postAIService, cache, manager, logService)
|
2026-03-15 18:17:39 +08:00
|
|
|
commentHandler := handler.NewCommentHandler(commentService)
|
2026-03-25 03:57:40 +08:00
|
|
|
s3Client, err := wire.ProvideS3Client(config)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
uploadService := wire.ProvideUploadService(s3Client, userService)
|
2026-05-06 12:39:11 +08:00
|
|
|
chatService := wire.ProvideChatService(messageRepository, userRepository, messagePublisher, cache, uploadService, pushService)
|
2026-03-26 18:14:16 +08:00
|
|
|
messageService := wire.ProvideMessageService(messageRepository, cache, uploadService)
|
2026-03-15 18:17:39 +08:00
|
|
|
groupRepository := repository.NewGroupRepository(db)
|
2026-03-26 18:14:16 +08:00
|
|
|
groupJoinRequestRepository := repository.NewGroupJoinRequestRepository(db)
|
2026-05-06 12:39:11 +08:00
|
|
|
groupService := wire.ProvideGroupService(groupRepository, userRepository, messageRepository, groupJoinRequestRepository, systemNotificationRepository, messagePublisher, cache)
|
|
|
|
|
messageHandler := wire.ProvideMessageHandler(chatService, messageService, userService, groupService, messagePublisher)
|
2026-03-15 18:17:39 +08:00
|
|
|
notificationRepository := repository.NewNotificationRepository(db)
|
|
|
|
|
notificationService := wire.ProvideNotificationService(notificationRepository, cache)
|
|
|
|
|
notificationHandler := handler.NewNotificationHandler(notificationService)
|
|
|
|
|
uploadHandler := handler.NewUploadHandler(uploadService)
|
|
|
|
|
jwtService := wire.ProvideJWTService(config)
|
|
|
|
|
pushHandler := handler.NewPushHandler(pushService)
|
2026-03-26 18:14:16 +08:00
|
|
|
systemMessageHandler := wire.ProvideSystemMessageHandler(systemMessageService)
|
2026-03-15 18:17:39 +08:00
|
|
|
groupHandler := wire.ProvideGroupHandler(groupService, userService)
|
|
|
|
|
stickerRepository := repository.NewStickerRepository(db)
|
|
|
|
|
stickerService := wire.ProvideStickerService(stickerRepository)
|
|
|
|
|
stickerHandler := handler.NewStickerHandler(stickerService)
|
|
|
|
|
voteRepository := repository.NewVoteRepository(db)
|
2026-04-11 04:23:24 +08:00
|
|
|
voteService := wire.ProvideVoteService(voteRepository, postRepository, cache, postAIService, systemMessageService, manager, logService)
|
2026-03-15 18:17:39 +08:00
|
|
|
voteHandler := handler.NewVoteHandler(voteService, postService)
|
2026-03-24 22:27:53 +08:00
|
|
|
channelHandler := handler.NewChannelHandler(channelService)
|
2026-03-15 18:17:39 +08:00
|
|
|
scheduleRepository := repository.NewScheduleRepository(db)
|
|
|
|
|
scheduleService := wire.ProvideScheduleService(scheduleRepository)
|
|
|
|
|
server := wire.ProvideGRPCServer(config, logger)
|
|
|
|
|
taskManager := wire.ProvideTaskManager(server)
|
|
|
|
|
scheduleSyncService := wire.ProvideScheduleSyncService(taskManager, scheduleRepository, logger)
|
|
|
|
|
scheduleHandler := wire.ProvideScheduleHandler(scheduleService, scheduleSyncService)
|
|
|
|
|
roleRepository := wire.ProvideRoleRepository(db)
|
|
|
|
|
enforcer := wire.ProvideCasbinEnforcer(config, db)
|
|
|
|
|
casbinService := wire.ProvideCasbinService(enforcer, cache, roleRepository, config)
|
|
|
|
|
roleService := wire.ProvideRoleService(roleRepository, casbinService)
|
|
|
|
|
roleHandler := handler.NewRoleHandler(roleService)
|
|
|
|
|
adminUserService := wire.ProvideAdminUserService(userRepository)
|
|
|
|
|
adminUserHandler := handler.NewAdminUserHandler(adminUserService)
|
2026-03-28 07:03:21 +08:00
|
|
|
adminPostService := wire.ProvideAdminPostService(postRepository, cache, logService)
|
2026-03-15 18:17:39 +08:00
|
|
|
adminPostHandler := handler.NewAdminPostHandler(adminPostService)
|
|
|
|
|
adminCommentService := wire.ProvideAdminCommentService(commentRepository, postRepository)
|
|
|
|
|
adminCommentHandler := handler.NewAdminCommentHandler(adminCommentService)
|
|
|
|
|
adminGroupService := wire.ProvideAdminGroupService(groupRepository, userRepository)
|
|
|
|
|
adminGroupHandler := handler.NewAdminGroupHandler(adminGroupService)
|
|
|
|
|
adminDashboardService := wire.ProvideAdminDashboardService(db, userRepository, postRepository, commentRepository, groupRepository, userActivityRepository)
|
|
|
|
|
adminDashboardHandler := handler.NewAdminDashboardHandler(adminDashboardService)
|
2026-03-15 20:38:22 +08:00
|
|
|
adminLogHandler := handler.NewAdminLogHandler(operationLogService, loginLogService, dataChangeLogService)
|
2026-05-06 12:39:11 +08:00
|
|
|
qrCodeLoginService := wire.ProvideQRCodeLoginService(client, messagePublisher, jwtService, userService, userActivityService, logService)
|
2026-03-20 12:23:28 +08:00
|
|
|
qrCodeHandler := handler.NewQRCodeHandler(qrCodeLoginService)
|
2026-03-25 20:58:55 +08:00
|
|
|
materialSubjectRepository := repository.NewMaterialSubjectRepository(db)
|
|
|
|
|
materialFileRepository := repository.NewMaterialFileRepository(db)
|
|
|
|
|
materialService := wire.ProvideMaterialService(materialSubjectRepository, materialFileRepository)
|
|
|
|
|
materialHandler := handler.NewMaterialHandler(materialService)
|
2026-03-28 07:03:21 +08:00
|
|
|
callRepository := repository.NewCallRepository(db)
|
2026-05-06 12:39:11 +08:00
|
|
|
callService := wire.ProvideCallService(callRepository, messagePublisher, config, db, client)
|
2026-03-27 01:54:34 +08:00
|
|
|
callHandler := handler.NewCallHandler(callService)
|
2026-03-30 03:44:24 +08:00
|
|
|
reportRepository := repository.NewReportRepository(db)
|
|
|
|
|
reportService := wire.ProvideReportService(reportRepository, postRepository, commentRepository, messageRepository, userRepository, systemNotificationRepository, pushService, transactionManager, operationLogService, config)
|
|
|
|
|
reportHandler := handler.NewReportHandler(reportService)
|
|
|
|
|
adminReportService := wire.ProvideAdminReportService(reportRepository, postRepository, commentRepository, messageRepository, userRepository, systemNotificationRepository, pushService, transactionManager, operationLogService)
|
|
|
|
|
adminReportHandler := handler.NewAdminReportHandler(adminReportService)
|
2026-04-05 20:27:03 +08:00
|
|
|
verificationRepository := repository.NewVerificationRepository(db)
|
|
|
|
|
verificationService := wire.ProvideVerificationService(verificationRepository, userRepository)
|
|
|
|
|
verificationHandler := handler.NewVerificationHandler(verificationService)
|
|
|
|
|
adminVerificationService := wire.ProvideAdminVerificationService(verificationRepository, userRepository)
|
|
|
|
|
adminVerificationHandler := wire.ProvideAdminVerificationHandler(adminVerificationService, userRepository)
|
2026-04-15 11:50:47 +08:00
|
|
|
adminProfileAuditHandler := handler.NewAdminProfileAuditHandler(userProfileAuditService)
|
2026-04-24 15:14:44 +08:00
|
|
|
setupService := wire.ProvideSetupService(userRepository, roleRepository, casbinService, config)
|
|
|
|
|
setupHandler := wire.ProvideSetupHandler(setupService)
|
2026-05-06 15:50:47 +08:00
|
|
|
tradeRepository := repository.NewTradeRepository(db)
|
|
|
|
|
tradeService := wire.ProvideTradeService(tradeRepository)
|
|
|
|
|
tradeHandler := handler.NewTradeHandler(tradeService)
|
2026-05-06 12:39:11 +08:00
|
|
|
wsHandler := wire.ProvideWSHandler(messagePublisher, chatService, groupService, jwtService, callService, userRepository)
|
2026-05-06 15:50:47 +08:00
|
|
|
router := ProvideRouter(userRepository, userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, channelHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, materialHandler, callHandler, reportHandler, adminReportHandler, verificationHandler, adminVerificationHandler, adminProfileAuditHandler, setupHandler, tradeHandler, logService, userActivityService, casbinService, wsHandler)
|
2026-04-26 11:39:41 +08:00
|
|
|
hotRankWorker := wire.ProvideHotRankWorker(config, postRepository, channelRepository, cache)
|
2026-05-06 12:39:11 +08:00
|
|
|
app := NewApp(config, db, router, pushService, hotRankWorker, server, messagePublisher, logger)
|
2026-03-15 18:17:39 +08:00
|
|
|
return app, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// wire.go:
|
|
|
|
|
|
|
|
|
|
// ProvideRouter 提供路由
|
|
|
|
|
func ProvideRouter(
|
2026-04-08 02:28:10 +08:00
|
|
|
userRepo repository.UserRepository,
|
2026-03-15 18:17:39 +08:00
|
|
|
userHandler *handler.UserHandler,
|
|
|
|
|
postHandler *handler.PostHandler,
|
|
|
|
|
commentHandler *handler.CommentHandler,
|
|
|
|
|
messageHandler *handler.MessageHandler,
|
|
|
|
|
notificationHandler *handler.NotificationHandler,
|
|
|
|
|
uploadHandler *handler.UploadHandler,
|
|
|
|
|
jwtService *service.JWTService,
|
|
|
|
|
pushHandler *handler.PushHandler,
|
|
|
|
|
systemMessageHandler *handler.SystemMessageHandler,
|
|
|
|
|
groupHandler *handler.GroupHandler,
|
|
|
|
|
stickerHandler *handler.StickerHandler,
|
|
|
|
|
voteHandler *handler.VoteHandler,
|
2026-03-24 22:27:53 +08:00
|
|
|
channelHandler *handler.ChannelHandler,
|
2026-03-15 18:17:39 +08:00
|
|
|
scheduleHandler *handler.ScheduleHandler,
|
|
|
|
|
roleHandler *handler.RoleHandler,
|
|
|
|
|
adminUserHandler *handler.AdminUserHandler,
|
|
|
|
|
adminPostHandler *handler.AdminPostHandler,
|
|
|
|
|
adminCommentHandler *handler.AdminCommentHandler,
|
|
|
|
|
adminGroupHandler *handler.AdminGroupHandler,
|
|
|
|
|
adminDashboardHandler *handler.AdminDashboardHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
adminLogHandler *handler.AdminLogHandler,
|
2026-03-20 12:23:28 +08:00
|
|
|
qrcodeHandler *handler.QRCodeHandler,
|
2026-03-25 20:58:55 +08:00
|
|
|
materialHandler *handler.MaterialHandler,
|
2026-03-27 01:54:34 +08:00
|
|
|
callHandler *handler.CallHandler,
|
2026-03-30 03:44:24 +08:00
|
|
|
reportHandler *handler.ReportHandler,
|
|
|
|
|
adminReportHandler *handler.AdminReportHandler,
|
2026-04-05 20:27:03 +08:00
|
|
|
verificationHandler *handler.VerificationHandler,
|
|
|
|
|
adminVerificationHandler *handler.AdminVerificationHandler,
|
2026-04-15 11:50:47 +08:00
|
|
|
adminProfileAuditHandler *handler.AdminProfileAuditHandler,
|
2026-04-24 15:14:44 +08:00
|
|
|
setupHandler *handler.SetupHandler,
|
2026-05-06 15:50:47 +08:00
|
|
|
tradeHandler *handler.TradeHandler,
|
2026-03-15 20:38:22 +08:00
|
|
|
logService *service.LogService,
|
2026-03-15 18:17:39 +08:00
|
|
|
activityService service.UserActivityService,
|
|
|
|
|
casbinService service.CasbinService,
|
2026-03-26 21:17:49 +08:00
|
|
|
wsHandler *handler.WSHandler,
|
2026-03-15 18:17:39 +08:00
|
|
|
) *router.Router {
|
2026-05-04 13:07:03 +08:00
|
|
|
return router.New(router.RouterDeps{
|
|
|
|
|
UserRepo: userRepo,
|
|
|
|
|
UserHandler: userHandler,
|
|
|
|
|
PostHandler: postHandler,
|
|
|
|
|
CommentHandler: commentHandler,
|
|
|
|
|
MessageHandler: messageHandler,
|
|
|
|
|
NotificationHandler: notificationHandler,
|
|
|
|
|
UploadHandler: uploadHandler,
|
|
|
|
|
JWTService: jwtService,
|
|
|
|
|
PushHandler: pushHandler,
|
|
|
|
|
SystemMessageHandler: systemMessageHandler,
|
|
|
|
|
GroupHandler: groupHandler,
|
|
|
|
|
StickerHandler: stickerHandler,
|
|
|
|
|
VoteHandler: voteHandler,
|
|
|
|
|
ChannelHandler: channelHandler,
|
|
|
|
|
ScheduleHandler: scheduleHandler,
|
|
|
|
|
RoleHandler: roleHandler,
|
|
|
|
|
AdminUserHandler: adminUserHandler,
|
|
|
|
|
AdminPostHandler: adminPostHandler,
|
|
|
|
|
AdminCommentHandler: adminCommentHandler,
|
|
|
|
|
AdminGroupHandler: adminGroupHandler,
|
|
|
|
|
AdminDashboardHandler: adminDashboardHandler,
|
|
|
|
|
AdminLogHandler: adminLogHandler,
|
|
|
|
|
QRCodeHandler: qrcodeHandler,
|
|
|
|
|
MaterialHandler: materialHandler,
|
|
|
|
|
CallHandler: callHandler,
|
|
|
|
|
ReportHandler: reportHandler,
|
|
|
|
|
AdminReportHandler: adminReportHandler,
|
|
|
|
|
VerificationHandler: verificationHandler,
|
|
|
|
|
AdminVerificationHandler: adminVerificationHandler,
|
|
|
|
|
AdminProfileAuditHandler: adminProfileAuditHandler,
|
|
|
|
|
SetupHandler: setupHandler,
|
2026-05-06 15:50:47 +08:00
|
|
|
TradeHandler: tradeHandler,
|
2026-05-04 13:07:03 +08:00
|
|
|
LogService: logService,
|
|
|
|
|
ActivityService: activityService,
|
|
|
|
|
CasbinService: casbinService,
|
|
|
|
|
WSHandler: wsHandler,
|
|
|
|
|
})
|
2026-03-15 18:17:39 +08:00
|
|
|
}
|