electricity_bill_calc_service/router/router.go

55 lines
1.4 KiB
Go

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()
}