You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
1.8 KiB

package routes
import (
"gofaster/internal/auth/controller"
"gofaster/internal/auth/repository"
"gofaster/internal/auth/service"
"gofaster/internal/shared/middleware"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
"gorm.io/gorm"
)
func RegisterMenuGroupRoutes(router *gin.RouterGroup, db *gorm.DB, logger *zap.Logger) {
// 初始化依赖
menuGroupRepo := repository.NewMenuGroupRepository(db)
menuGroupService := service.NewMenuGroupService(menuGroupRepo, logger)
menuGroupController := controller.NewMenuGroupController(menuGroupService, logger)
// 菜单分组管理路由组
menuGroupGroup := router.Group("/menu-groups")
{
// 需要权限验证的路由
menuGroupGroup.Use(middleware.JWTAuth()) // 暂时只检查JWT,不检查权限
{
// 菜单分组CRUD操作
menuGroupGroup.GET("", menuGroupController.ListMenuGroups) // 获取菜单分组列表
menuGroupGroup.POST("", menuGroupController.CreateMenuGroup) // 创建菜单分组
menuGroupGroup.GET("/:id", menuGroupController.GetMenuGroup) // 获取菜单分组详情
menuGroupGroup.PUT("/:id", menuGroupController.UpdateMenuGroup) // 更新菜单分组
menuGroupGroup.DELETE("/:id", menuGroupController.DeleteMenuGroup) // 删除菜单分组
// 批量操作
menuGroupGroup.POST("/batch-delete", menuGroupController.BatchDeleteMenuGroups) // 批量删除菜单分组
menuGroupGroup.PUT("/batch-sort", menuGroupController.BatchUpdateMenuGroupSort) // 批量更新排序
// 状态和排序管理
menuGroupGroup.PUT("/:id/status", menuGroupController.UpdateMenuGroupStatus) // 更新状态
menuGroupGroup.PUT("/:id/sort", menuGroupController.UpdateMenuGroupSort) // 更新排序
// 统计信息
menuGroupGroup.GET("/stats", menuGroupController.GetMenuGroupStats) // 获取统计信息
}
}
}