feat(grpc): add gRPC server infrastructure and schedule sync service

Add gRPC server support with configurable TLS, environment-based settings, and Wire injection. Implement schedule synchronization service with task runner integration for external course data fetching.

- Add gRPC configuration with env var overrides (APP_GRPC_ENABLED, APP_GRPC_PORT, etc.)
- Create gRPC server infrastructure with runner task management
- Implement ScheduleSyncService for course data synchronization
- Add sync endpoint to schedule handler for external system integration
- Update repository with context-aware batch delete operation
- Wire all dependencies including zap logger for structured logging
This commit is contained in:
2026-03-13 20:40:20 +08:00
parent cf36b1350d
commit c561a0bb0c
20 changed files with 3241 additions and 5 deletions

View File

@@ -22,7 +22,6 @@ var HandlerSet = wire.NewSet(
handler.NewPushHandler,
handler.NewStickerHandler,
handler.NewVoteHandler,
handler.NewScheduleHandler,
// 需要特殊处理的 Handler
ProvidePostHandler,
@@ -30,6 +29,7 @@ var HandlerSet = wire.NewSet(
ProvideSystemMessageHandler,
ProvideGroupHandler,
ProvideGorseHandler,
ProvideScheduleHandler,
)
// ProvidePostHandler 提供帖子处理器
@@ -72,3 +72,11 @@ func ProvideGroupHandler(
func ProvideGorseHandler(cfg *config.Config, db *gorm.DB) *handler.GorseHandler {
return handler.NewGorseHandler(cfg.Gorse, db)
}
// ProvideScheduleHandler 提供课表处理器
func ProvideScheduleHandler(
scheduleService service.ScheduleService,
scheduleSyncService service.ScheduleSyncService,
) *handler.ScheduleHandler {
return handler.NewScheduleHandler(scheduleService, scheduleSyncService)
}