59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | package routes | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"tyapi-server/internal/infrastructure/http/handlers" | ||
|  | 	sharedhttp "tyapi-server/internal/shared/http" | ||
|  | 	"tyapi-server/internal/shared/middleware" | ||
|  | 
 | ||
|  | 	"go.uber.org/zap" | ||
|  | ) | ||
|  | 
 | ||
|  | // AdminRoutes 管理员路由注册器 | ||
|  | type AdminRoutes struct { | ||
|  | 	handler        *handlers.AdminHandler | ||
|  | 	authMiddleware *middleware.JWTAuthMiddleware | ||
|  | 	logger         *zap.Logger | ||
|  | } | ||
|  | 
 | ||
|  | // NewAdminRoutes 创建管理员路由注册器 | ||
|  | func NewAdminRoutes( | ||
|  | 	handler *handlers.AdminHandler, | ||
|  | 	authMiddleware *middleware.JWTAuthMiddleware, | ||
|  | 	logger *zap.Logger, | ||
|  | ) *AdminRoutes { | ||
|  | 	return &AdminRoutes{ | ||
|  | 		handler:        handler, | ||
|  | 		authMiddleware: authMiddleware, | ||
|  | 		logger:         logger, | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // Register 注册管理员相关路由 | ||
|  | func (r *AdminRoutes) Register(router *sharedhttp.GinRouter) { | ||
|  | 	// 管理员路由组 | ||
|  | 	engine := router.GetEngine() | ||
|  | 	adminGroup := engine.Group("/api/v1/admin") | ||
|  | 	{ | ||
|  | 		// 认证相关路由(无需认证) | ||
|  | 		authGroup := adminGroup.Group("/auth") | ||
|  | 		{ | ||
|  | 			authGroup.POST("/login", r.handler.Login) | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// 管理员管理路由(需要认证) | ||
|  | 		authenticated := adminGroup.Group("") | ||
|  | 		authenticated.Use(r.authMiddleware.Handle()) | ||
|  | 		{ | ||
|  | 			authenticated.POST("", r.handler.CreateAdmin)                    // 创建管理员 | ||
|  | 			authenticated.GET("", r.handler.ListAdmins)                      // 获取管理员列表 | ||
|  | 			authenticated.GET("/stats", r.handler.GetAdminStats)             // 获取统计信息 | ||
|  | 			authenticated.GET("/:id", r.handler.GetAdminByID)                // 获取管理员详情 | ||
|  | 			authenticated.PUT("/:id", r.handler.UpdateAdmin)                 // 更新管理员 | ||
|  | 			authenticated.DELETE("/:id", r.handler.DeleteAdmin)              // 删除管理员 | ||
|  | 			authenticated.POST("/change-password", r.handler.ChangePassword) // 修改密码 | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	r.logger.Info("管理员路由注册完成") | ||
|  | } |