From bd531c5de11998c0d07ed9cdf3e54ac7995f8d1a Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Thu, 8 Jan 2026 16:21:46 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A1.=E5=A4=84=E7=90=86=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95=E9=97=AE=E9=A2=98=202.=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=85=8D=E7=BD=AE=E6=95=A3=E4=B9=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/biz/group_config.go | 6 ++--- internal/config/config.go | 22 +++++++++++++++++++ .../recharge/statistics_ours_product.go | 4 ++-- internal/services/dtalk_bot_test.go | 3 ++- internal/tools/bbxt/bbxt.go | 7 ++++-- internal/tools/bbxt/upload.go | 9 ++++---- 6 files changed, 39 insertions(+), 12 deletions(-) diff --git a/internal/biz/group_config.go b/internal/biz/group_config.go index c2e2ee5..b8ccb92 100644 --- a/internal/biz/group_config.go +++ b/internal/biz/group_config.go @@ -72,7 +72,7 @@ func (g *GroupConfigBiz) GetReportLists(ctx context.Context, groupConfig *model. product = strings.Split(groupConfig.ProductName, ",") } - reportList, err := bbxt.NewBbxtTools() + reportList, err := bbxt.NewBbxtTools(g.conf) if err != nil { return } @@ -145,8 +145,8 @@ func (g *GroupConfigBiz) handleReport(ctx context.Context, rec *entitys.Recogniz } } } - rep, err := bbxt.NewBbxtTools() - uploader := bbxt.NewUploader(g.ossClient) + rep, err := bbxt.NewBbxtTools(g.conf) + uploader := bbxt.NewUploader(g.ossClient, g.conf) if err != nil { return err } diff --git a/internal/config/config.go b/internal/config/config.go index a313252..6756040 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -296,3 +296,25 @@ func LoadConfigWithTest() (*Config, error) { return &bc, nil } + +func LoadConfigWithEnv() (*Config, error) { + var bc Config + modularDir, err := pkg.GetModuleDir() + if err != nil { + return nil, err + } + viper.SetConfigFile(modularDir + "/config/config_env.yaml") + viper.SetConfigType("yaml") + // 读取配置文件 + if err := viper.ReadInConfig(); err != nil { + return nil, fmt.Errorf("failed to read config file: %w", err) + } + // 解析配置 + + if err := viper.Unmarshal(&bc); err != nil { + return nil, fmt.Errorf("failed to unmarshal config: %w", err) + } + + return &bc, nil + +} diff --git a/internal/domain/workflow/recharge/statistics_ours_product.go b/internal/domain/workflow/recharge/statistics_ours_product.go index dc6d0cb..278d32b 100644 --- a/internal/domain/workflow/recharge/statistics_ours_product.go +++ b/internal/domain/workflow/recharge/statistics_ours_product.go @@ -9,6 +9,7 @@ import ( "ai_scheduler/internal/domain/workflow/runtime" "ai_scheduler/internal/pkg/lsxd" "ai_scheduler/internal/pkg/utils_oss" + "ai_scheduler/pkg" "ai_scheduler/utils" "context" "errors" @@ -158,8 +159,7 @@ func (w *statisticsOursProduct) callStatisticsTool(ctx context.Context, state *S func (w *statisticsOursProduct) generateExcelAndUpload(ctx context.Context, state *StatisticsOursProductContext) (*StatisticsOursProductContext, error) { // 1. 获取模板路径 - // cwd, _ := filepath.Abs("../../") // 单元测试用 - cwd, _ := filepath.Abs(".") + cwd, _ := pkg.GetModuleDir() templatePath := filepath.Join(cwd, "tmpl", "excel_temp", "recharge_statistics_ours_product.xlsx") fileName := fmt.Sprintf("statistics_ours_product_%d%d", time.Now().Unix(), rand.Intn(1000)) diff --git a/internal/services/dtalk_bot_test.go b/internal/services/dtalk_bot_test.go index f5f8a50..5def7e6 100644 --- a/internal/services/dtalk_bot_test.go +++ b/internal/services/dtalk_bot_test.go @@ -50,7 +50,8 @@ var ( // run 函数是程序的入口函数,负责初始化和配置各个组件 func run() { // 加载测试配置 - configConfig, err = config.LoadConfigWithTest() + // configConfig, err = config.LoadConfigWithTest() + configConfig, err = config.LoadConfigWithEnv() // 初始化数据库连接 db, _ := utils.NewGormDb(configConfig) // 初始化各种实现层组件 diff --git a/internal/tools/bbxt/bbxt.go b/internal/tools/bbxt/bbxt.go index ee8ddbf..304be24 100644 --- a/internal/tools/bbxt/bbxt.go +++ b/internal/tools/bbxt/bbxt.go @@ -1,6 +1,7 @@ package bbxt import ( + "ai_scheduler/internal/config" pkginner "ai_scheduler/internal/pkg" "ai_scheduler/internal/pkg/utils_oss" "ai_scheduler/pkg" @@ -41,9 +42,10 @@ type BbxtTools struct { cacheDir string excelTempDir string ossClient *utils_oss.Client + config *config.Config } -func NewBbxtTools() (*BbxtTools, error) { +func NewBbxtTools(config *config.Config) (*BbxtTools, error) { cache, err := pkg.GetCacheDir() if err != nil { return nil, err @@ -56,6 +58,7 @@ func NewBbxtTools() (*BbxtTools, error) { return &BbxtTools{ cacheDir: cache, excelTempDir: fmt.Sprintf("%s/excel_temp", tempDir), + config: config, }, nil } @@ -81,7 +84,7 @@ func (b *BbxtTools) DailyReport(now time.Time, downWardValue int32, productName reports = append(reports, profitRankingSum, statisOfficialProductSum, statisOfficialProductSumDecline) if ossClient != nil { - uploader := NewUploader(ossClient) + uploader := NewUploader(ossClient, b.config) for _, report := range reports { _ = uploader.Run(report) } diff --git a/internal/tools/bbxt/upload.go b/internal/tools/bbxt/upload.go index 5ca4c3e..3541ec9 100644 --- a/internal/tools/bbxt/upload.go +++ b/internal/tools/bbxt/upload.go @@ -1,6 +1,7 @@ package bbxt import ( + "ai_scheduler/internal/config" "ai_scheduler/internal/pkg/utils_oss" "bytes" "fmt" @@ -19,13 +20,13 @@ import ( type Uploader struct { ossClient *utils_oss.Client + config *config.Config } -const RequestUrl = "http://excel2pic:8000/api/v1/convert" - -func NewUploader(oss *utils_oss.Client) *Uploader { +func NewUploader(oss *utils_oss.Client, config *config.Config) *Uploader { return &Uploader{ ossClient: oss, + config: config, } } @@ -118,7 +119,7 @@ func (u *Uploader) excel2picPy(templatePath string, excelBytes []byte, scale int // 3. 发送 HTTP POST 请求 - req, err := http.NewRequest("POST", RequestUrl, body) + req, err := http.NewRequest("POST", u.config.EinoTools.Excel2Pic.BaseURL, body) if err != nil { return nil, fmt.Errorf("create request failed: %v", err) }