diff --git a/backend/internal/config/config.go b/backend/internal/config/config.go index d0da761..87915aa 100644 --- a/backend/internal/config/config.go +++ b/backend/internal/config/config.go @@ -16,7 +16,6 @@ type Config struct { JWTExpirationHours int Port string AllowedOrigins []string - TushareToken string } func Load() (*Config, error) { @@ -51,15 +50,12 @@ func Load() (*Config, error) { } } - tushareToken := os.Getenv("TUSHARE_TOKEN") - return &Config{ DatabaseURL: databaseURL, JWTSecret: jwtSecret, JWTExpirationHours: expHours, Port: port, AllowedOrigins: allowedOrigins, - TushareToken: tushareToken, }, nil } diff --git a/backend/internal/datasource/tushare.go b/backend/internal/datasource/tushare.go index ea144f1..9031d74 100644 --- a/backend/internal/datasource/tushare.go +++ b/backend/internal/datasource/tushare.go @@ -8,12 +8,11 @@ import ( "net/http" "strconv" "time" - - "stock-user-system/internal/config" ) const ( tushareBaseURL = "http://api.tushare.pro" + tushareToken = "76efd8465f9f2591aa42a385268e06acf6b80b7a15be2267ad2281b7" defaultTimeout = 60 * time.Second maxRetries = 3 retryBaseDelay = 1 * time.Second @@ -38,10 +37,10 @@ type Client struct { client *http.Client } -// NewClient 从配置创建 Tushare 客户端。 -func NewClient(cfg *config.Config) *Client { +// NewClient 创建 Tushare 客户端。 +func NewClient() *Client { return &Client{ - token: cfg.TushareToken, + token: tushareToken, baseURL: tushareBaseURL, client: &http.Client{Timeout: defaultTimeout}, } diff --git a/backend/internal/handlers/data_sync.go b/backend/internal/handlers/data_sync.go index bb6d592..2ddc43a 100644 --- a/backend/internal/handlers/data_sync.go +++ b/backend/internal/handlers/data_sync.go @@ -4,7 +4,6 @@ import ( "net/http" "strings" - "stock-user-system/internal/config" "stock-user-system/internal/datasource" "stock-user-system/internal/models" @@ -15,16 +14,14 @@ import ( // DataSyncHandler 处理数据同步相关接口。 type DataSyncHandler struct { DB *gorm.DB - CFG *config.Config client *datasource.Client } // NewDataSyncHandler 创建数据同步处理器。 -func NewDataSyncHandler(db *gorm.DB, cfg *config.Config) *DataSyncHandler { +func NewDataSyncHandler(db *gorm.DB) *DataSyncHandler { return &DataSyncHandler{ DB: db, - CFG: cfg, - client: datasource.NewClient(cfg), + client: datasource.NewClient(), } } @@ -35,11 +32,6 @@ type initStocksResponse struct { // InitStocks 从 Tushare 拉取全部上市股票列表并写入数据库。 func (h *DataSyncHandler) InitStocks(c *gin.Context) { - if h.CFG.TushareToken == "" { - c.JSON(http.StatusBadRequest, gin.H{"success": false, "error": "未配置 TUSHARE_TOKEN"}) - return - } - stocks, err := h.client.ListStocks() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"success": false, "error": err.Error()}) diff --git a/backend/internal/routes/routes.go b/backend/internal/routes/routes.go index 727e1a5..729e396 100644 --- a/backend/internal/routes/routes.go +++ b/backend/internal/routes/routes.go @@ -13,7 +13,7 @@ import ( func Setup(cfg *config.Config, db *gorm.DB) *gin.Engine { authHandler := &handlers.AuthHandler{DB: db, CFG: cfg} adminHandler := &handlers.AdminHandler{DB: db, CFG: cfg} - dataSyncHandler := handlers.NewDataSyncHandler(db, cfg) + dataSyncHandler := handlers.NewDataSyncHandler(db) r := gin.Default()