This commit is contained in:
2026-01-27 16:26:48 +08:00
parent 3ef7b7d1fb
commit f8806eb71c
19 changed files with 1260 additions and 358 deletions

View File

@@ -4,7 +4,6 @@ import (
"context"
"fmt"
"os"
"strconv"
"time"
"go.uber.org/fx"
@@ -1145,36 +1144,33 @@ func NewContainer() *Container {
return pdf.NewPDFGenerator(logger)
},
),
// PDF缓存管理器
// PDF缓存管理器用于PDFG
fx.Provide(
func(logger *zap.Logger) (*pdf.PDFCacheManager, error) {
// 使用默认配置缓存目录在临时目录TTL为24小时最大缓存大小为500MB
cacheDir := "" // 使用默认目录临时目录下的tyapi_pdf_cache
ttl := 24 * time.Hour
maxSize := int64(500 * 1024 * 1024) // 500MB
func(cfg *config.Config, logger *zap.Logger) (*pdf.PDFCacheManager, error) {
cacheDir := cfg.PDFGen.Cache.CacheDir
ttl := cfg.PDFGen.Cache.TTL
if ttl == 0 {
ttl = 24 * time.Hour
}
// 可以通过环境变量覆盖
if envCacheDir := os.Getenv("PDF_CACHE_DIR"); envCacheDir != "" {
// 环境变量可以覆盖配置
if envCacheDir := os.Getenv("PDFG_CACHE_DIR"); envCacheDir != "" {
cacheDir = envCacheDir
}
if envTTL := os.Getenv("PDF_CACHE_TTL"); envTTL != "" {
if envTTL := os.Getenv("PDFG_CACHE_TTL"); envTTL != "" {
if parsedTTL, err := time.ParseDuration(envTTL); err == nil {
ttl = parsedTTL
}
}
if envMaxSize := os.Getenv("PDF_CACHE_MAX_SIZE"); envMaxSize != "" {
if parsedMaxSize, err := strconv.ParseInt(envMaxSize, 10, 64); err == nil {
maxSize = parsedMaxSize
}
}
maxSize := cfg.PDFGen.Cache.MaxSize
cacheManager, err := pdf.NewPDFCacheManager(logger, cacheDir, ttl, maxSize)
if err != nil {
logger.Warn("PDF缓存管理器初始化失败,将禁用缓存功能", zap.Error(err))
return nil, nil // 返回nilhandler中会检查
logger.Warn("PDFG缓存管理器初始化失败", zap.Error(err))
return nil, err
}
logger.Info("PDF缓存管理器已初始化",
logger.Info("PDFG缓存管理器已初始化",
zap.String("cache_dir", cacheDir),
zap.Duration("ttl", ttl),
zap.Int64("max_size", maxSize),
@@ -1237,6 +1233,8 @@ func NewContainer() *Container {
) *handlers.AnnouncementHandler {
return handlers.NewAnnouncementHandler(appService, responseBuilder, validator, logger)
},
// PDFG HTTP处理器
handlers.NewPDFGHandler,
// 组件报告处理器
func(
productRepo domain_product_repo.ProductRepository,
@@ -1299,6 +1297,8 @@ func NewContainer() *Container {
routes.NewApiRoutes,
// 统计路由
routes.NewStatisticsRoutes,
// PDFG路由
routes.NewPDFGRoutes,
),
// 应用生命周期
@@ -1412,6 +1412,7 @@ func RegisterRoutes(
announcementRoutes *routes.AnnouncementRoutes,
apiRoutes *routes.ApiRoutes,
statisticsRoutes *routes.StatisticsRoutes,
pdfgRoutes *routes.PDFGRoutes,
jwtAuth *middleware.JWTAuthMiddleware,
adminAuth *middleware.AdminAuthMiddleware,
cfg *config.Config,
@@ -1435,6 +1436,7 @@ func RegisterRoutes(
articleRoutes.Register(router)
announcementRoutes.Register(router)
statisticsRoutes.Register(router)
pdfgRoutes.Register(router)
// 打印注册的路由信息
router.PrintRoutes()