main.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package main
  2. import (
  3. "fwh-toolbox-server/cache"
  4. "fwh-toolbox-server/config"
  5. "fwh-toolbox-server/database"
  6. "fwh-toolbox-server/repositories"
  7. "fwh-toolbox-server/repositories/api/fwh_pro"
  8. "fwh-toolbox-server/taskQueue"
  9. "fwh-toolbox-server/utils/casdoor"
  10. "fwh-toolbox-server/utils/minio"
  11. // "fwh-toolbox-server/database"
  12. _ "fwh-toolbox-server/docs" // swag 自动生成文档
  13. "fwh-toolbox-server/logger"
  14. "fwh-toolbox-server/routes"
  15. "fwh-toolbox-server/scheduler"
  16. "fwh-toolbox-server/networkEvents"
  17. "github.com/gofiber/fiber/v2"
  18. "github.com/gofiber/swagger"
  19. "go.uber.org/zap"
  20. )
  21. func main() {
  22. var cfg *config.Config
  23. var err error
  24. cfg, err = config.LoadConfig()
  25. if err != nil {
  26. panic(err)
  27. }
  28. err = logger.Init(cfg.App.AppEnv)
  29. if err != nil {
  30. panic(err)
  31. }
  32. defer logger.Log.Sync() // 退出前同步zap缓冲区
  33. // 初始化数据库
  34. err = database.Init(&cfg.App)
  35. if err != nil {
  36. zap.L().Error("database init failed.", zap.String("err", err.Error()))
  37. panic(err)
  38. }
  39. // 初始化缓存
  40. cache.Init(cfg.App.RedisAddr)
  41. // 初始化Minio
  42. minio.InitClient(&cfg.App)
  43. // 初始化FwhApi
  44. repositories.FwhHttpInit(&cfg.FwhApi)
  45. // 初始化计划任务
  46. scheduler.Init()
  47. // 初始化任务队列
  48. taskQueue.InitTaskQueue()
  49. // 初始化Casdoor
  50. casdoor.InitAuthConfig()
  51. // 初始化FWH MQTT客户端
  52. repositories.FwhMqttInit(&cfg.FwhMqtt)
  53. // repositories.FwhMqttFaultRecordChargeChannel(context.Background(), "10060005A03X25160385")
  54. app := fiber.New()
  55. app.Use(func(c *fiber.Ctx) error {
  56. logger.Log.Info("请求", zap.String("path", c.Path()))
  57. return c.Next()
  58. })
  59. // 注册 Swagger 路由
  60. app.Get("/swagger/*", swagger.HandlerDefault)
  61. routes.Setup(app)
  62. // 启动第一个监听
  63. // go func() {
  64. go func() {
  65. if err := networkEvents.InitEvio(); err != nil {
  66. zap.L().Error("networkEvents init failed.", zap.String("err", err.Error()))
  67. panic(err)
  68. }
  69. }()
  70. // 提前登录FWH
  71. err = fwh_pro.Login()
  72. if err != nil {
  73. zap.L().Error("FWH login failed.", zap.String("err", err.Error()))
  74. // panic(err)
  75. }
  76. err = app.Listen("localhost:" + cfg.App.AppPort)
  77. if err != nil {
  78. zap.L().Error("Port listening failed.", zap.String("err", err.Error()))
  79. panic(err)
  80. }
  81. }