package router import ( "electricity_bill_calc/controller" "electricity_bill_calc/logger" "electricity_bill_calc/response" "electricity_bill_calc/security" "time" ginzap "github.com/gin-contrib/zap" "github.com/gin-gonic/gin" "go.uber.org/zap" ) func Router() *gin.Engine { router := gin.New() router.Use(ginzap.Ginzap(logger.GetLogger(), time.RFC3339, false)) router.Use(ginzap.RecoveryWithZap(logger.GetLogger(), true)) router.Use(security.SessionRecovery) controller.InitializeUserController(router) controller.InitializeRegionController(router) controller.InitializeChargesController(router) controller.InitializeParkController(router) controller.InitializeMaintenanceFeeController(router) controller.InitializeMeter04kVController(router) controller.InitializeReportController(router) controller.InitializeEndUserController(router) controller.InitializeWithdrawController(router) controller.InitializeStatisticsController(router) controller.InitializeGodModeController(router) return router } // 404 func HandleNotFound(c *gin.Context) { response.NewResult(c).NotFound("指定资源未找到。") } // 500 func Recover(c *gin.Context) { defer func() { if r := recover(); r != nil { //打印错误堆栈信息 if err, ok := r.(error); ok { logger.Error(err.Error(), zap.Error(err)) } // response.NewResult(c).Error(500, "服务器内部错误") } }() //继续后续接口调用 c.Next() }