refactor: remove Gorse integration and implement HotRank feature
- Removed Gorse-related configurations, handlers, and dependencies from the codebase. - Introduced HotRank feature with configuration options for ranking posts based on recent activity. - Updated application structure to support HotRank processing, including new caching mechanisms and database interactions. - Cleaned up related DTOs and repository methods to reflect the removal of Gorse and the addition of HotRank functionality.
This commit is contained in:
@@ -16,13 +16,14 @@ import (
|
||||
|
||||
// App 应用程序结构体
|
||||
type App struct {
|
||||
Config *config.Config
|
||||
DB *gorm.DB
|
||||
Router *router.Router
|
||||
PushService service.PushService
|
||||
GRPCServer *runner.Server
|
||||
Server *http.Server
|
||||
Logger *zap.Logger
|
||||
Config *config.Config
|
||||
DB *gorm.DB
|
||||
Router *router.Router
|
||||
PushService service.PushService
|
||||
HotRankWorker *service.HotRankWorker
|
||||
GRPCServer *runner.Server
|
||||
Server *http.Server
|
||||
Logger *zap.Logger
|
||||
}
|
||||
|
||||
// NewApp 创建应用程序
|
||||
@@ -31,16 +32,18 @@ func NewApp(
|
||||
db *gorm.DB,
|
||||
r *router.Router,
|
||||
pushService service.PushService,
|
||||
hotRankWorker *service.HotRankWorker,
|
||||
grpcServer *runner.Server,
|
||||
logger *zap.Logger,
|
||||
) *App {
|
||||
return &App{
|
||||
Config: cfg,
|
||||
DB: db,
|
||||
Router: r,
|
||||
PushService: pushService,
|
||||
GRPCServer: grpcServer,
|
||||
Logger: logger,
|
||||
Config: cfg,
|
||||
DB: db,
|
||||
Router: r,
|
||||
PushService: pushService,
|
||||
HotRankWorker: hotRankWorker,
|
||||
GRPCServer: grpcServer,
|
||||
Logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +60,11 @@ func (a *App) Start(ctx context.Context) error {
|
||||
// 2. 启动推送 Worker
|
||||
a.PushService.StartPushWorker(ctx)
|
||||
|
||||
// 2.1 热门榜定时重算
|
||||
if a.HotRankWorker != nil {
|
||||
a.HotRankWorker.Start(ctx)
|
||||
}
|
||||
|
||||
// 3. 创建 HTTP 服务器
|
||||
addr := fmt.Sprintf("%s:%d", a.Config.Server.Host, a.Config.Server.Port)
|
||||
a.Logger.Info("Starting HTTP server",
|
||||
@@ -104,6 +112,11 @@ func (a *App) Stop(ctx context.Context) error {
|
||||
a.Logger.Info("Stopping push worker")
|
||||
a.PushService.StopPushWorker()
|
||||
|
||||
if a.HotRankWorker != nil {
|
||||
a.Logger.Info("Stopping hot rank worker")
|
||||
a.HotRankWorker.Stop()
|
||||
}
|
||||
|
||||
// 4. 关闭数据库连接
|
||||
a.Logger.Info("Closing database connection")
|
||||
sqlDB, err := a.DB.DB()
|
||||
|
||||
@@ -35,7 +35,6 @@ func ProvideRouter(
|
||||
systemMessageHandler *handler.SystemMessageHandler,
|
||||
groupHandler *handler.GroupHandler,
|
||||
stickerHandler *handler.StickerHandler,
|
||||
gorseHandler *handler.GorseHandler,
|
||||
voteHandler *handler.VoteHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
roleHandler *handler.RoleHandler,
|
||||
@@ -62,7 +61,6 @@ func ProvideRouter(
|
||||
systemMessageHandler,
|
||||
groupHandler,
|
||||
stickerHandler,
|
||||
gorseHandler,
|
||||
voteHandler,
|
||||
scheduleHandler,
|
||||
roleHandler,
|
||||
|
||||
@@ -42,7 +42,6 @@ func InitializeApp() (*App, error) {
|
||||
userService := wire.ProvideUserService(userRepository, systemMessageService, emailService, cache)
|
||||
userActivityRepository := wire.ProvideUserActivityRepository(db, cache)
|
||||
userActivityService := wire.ProvideUserActivityService(userActivityRepository)
|
||||
gorseClient := wire.ProvideGorseClient(config)
|
||||
openaiClient := wire.ProvideOpenAIClient(config)
|
||||
postAIService := wire.ProvidePostAIService(openaiClient)
|
||||
transactionManager := wire.ProvideTransactionManager(db)
|
||||
@@ -50,8 +49,8 @@ func InitializeApp() (*App, error) {
|
||||
commentRepository := repository.NewCommentRepository(db)
|
||||
moderationHooks := wire.ProvideModerationHooks(manager, postAIService, postRepository, commentRepository, config)
|
||||
builtinHooks := wire.ProvideBuiltinHooks(manager)
|
||||
postService := wire.ProvidePostService(postRepository, systemMessageService, gorseClient, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks)
|
||||
commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, gorseClient, postAIService, cache, manager)
|
||||
postService := wire.ProvidePostService(postRepository, systemMessageService, postAIService, cache, transactionManager, manager, moderationHooks, builtinHooks)
|
||||
commentService := wire.ProvideCommentService(commentRepository, postRepository, systemMessageService, postAIService, cache, manager)
|
||||
operationLogRepository := repository.NewOperationLogRepository(db)
|
||||
loginLogRepository := repository.NewLoginLogRepository(db)
|
||||
dataChangeLogRepository := repository.NewDataChangeLogRepository(db)
|
||||
@@ -85,7 +84,6 @@ func InitializeApp() (*App, error) {
|
||||
stickerRepository := repository.NewStickerRepository(db)
|
||||
stickerService := wire.ProvideStickerService(stickerRepository)
|
||||
stickerHandler := handler.NewStickerHandler(stickerService)
|
||||
gorseHandler := wire.ProvideGorseHandler(config, db)
|
||||
voteRepository := repository.NewVoteRepository(db)
|
||||
voteService := wire.ProvideVoteService(voteRepository, postRepository, cache, postAIService, systemMessageService)
|
||||
voteHandler := handler.NewVoteHandler(voteService, postService)
|
||||
@@ -113,8 +111,9 @@ func InitializeApp() (*App, error) {
|
||||
adminLogHandler := handler.NewAdminLogHandler(operationLogService, loginLogService, dataChangeLogService)
|
||||
qrCodeLoginService := wire.ProvideQRCodeLoginService(client, hub, jwtService, userService, userActivityService, logService)
|
||||
qrCodeHandler := handler.NewQRCodeHandler(qrCodeLoginService)
|
||||
router := ProvideRouter(userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, gorseHandler, voteHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, logService, userActivityService, casbinService)
|
||||
app := NewApp(config, db, router, pushService, server, logger)
|
||||
router := ProvideRouter(userHandler, postHandler, commentHandler, messageHandler, notificationHandler, uploadHandler, jwtService, pushHandler, systemMessageHandler, groupHandler, stickerHandler, voteHandler, scheduleHandler, roleHandler, adminUserHandler, adminPostHandler, adminCommentHandler, adminGroupHandler, adminDashboardHandler, adminLogHandler, qrCodeHandler, logService, userActivityService, casbinService)
|
||||
hotRankWorker := wire.ProvideHotRankWorker(config, postRepository, cache)
|
||||
app := NewApp(config, db, router, pushService, hotRankWorker, server, logger)
|
||||
return app, nil
|
||||
}
|
||||
|
||||
@@ -133,7 +132,6 @@ func ProvideRouter(
|
||||
systemMessageHandler *handler.SystemMessageHandler,
|
||||
groupHandler *handler.GroupHandler,
|
||||
stickerHandler *handler.StickerHandler,
|
||||
gorseHandler *handler.GorseHandler,
|
||||
voteHandler *handler.VoteHandler,
|
||||
scheduleHandler *handler.ScheduleHandler,
|
||||
roleHandler *handler.RoleHandler,
|
||||
@@ -160,7 +158,6 @@ func ProvideRouter(
|
||||
systemMessageHandler,
|
||||
groupHandler,
|
||||
stickerHandler,
|
||||
gorseHandler,
|
||||
voteHandler,
|
||||
scheduleHandler,
|
||||
roleHandler,
|
||||
|
||||
Reference in New Issue
Block a user