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("管理员路由注册完成")
|
||
|
|
}
|