package main import ( "embed" "flag" "fmt" "io/fs" "net/http" "bj_power_mes/common/httpx" xlog "bj_power_mes/common/logx" "bj_power_mes/internal/config" "bj_power_mes/internal/handler" "bj_power_mes/internal/svc" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/rest" ) var configFile = flag.String("f", "etc/bj_power_mes-api.yaml", "the config file") //go:embed public var public embed.FS func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) // 日志按天存储:logs/bj_power_mes-2026-01-02.log,保留 30 天 logger := xlog.NewLogger(c.Logger) xlog.SetDefault(logger) logx.SetWriter(logger) logx.DisableStat() defer func() { _ = logger.Close() }() svcCtx := svc.NewServiceContext(c) // 内嵌前端(public/)SPA sub, _ := fs.Sub(public, "public") spaHandler := httpx.NewNotFoundHandler(http.FS(sub)) server := rest.MustNewServer( c.RestConf, rest.WithCors("*"), rest.WithNotFoundHandler(http.HandlerFunc(spaHandler.ServeHTTP)), ) defer server.Stop() // 鉴权/系统管理 + 生产业务 + 内部 API/看板 handler.RegisterRoutes(server, svcCtx) handler.RegisterProductionRoutes(server, svcCtx) fmt.Printf("Starting bj_power_mes server at %s:%d...\n", c.Host, c.Port) logx.Infof("Starting bj_power_mes server at %s:%d...", c.Host, c.Port) server.Start() }