2025-10-04 16:14:54 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"fmt"
|
2025-11-04 17:44:54 +08:00
|
|
|
|
"os"
|
|
|
|
|
|
"path/filepath"
|
|
|
|
|
|
"strings"
|
2025-10-04 16:14:54 +08:00
|
|
|
|
|
2025-11-02 00:33:10 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/config"
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/init/database/cache"
|
2025-11-03 17:23:03 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/middleware/cors"
|
2025-11-02 00:33:10 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/router"
|
2025-10-04 17:42:53 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-10-04 16:14:54 +08:00
|
|
|
|
func main() {
|
2025-11-04 17:44:54 +08:00
|
|
|
|
var configPath string
|
|
|
|
|
|
exePath, err := os.Executable()
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
fmt.Printf("获取程序路径失败:%v\n", err)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
exeDir := filepath.Dir(exePath)
|
|
|
|
|
|
|
|
|
|
|
|
if strings.Contains(strings.ToLower(exeDir), "tmp") {
|
2025-11-04 23:00:01 +08:00
|
|
|
|
projectRoot := filepath.Join(exeDir, "..")
|
2025-11-04 17:44:54 +08:00
|
|
|
|
configPath = filepath.Join(projectRoot, "config", "config.yaml")
|
|
|
|
|
|
|
|
|
|
|
|
if _, err := os.Stat(configPath); err != nil {
|
|
|
|
|
|
configPath = filepath.Join(".", "config", "config.yaml")
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
configPath = filepath.Join(exeDir, "config", "config.yaml")
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if _, err := os.Stat(configPath); err != nil {
|
|
|
|
|
|
fmt.Printf("配置文件不存在:%s\n", configPath)
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
cfg, err := config.LoadConfig(configPath)
|
2025-10-04 16:14:54 +08:00
|
|
|
|
if err != nil {
|
2025-10-04 20:48:50 +08:00
|
|
|
|
fmt.Printf("加载配置失败:%v\n", err)
|
2025-10-04 16:14:54 +08:00
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-02 00:33:10 +08:00
|
|
|
|
cache.InitCache()
|
2025-11-02 01:00:01 +08:00
|
|
|
|
defer func() {
|
|
|
|
|
|
err := cache.CloseCache()
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
return
|
|
|
|
|
|
}
|
|
|
|
|
|
}()
|
2025-11-02 00:33:10 +08:00
|
|
|
|
|
2025-10-04 20:48:50 +08:00
|
|
|
|
r := router.SetupRouter(cfg)
|
2025-10-04 16:14:54 +08:00
|
|
|
|
|
2025-11-03 17:23:03 +08:00
|
|
|
|
r.Use(cors.CorsMiddleware(&cfg.Server))
|
2025-10-04 17:42:53 +08:00
|
|
|
|
|
2025-10-04 20:48:50 +08:00
|
|
|
|
addr := fmt.Sprintf(":%s", cfg.Server.Port)
|
|
|
|
|
|
fmt.Printf("后端服务启动成功,地址:http://localhost%s\n", addr)
|
|
|
|
|
|
if err := r.Run(addr); err != nil {
|
|
|
|
|
|
fmt.Printf("服务启动失败:%v\n", err)
|
2025-10-04 16:14:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|