Add new functionality for managing and synchronizing academic grades and exam schedules. This includes new models, repositories, services, and HTTP handlers, along with updated gRPC definitions and dependency injection configuration. Additionally, improve the reliability of unread message count tracking by implementing an atomic Lua script for Redis operations in the conversation cache.
121 lines
3.4 KiB
Go
121 lines
3.4 KiB
Go
package wire
|
|
|
|
import (
|
|
"with_you/internal/handler"
|
|
"with_you/internal/pkg/ws"
|
|
"with_you/internal/repository"
|
|
"with_you/internal/service"
|
|
|
|
"github.com/google/wire"
|
|
)
|
|
|
|
// HandlerSet Handler 层 Provider Set
|
|
var HandlerSet = wire.NewSet(
|
|
// 直接使用构造函数的 Handler
|
|
handler.NewCommentHandler,
|
|
handler.NewNotificationHandler,
|
|
handler.NewUploadHandler,
|
|
handler.NewPushHandler,
|
|
handler.NewStickerHandler,
|
|
handler.NewVoteHandler,
|
|
handler.NewChannelHandler,
|
|
handler.NewRoleHandler,
|
|
handler.NewAdminUserHandler,
|
|
handler.NewAdminPostHandler,
|
|
handler.NewAdminCommentHandler,
|
|
handler.NewAdminGroupHandler,
|
|
handler.NewAdminDashboardHandler,
|
|
handler.NewAdminLogHandler,
|
|
handler.NewQRCodeHandler,
|
|
handler.NewMaterialHandler,
|
|
handler.NewCallHandler,
|
|
handler.NewReportHandler,
|
|
handler.NewAdminReportHandler,
|
|
handler.NewVerificationHandler,
|
|
handler.NewAdminProfileAuditHandler,
|
|
handler.NewPostHandler,
|
|
handler.NewTradeHandler,
|
|
handler.NewGradeHandler,
|
|
handler.NewExamHandler,
|
|
|
|
// 需要特殊处理的 Handler
|
|
ProvideUserHandler,
|
|
ProvideMessageHandler,
|
|
ProvideSystemMessageHandler,
|
|
ProvideGroupHandler,
|
|
ProvideScheduleHandler,
|
|
ProvideWSHandler,
|
|
ProvideAdminVerificationHandler,
|
|
ProvideSetupHandler,
|
|
)
|
|
|
|
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,
|
|
userService service.UserService,
|
|
groupService service.GroupService,
|
|
publisher ws.MessagePublisher,
|
|
) *handler.MessageHandler {
|
|
return handler.NewMessageHandler(chatService, messageService, userService, groupService, publisher)
|
|
}
|
|
|
|
// ProvideSystemMessageHandler 提供系统消息处理器
|
|
func ProvideSystemMessageHandler(
|
|
systemMsgService service.SystemMessageService,
|
|
) *handler.SystemMessageHandler {
|
|
return handler.NewSystemMessageHandler(systemMsgService)
|
|
}
|
|
|
|
// ProvideGroupHandler 提供群组处理器
|
|
func ProvideGroupHandler(
|
|
groupService service.GroupService,
|
|
userService service.UserService,
|
|
) *handler.GroupHandler {
|
|
return handler.NewGroupHandler(groupService, userService)
|
|
}
|
|
|
|
// ProvideScheduleHandler 提供课表处理器
|
|
func ProvideScheduleHandler(
|
|
scheduleService service.ScheduleService,
|
|
scheduleSyncService service.ScheduleSyncService,
|
|
) *handler.ScheduleHandler {
|
|
return handler.NewScheduleHandler(scheduleService, scheduleSyncService)
|
|
}
|
|
|
|
// ProvideWSHandler 提供WebSocket处理器
|
|
func ProvideWSHandler(
|
|
publisher ws.MessagePublisher,
|
|
chatService service.ChatService,
|
|
groupService service.GroupService,
|
|
jwtService *service.JWTService,
|
|
callService service.CallService,
|
|
userRepo repository.UserRepository,
|
|
) *handler.WSHandler {
|
|
return handler.NewWSHandler(publisher, chatService, groupService, jwtService, callService, userRepo)
|
|
}
|
|
|
|
// ProvideAdminVerificationHandler 提供管理端身份认证处理器
|
|
func ProvideAdminVerificationHandler(
|
|
adminVerificationService service.AdminVerificationService,
|
|
userRepo repository.UserRepository,
|
|
) *handler.AdminVerificationHandler {
|
|
return handler.NewAdminVerificationHandler(adminVerificationService, userRepo)
|
|
}
|
|
|
|
func ProvideSetupHandler(
|
|
setupService service.SetupService,
|
|
) *handler.SetupHandler {
|
|
return handler.NewSetupHandler(setupService)
|
|
}
|