169 lines
7.5 KiB
Go
169 lines
7.5 KiB
Go
package routers
|
|
|
|
import (
|
|
"awesomeProject/internal/handlers"
|
|
"awesomeProject/internal/middleware"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// SetupAdminRoutes 设置管理端路由
|
|
func SetupAdminRoutes(router *gin.Engine) {
|
|
// 管理端路由组
|
|
adminGroup := router.Group("/back/admin")
|
|
|
|
// 应用JWT中间件
|
|
adminGroup.Use(middleware.JWTMiddleware)
|
|
|
|
// 创建handler实例
|
|
userHandler := &handlers.AdminUserHandler{}
|
|
orderHandler := &handlers.AdminOrderHandler{}
|
|
scoreHandler := &handlers.AdminScoreHandler{}
|
|
productHandler := &handlers.AdminProductHandler{}
|
|
configHandler := &handlers.AdminConfigHandler{}
|
|
paymentHandler := &handlers.AdminPaymentHandler{}
|
|
orderMessageHandler := &handlers.AdminOrderMessageHandler{}
|
|
bannerHandler := &handlers.AdminBannerHandler{}
|
|
|
|
// 用户管理路由(管理员和代理商都可访问,但代理商有限制)
|
|
userRoutes := adminGroup.Group("/users")
|
|
|
|
userRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
|
{
|
|
userRoutes.GET("", userHandler.GetUsers) // 获取用户列表
|
|
|
|
userRoutes.GET("/:id", userHandler.GetUser) // 获取单个用户信息
|
|
userRoutes.GET("/stats", userHandler.GetUserStats) // 获取用户统计
|
|
userRoutes.GET("/search-stats", userHandler.SearchUserStats) // 搜索用户统计
|
|
// 以下接口仅管理员可访问
|
|
userRoutes.Use(middleware.AdminRoleMiddleware())
|
|
|
|
userRoutes.POST("", userHandler.CreateUser) // 创建用户
|
|
userRoutes.PUT("/:id", userHandler.UpdateUser) // 更新用户
|
|
userRoutes.PUT("/:id/expiry", userHandler.SetUserExpiryDate) // 设置用户过期时间
|
|
userRoutes.DELETE("/:id", userHandler.DeleteUser) // 删除用户
|
|
}
|
|
|
|
// 用户库存管理路由(仅管理员可访问)
|
|
warehouseRoutes := adminGroup.Group("/warehouse")
|
|
warehouseRoutes.Use(middleware.AdminRoleMiddleware())
|
|
{
|
|
warehouseRoutes.GET("/users", userHandler.GetAllUserWarehouses) // 获取所有用户库存汇总
|
|
}
|
|
|
|
// 订单管理路由(管理员和代理商都可访问,但代理商有限制)
|
|
orderRoutes := adminGroup.Group("/orders")
|
|
orderRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
|
{
|
|
// 买单管理
|
|
purchaseGroup := orderRoutes.Group("/purchase")
|
|
{
|
|
purchaseGroup.GET("", orderHandler.GetPurchaseOrders) // 获取买单列表
|
|
purchaseGroup.GET("/stats", orderHandler.GetOrderStats) // 获取订单统计
|
|
purchaseGroup.GET("/trend", orderHandler.GetOrderTrend) // 获取订单趋势
|
|
purchaseGroup.GET("/activities", orderHandler.GetRecentActivities) // 获取最近活动
|
|
purchaseGroup.GET("/:id", orderHandler.GetPurchaseOrder) // 获取单个买单详情
|
|
|
|
// 以下接口仅管理员可访问
|
|
purchaseGroup.Use(middleware.AdminRoleMiddleware())
|
|
purchaseGroup.PUT("/:id/status", orderHandler.UpdatePurchaseOrderStatus) // 更新买单状态
|
|
}
|
|
|
|
// 卖单管理
|
|
salesGroup := orderRoutes.Group("/sales")
|
|
{
|
|
salesGroup.GET("", orderHandler.GetSalesOrders) // 获取卖单列表
|
|
salesGroup.GET("/:id", orderHandler.GetSalesOrder) // 获取单个卖单详情
|
|
|
|
// 以下接口仅管理员可访问
|
|
salesGroup.Use(middleware.AdminRoleMiddleware())
|
|
salesGroup.PUT("/:id/status", orderHandler.UpdateSalesOrderStatus) // 更新卖单状态
|
|
}
|
|
|
|
// 订单留言管理(管理员和代理商都可访问)
|
|
orderRoutes.GET("/:order_id/messages", orderMessageHandler.GetOrderMessages) // 获取订单留言列表
|
|
orderRoutes.POST("/:order_id/messages", orderMessageHandler.CreateOrderMessage) // 创建订单留言
|
|
}
|
|
|
|
// 积分管理路由(管理员和代理商都可访问,但代理商有限制)
|
|
scoreRoutes := adminGroup.Group("/scores")
|
|
scoreRoutes.Use(middleware.AgentRoleMiddleware(), middleware.CheckUserPermission())
|
|
{
|
|
scoreRoutes.GET("", scoreHandler.GetScoreRecords) // 获取积分记录列表
|
|
scoreRoutes.GET("/stats", scoreHandler.GetScoreStats) // 获取积分统计
|
|
scoreRoutes.GET("/:id", scoreHandler.GetScoreRecord) // 获取单个积分记录详情
|
|
|
|
// 以下接口仅管理员可访问
|
|
scoreRoutes.Use(middleware.AdminRoleMiddleware())
|
|
scoreRoutes.POST("", scoreHandler.CreateScoreRecord) // 创建积分记录
|
|
scoreRoutes.PUT("/:id", scoreHandler.UpdateScoreRecord) // 更新积分记录
|
|
scoreRoutes.DELETE("/:id", scoreHandler.DeleteScoreRecord) // 删除积分记录
|
|
}
|
|
|
|
// 商品管理路由(仅管理员可访问)
|
|
productRoutes := adminGroup.Group("/products")
|
|
productRoutes.Use(middleware.AdminRoleMiddleware())
|
|
{
|
|
// 商品分类管理
|
|
categoryGroup := productRoutes.Group("/categories")
|
|
{
|
|
categoryGroup.GET("", productHandler.GetProductCategories) // 获取分类列表
|
|
categoryGroup.POST("", productHandler.CreateProductCategory) // 创建分类
|
|
categoryGroup.PUT("/:id", productHandler.UpdateProductCategory) // 更新分类
|
|
categoryGroup.DELETE("/:id", productHandler.DeleteProductCategory) // 删除分类
|
|
}
|
|
|
|
// 一级商品管理
|
|
primaryGroup := productRoutes.Group("/primary")
|
|
{
|
|
primaryGroup.GET("", productHandler.GetPrimaryProducts) // 获取一级商品列表
|
|
primaryGroup.GET("/stats", productHandler.GetProductStats) // 获取商品统计
|
|
primaryGroup.GET("/:id", productHandler.GetPrimaryProduct) // 获取单个一级商品详情
|
|
primaryGroup.POST("", productHandler.CreatePrimaryProduct) // 创建一级商品
|
|
primaryGroup.PUT("/:id", productHandler.UpdatePrimaryProduct) // 更新一级商品
|
|
primaryGroup.DELETE("/:id", productHandler.DeletePrimaryProduct) // 删除一级商品
|
|
}
|
|
|
|
// 二级商品管理(仅查看)
|
|
secondaryGroup := productRoutes.Group("/secondary")
|
|
{
|
|
secondaryGroup.GET("", productHandler.GetSecondaryProducts) // 获取二级商品列表
|
|
}
|
|
}
|
|
|
|
// 系统配置管理路由(仅管理员可访问)
|
|
configRoutes := adminGroup.Group("/configs")
|
|
configRoutes.Use(middleware.AdminRoleMiddleware())
|
|
{
|
|
configRoutes.GET("", configHandler.GetSystemConfigs) // 获取系统配置列表
|
|
configRoutes.GET("/:id", configHandler.GetSystemConfig) // 获取单个系统配置
|
|
configRoutes.POST("", configHandler.CreateSystemConfig) // 创建系统配置
|
|
configRoutes.PUT("/:id", configHandler.UpdateSystemConfig) // 更新系统配置
|
|
configRoutes.DELETE("/:id", configHandler.DeleteSystemConfig) // 删除系统配置
|
|
}
|
|
|
|
// 管理员付款方式路由
|
|
paymentRoutes := adminGroup.Group("/payment")
|
|
{
|
|
paymentRoutes.GET("/info", paymentHandler.GetPaymentInfo) // 获取管理员付款方式信息(无需权限验证,用户购买时需要查看)
|
|
|
|
// 以下接口仅管理员可访问
|
|
paymentRoutes.Use(middleware.AdminRoleMiddleware())
|
|
paymentRoutes.PUT("/info", paymentHandler.UpdatePaymentInfo) // 更新管理员付款方式信息
|
|
}
|
|
|
|
// 轮播图管理路由(仅管理员可访问)
|
|
bannerRoutes := adminGroup.Group("/banners")
|
|
bannerRoutes.Use(middleware.AdminRoleMiddleware())
|
|
{
|
|
bannerRoutes.GET("", bannerHandler.GetBanners) // 获取轮播图列表
|
|
bannerRoutes.GET("/:id", bannerHandler.GetBanner) // 获取单个轮播图
|
|
bannerRoutes.POST("", bannerHandler.CreateBanner) // 创建轮播图
|
|
bannerRoutes.PUT("/:id", bannerHandler.UpdateBanner) // 更新轮播图
|
|
bannerRoutes.DELETE("/:id", bannerHandler.DeleteBanner) // 删除轮播图
|
|
}
|
|
|
|
// 公共配置查询路由(根据key获取配置,无需权限验证)
|
|
adminGroup.GET("/config/:key", configHandler.GetConfigByKey)
|
|
}
|