package router import ( "electricity_bill_calc/controller" "electricity_bill_calc/logger" "electricity_bill_calc/response" "electricity_bill_calc/security" "github.com/gin-gonic/gin" ) func Router() *gin.Engine { router := gin.Default() router.Use(logger.Logger()) router.Use(Recover) 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(err).Stack().Msg(err.Error()) } // response.NewResult(c).Error(500, "服务器内部错误") } }() //继续后续接口调用 c.Next() }