router.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package routers
  2. import (
  3. "mtp2_if/controllers/cptrade"
  4. "mtp2_if/controllers/wrtrade"
  5. "mtp2_if/logger"
  6. "mtp2_if/token"
  7. "time"
  8. "github.com/gin-gonic/gin"
  9. // Swagger生成的文档
  10. _ "mtp2_if/docs"
  11. ginSwagger "github.com/swaggo/gin-swagger"
  12. "github.com/swaggo/gin-swagger/swaggerFiles"
  13. )
  14. // InitRouter 初始化路由器的方法
  15. func InitRouter() *gin.Engine {
  16. r := gin.New()
  17. // 设置日志中间件
  18. r.Use(ginLoggerMiddleware())
  19. // 设置奔溃中间件
  20. r.Use(ginRecoveryMiddleware())
  21. // Swagger
  22. r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  23. // 路由分组
  24. apiR := r.Group("/api")
  25. apiR.Use(token.Auth())
  26. // ************************ 仓单贸易 ************************
  27. wrTradeR := apiR.Group("WRTrade")
  28. wrTradeR.Use()
  29. {
  30. wrTradeR.GET("/GetAllDeliveryGoods", wrtrade.GetAllDeliveryGoods)
  31. }
  32. // ************************ 产能预售 ************************
  33. cpTradeR := apiR.Group("CPTrade")
  34. cpTradeR.Use()
  35. {
  36. // 查询产能预售申请表
  37. cpTradeR.GET("/QueryPreasleApply", cptrade.QueryPreasleApply)
  38. // 查询远期订单信息
  39. cpTradeR.GET("/QueryCPTradeUserGoodsData", cptrade.QueryCPTradeUserGoodsData)
  40. // 查询远期订单注销申请信息
  41. cpTradeR.GET("/QueryCPTradePositionCancel", cptrade.QueryCPTradePositionCancel)
  42. }
  43. return r
  44. }
  45. func ginLoggerMiddleware() gin.HandlerFunc {
  46. return func(c *gin.Context) {
  47. start := time.Now()
  48. c.Next()
  49. end := time.Now()
  50. latency := end.Sub(start)
  51. path := c.Request.URL.RequestURI()
  52. clientip := c.ClientIP()
  53. method := c.Request.Method
  54. statuscode := c.Writer.Status()
  55. logger.GetLogger().Infof("|%3d|%13v|%15s|%s %s",
  56. statuscode,
  57. latency,
  58. clientip,
  59. method,
  60. path)
  61. }
  62. }
  63. func ginRecoveryMiddleware() gin.HandlerFunc {
  64. return gin.RecoveryWithWriter(logger.GetLogWriter())
  65. }