feat: add season reset worker
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
11a59b0632
commit
d88e7ac504
52
backend/services/assetService/worker/season_reset_worker.go
Normal file
52
backend/services/assetService/worker/season_reset_worker.go
Normal file
@ -0,0 +1,52 @@
|
||||
package worker
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/topfans/backend/pkg/logger"
|
||||
"github.com/topfans/backend/services/assetService/repository"
|
||||
"github.com/topfans/backend/services/assetService/service"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type SeasonResetWorker struct {
|
||||
seasonRepo *repository.SeasonRepository
|
||||
levelService service.AssetLevelService
|
||||
}
|
||||
|
||||
func NewSeasonResetWorker(
|
||||
seasonRepo *repository.SeasonRepository,
|
||||
levelService service.AssetLevelService,
|
||||
) *SeasonResetWorker {
|
||||
return &SeasonResetWorker{
|
||||
seasonRepo: seasonRepo,
|
||||
levelService: levelService,
|
||||
}
|
||||
}
|
||||
|
||||
func (w *SeasonResetWorker) Run() {
|
||||
now := time.Now().UnixMilli()
|
||||
|
||||
// 获取已结束的赛季
|
||||
seasons, err := w.seasonRepo.GetEndedSeasons()
|
||||
if err != nil {
|
||||
logger.Logger.Error("SeasonResetWorker: failed to get ended seasons", zap.Error(err))
|
||||
return
|
||||
}
|
||||
|
||||
for _, season := range seasons {
|
||||
if season.EndTime > now {
|
||||
continue // 还未真正结束
|
||||
}
|
||||
|
||||
if err := w.levelService.SeasonReset(season.ID); err != nil {
|
||||
logger.Logger.Error("SeasonResetWorker: failed to reset season",
|
||||
zap.String("season_id", season.ID),
|
||||
zap.Error(err))
|
||||
continue
|
||||
}
|
||||
|
||||
logger.Logger.Info("SeasonResetWorker: season reset completed",
|
||||
zap.String("season_id", season.ID))
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user