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