main.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package main
  2. import (
  3. "easydo-echo_win7/config"
  4. "easydo-echo_win7/handlers"
  5. "easydo-echo_win7/services"
  6. "log"
  7. "github.com/labstack/echo-contrib/session"
  8. "github.com/labstack/echo/v4"
  9. "github.com/labstack/echo/v4/middleware"
  10. )
  11. func main() {
  12. conf, err := config.Load("./config/config-dev.yaml")
  13. if err != nil {
  14. println("配置文件加载失败")
  15. }
  16. // 初始化服务
  17. go services.InitCaptcha()
  18. go services.InitMyRedis(
  19. conf.Redis.Addr,
  20. conf.Redis.Password,
  21. conf.Redis.DB,
  22. )
  23. go services.InitMysqlPool(
  24. conf.Database.User,
  25. conf.Database.Password,
  26. conf.Database.Host,
  27. conf.Database.Port,
  28. conf.Database.Name,
  29. conf.Database.Log,
  30. )
  31. go services.InitMinioServie(
  32. conf.Minio.Addr,
  33. conf.Minio.User,
  34. conf.Minio.Password,
  35. conf.Minio.UseSSL,
  36. )
  37. // 创建Echo实例
  38. e := echo.New()
  39. // 配置中间件
  40. if conf.Server.WebLog {
  41. // e.Use(middleware.LoggerWithConfig())
  42. e.Use(middleware.BodyDump(func(c echo.Context, reqBody, resBody []byte) {
  43. log.Printf("URI: \033[34m%s\033[0m, Agent: %s, remote_ip: %s\n Request Body: \033[31m%s\033[0m\n Response Body: \033[32m%s\033[0m",
  44. c.Request().URL.Path, c.Request().UserAgent(), c.Request().RemoteAddr, string(reqBody), string(resBody))
  45. }))
  46. }
  47. // e.Use(middleware.Recover())
  48. e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
  49. AllowOrigins: []string{"*"},
  50. AllowMethods: []string{echo.GET, echo.POST, echo.PUT, echo.DELETE, echo.OPTIONS},
  51. AllowHeaders: []string{echo.HeaderContentType, echo.HeaderAuthorization},
  52. }))
  53. // 配置Session中间件
  54. e.Use(session.Middleware(services.SessionStore()))
  55. // 定义路由
  56. setupRoutes(e)
  57. // 启动服务器
  58. port := conf.Server.Port
  59. log.Printf("服务器启动在 http://%s", port)
  60. if err := e.Start(port); err != nil {
  61. e.Logger.Fatal(err)
  62. }
  63. }
  64. func setupRoutes(e *echo.Echo) {
  65. handlers.Add_auth_to_routes(e)
  66. handlers.Add_menu_to_routes(e)
  67. handlers.Add_role_to_routes(e)
  68. handlers.Add_dept_to_routes(e)
  69. handlers.Add_user_to_routes(e)
  70. handlers.Add_role_menu_to_routes(e)
  71. handlers.Add_device_to_routes(e)
  72. handlers.Add_tenant_to_routes(e)
  73. handlers.Add_minio_to_routes(e)
  74. handlers.Add_customer_to_routes(e)
  75. handlers.Add_quality_inspect_program_to_routes(e)
  76. handlers.Add_product_material_to_routes(e)
  77. handlers.Add_product_bom_to_routes(e)
  78. handlers.Add_process_stage_to_routes(e)
  79. handlers.Add_process_route_to_routes(e)
  80. handlers.Add_sale_plan_to_routes(e)
  81. handlers.Add_sale_order_to_routes(e)
  82. handlers.Add_sale_performance_to_routes(e)
  83. handlers.Add_purchase_plan_to_routes(e)
  84. handlers.Add_purchase_order_to_routes(e)
  85. handlers.Add_warehouse_to_routes(e)
  86. handlers.Add_warehouse_material_to_routes(e)
  87. handlers.Add_product_plan_to_routes(e)
  88. handlers.Add_product_pre_plan_to_routes(e)
  89. }