302 lines
7.3 KiB
Go
302 lines
7.3 KiB
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"hepa-calc-admin-api/api/controller"
|
|
"hepa-calc-admin-api/api/exception"
|
|
"hepa-calc-admin-api/api/middlewares"
|
|
"hepa-calc-admin-api/config"
|
|
"hepa-calc-admin-api/consts"
|
|
"net/http"
|
|
)
|
|
|
|
// Init 初始化路由
|
|
func Init() *gin.Engine {
|
|
r := gin.New()
|
|
|
|
// 环境设置
|
|
if config.C.Env == "prod" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
}
|
|
|
|
// 获取请求参数中间件-json格式下会导致接口获取不到请求数据
|
|
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)
|
|
|
|
// 验证jwt
|
|
r.Use(middlewares.Jwt())
|
|
|
|
// 验证权限
|
|
r.Use(middlewares.Auth())
|
|
|
|
// 私有路由-验证权限
|
|
privateRouter(r, api)
|
|
|
|
// 公共路由-验证权限
|
|
adminRouter(r, api)
|
|
|
|
// 基础数据-验证权限
|
|
basicRouter(r, api)
|
|
|
|
return r
|
|
}
|
|
|
|
// publicRouter 公开路由-不验证权限
|
|
func publicRouter(r *gin.Engine, api controller.Api) {
|
|
adminGroup := r.Group("/admin")
|
|
|
|
// 登录
|
|
adminGroup.POST("/login", api.Public.Login)
|
|
|
|
// 验证码
|
|
adminGroup.GET("/captcha", api.Public.GetCaptcha)
|
|
}
|
|
|
|
// adminRouter 公共路由-验证权限
|
|
func adminRouter(r *gin.Engine, api controller.Api) {
|
|
adminGroup := r.Group("/admin")
|
|
|
|
// 首页
|
|
indexGroup := adminGroup.Group("/index")
|
|
{
|
|
// 首页
|
|
indexGroup.GET("", api.Public.GetIndex)
|
|
|
|
// 首页动态统计数据
|
|
indexGroup.GET("/data", api.Public.GetIndexData)
|
|
}
|
|
}
|
|
|
|
// basicRouter 基础数据-验证权限
|
|
func basicRouter(r *gin.Engine, api controller.Api) {
|
|
|
|
}
|
|
|
|
// privateRouter 私有路由-验证权限
|
|
func privateRouter(r *gin.Engine, api controller.Api) {
|
|
adminGroup := r.Group("/admin")
|
|
|
|
// 订单
|
|
orderGroup := adminGroup.Group("/order")
|
|
{
|
|
// 单项订单
|
|
singleGroup := orderGroup.Group("/single")
|
|
{
|
|
// 获取单项订单列表-分页
|
|
singleGroup.GET("/page", api.OrderSingle.GetOrderSinglePage)
|
|
|
|
// 获取单项订单详情
|
|
singleGroup.GET("/:order_id", api.OrderSingle.GetOrderSingle)
|
|
|
|
// 取消单项订单
|
|
singleGroup.PUT("/cancel/:order_id", api.OrderSingle.PutCancelOrderSingle)
|
|
|
|
// 操作单项订单删除状态
|
|
singleGroup.PUT("/delete/:order_id", api.OrderSingle.PutOrderSingleDeleteStatus)
|
|
}
|
|
|
|
// 会员订单
|
|
memberGroup := orderGroup.Group("/member")
|
|
{
|
|
// 获取会员订单列表-分页
|
|
memberGroup.GET("/page", api.OrderMember.GetOrderMemberPage)
|
|
|
|
// 获取会员订单详情
|
|
memberGroup.GET("/:order_id", api.OrderMember.GetOrderMember)
|
|
|
|
// 取消会员订单
|
|
memberGroup.PUT("/cancel/:order_id", api.OrderMember.PutCancelOrderMember)
|
|
|
|
// 操作会员订单删除状态
|
|
memberGroup.PUT("/delete/:order_id", api.OrderMember.PutOrderMemberDeleteStatus)
|
|
}
|
|
}
|
|
|
|
// 用户
|
|
userGroup := adminGroup.Group("/user")
|
|
{
|
|
// 获取用户列表-基本信息-分页
|
|
userGroup.POST("/page", api.User.GetUserPage)
|
|
|
|
// 获取用户详情-基本信息
|
|
userGroup.GET("/:user_id", api.User.GetUser)
|
|
|
|
// 操作用户状态
|
|
userGroup.PUT("/status/:user_id", api.User.PutUserStatus)
|
|
|
|
// 获取用户数据-详情信息
|
|
userGroup.GET("/info/:user_id", api.User.GetUserInfo)
|
|
|
|
// 获取用户数据-病例
|
|
userGroup.GET("/case/:user_id", api.User.GetUserCase)
|
|
}
|
|
|
|
// 优惠卷
|
|
couponGroup := adminGroup.Group("/coupon")
|
|
{
|
|
// 系统优惠卷
|
|
systemGroup := couponGroup.Group("/system")
|
|
{
|
|
// 获取系统优惠卷列表-分页
|
|
systemGroup.GET("/page", api.Coupon.GetCouponPage)
|
|
|
|
// 获取系统优惠卷详情
|
|
systemGroup.GET("/:coupon_id", api.Coupon.GetCoupon)
|
|
|
|
// 添加系统优惠卷
|
|
systemGroup.POST("", api.Coupon.AddSystemCoupon)
|
|
|
|
// 操作系统优惠卷状态
|
|
systemGroup.PUT("/status/:coupon_id", api.Coupon.PutCouponStatus)
|
|
}
|
|
|
|
// 用户优惠卷
|
|
userGroup := couponGroup.Group("/user")
|
|
{
|
|
// 获取用户优惠卷列表-分页
|
|
userGroup.GET("/page", api.UserCoupon.GetUserCouponPage)
|
|
|
|
// 删除用户优惠卷
|
|
userGroup.DELETE("/:user_coupon_id", api.UserCoupon.DeleteUserCoupon)
|
|
}
|
|
}
|
|
|
|
// 分类
|
|
classGroup := adminGroup.Group("/class")
|
|
{
|
|
// 获取基础分类列表-分页
|
|
classGroup.POST("/page", api.BaseClass.GetBaseClassPage)
|
|
|
|
// 获取基础分类列表
|
|
classGroup.POST("/list", api.BaseClass.GetBaseClassList)
|
|
|
|
// 操作基础分类状态
|
|
classGroup.PUT("/status/:class_id", api.BaseClass.PutBaseClassStatus)
|
|
|
|
// 获取基础分类详情
|
|
classGroup.GET("/:class_id", api.BaseClass.GetBaseClass)
|
|
|
|
// 修改基础分类
|
|
classGroup.PUT("/:class_id", api.BaseClass.PutBaseClass)
|
|
|
|
// 新增基础分类
|
|
classGroup.POST("", api.BaseClass.AddBaseClass)
|
|
}
|
|
|
|
// 问题
|
|
questionGroup := adminGroup.Group("/question")
|
|
{
|
|
// 获取问题列表-分页
|
|
questionGroup.POST("/page", api.Question.GetQuestionPage)
|
|
|
|
// 获取问题列表
|
|
questionGroup.POST("/list", api.Question.GetQuestionList)
|
|
|
|
// 获取问题详情
|
|
questionGroup.GET("/:question_id", api.Question.GetQuestion)
|
|
|
|
// 修改问题
|
|
questionGroup.PUT("/:question_id", api.Question.PutQuestion)
|
|
|
|
// 新增问题
|
|
questionGroup.POST("", api.Question.AddQuestion)
|
|
|
|
// 操作问题发布状态
|
|
questionGroup.PUT("/status/:question_id", api.Question.PutQuestionStatus)
|
|
|
|
// 操作问题隐藏状态
|
|
questionGroup.PUT("/hide/:question_id", api.Question.PutQuestionHideStatus)
|
|
}
|
|
|
|
// 配置
|
|
systemGroup := adminGroup.Group("/system")
|
|
{
|
|
// 会员配置
|
|
memberGroup := systemGroup.Group("/member")
|
|
{
|
|
// 获取会员配置列表
|
|
memberGroup.GET("/list", api.SystemMember.GetSystemMemberList)
|
|
|
|
// 获取会员配置详情
|
|
memberGroup.GET("/:system_member_id", api.SystemMember.GetSystemMember)
|
|
|
|
// 修改会员配置
|
|
memberGroup.PUT("/:system_member_id", api.SystemMember.PutSystemMember)
|
|
|
|
// 新增会员配置
|
|
memberGroup.POST("", api.SystemMember.AddSystemMember)
|
|
}
|
|
|
|
// 单项配置
|
|
singleGroup := systemGroup.Group("/single")
|
|
{
|
|
// 获取单项配置列表
|
|
singleGroup.GET("/list", api.SystemSingle.GetSystemSingleList)
|
|
|
|
// 获取单项配置详情
|
|
singleGroup.GET("/:system_single_id", api.SystemSingle.GetSystemSingle)
|
|
|
|
// 修改单项配置
|
|
singleGroup.PUT("/:system_single_id", api.SystemSingle.PutSystemSingle)
|
|
|
|
// 新增单项配置
|
|
singleGroup.POST("", api.SystemSingle.AddSystemSingle)
|
|
}
|
|
|
|
// 编辑器配置
|
|
editorGroup := systemGroup.Group("/editor")
|
|
{
|
|
// 编辑器-获取配置
|
|
editorGroup.GET("", api.Editor.GetEditorConfig)
|
|
|
|
// 编辑器-上传
|
|
editorGroup.POST("", api.Editor.EditorUpload)
|
|
}
|
|
}
|
|
|
|
// 协议
|
|
agreementGroup := adminGroup.Group("/agreement")
|
|
{
|
|
// 获取协议列表-分页
|
|
agreementGroup.GET("/page", api.BaseAgreement.GetBaseAgreementPage)
|
|
|
|
// 获取协议详情
|
|
agreementGroup.GET("/:agreement_id", api.BaseAgreement.GetBaseAgreement)
|
|
|
|
// 修改协议
|
|
agreementGroup.PUT("/:agreement_id", api.BaseAgreement.PutBaseAgreement)
|
|
|
|
// 新增协议
|
|
agreementGroup.POST("", api.BaseAgreement.AddBaseAgreement)
|
|
}
|
|
}
|