115 lines
2.2 KiB
Go
115 lines
2.2 KiB
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"hospital-open-api/api/controller"
|
|
"hospital-open-api/api/exception"
|
|
"hospital-open-api/api/middlewares"
|
|
"hospital-open-api/config"
|
|
"hospital-open-api/consts"
|
|
"net/http"
|
|
)
|
|
|
|
// Init 初始化路由
|
|
func Init() *gin.Engine {
|
|
r := gin.New()
|
|
|
|
// 环境设置
|
|
if config.C.Env == "prod" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
}
|
|
|
|
r.Use(middlewares.RequestParamsMiddleware())
|
|
|
|
// 日志中间件
|
|
r.Use(middlewares.Logrus())
|
|
|
|
// 异常
|
|
r.Use(gin.Recovery())
|
|
|
|
// 404处理
|
|
r.NoRoute(func(c *gin.Context) {
|
|
path := c.Request.URL.Path
|
|
method := c.Request.Method
|
|
c.JSON(http.StatusNotFound, gin.H{
|
|
"msg": fmt.Sprintf("%s %s not found", method, path),
|
|
"code": consts.ClientHttpNotFound,
|
|
"data": "",
|
|
})
|
|
})
|
|
//
|
|
// // 异常处理
|
|
r.Use(exception.Recover())
|
|
|
|
// 跨域处理
|
|
r.Use(middlewares.Cors())
|
|
|
|
// 加载基础路由
|
|
api := controller.Api{}
|
|
|
|
// 公开路由-不验证权限
|
|
publicRouter(r, api)
|
|
|
|
// 验证权限
|
|
r.Use(middlewares.Auth())
|
|
|
|
// 私有路由-验证权限
|
|
privateRouter(r, api)
|
|
|
|
// 基础数据-验证权限
|
|
basicRouter(r, api)
|
|
|
|
return r
|
|
}
|
|
|
|
// publicRouter 公开路由-不验证权限
|
|
func publicRouter(r *gin.Engine, api controller.Api) {
|
|
_ = r.Group("/v1")
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
// basicRouter 基础数据-验证权限
|
|
func basicRouter(r *gin.Engine, api controller.Api) {
|
|
|
|
}
|
|
|
|
// privateRouter 私有路由-验证权限
|
|
func privateRouter(r *gin.Engine, api controller.Api) {
|
|
v1Group := r.Group("/v1")
|
|
{
|
|
// 用户
|
|
userGroup := v1Group.Group("/user")
|
|
{
|
|
// 医生
|
|
doctorGroup := userGroup.Group("/doctor")
|
|
{
|
|
// 获取医生详情
|
|
doctorGroup.GET("", api.V1.UserDoctor.GetDoctor)
|
|
|
|
// 获取多点执业医生详情
|
|
doctorGroup.GET("/multi", api.V1.UserDoctor.GetMultiDoctor)
|
|
|
|
// 获取医生列表-分页
|
|
doctorGroup.GET("/page", api.V1.UserDoctor.GetUserDoctorPage)
|
|
}
|
|
}
|
|
|
|
// 微信
|
|
wechatGroup := v1Group.Group("/wechat")
|
|
{
|
|
// 生成页面加密scheme码
|
|
wechatGroup.POST("/scheme", api.V1.WeChat.GetScheme)
|
|
}
|
|
|
|
// 优惠卷
|
|
couponGroup := v1Group.Group("/coupon")
|
|
{
|
|
// 领取某一优惠卷
|
|
couponGroup.POST("/receive/:coupon_id", api.V1.Coupon.GetMultiDoctor)
|
|
}
|
|
}
|
|
}
|