Files
solosw 99b11b04e4 1.0
2026-01-05 14:11:34 +08:00

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