67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.1 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"
 | |
| )
 | |
| 
 | |
| // UserRoutes 用户路由注册器
 | |
| type UserRoutes struct {
 | |
| 	handler        *handlers.UserHandler
 | |
| 	authMiddleware *middleware.JWTAuthMiddleware
 | |
| 	adminAuthMiddleware *middleware.AdminAuthMiddleware
 | |
| 	logger         *zap.Logger
 | |
| }
 | |
| 
 | |
| // NewUserRoutes 创建用户路由注册器
 | |
| func NewUserRoutes(
 | |
| 	handler *handlers.UserHandler,
 | |
| 	authMiddleware *middleware.JWTAuthMiddleware,
 | |
| 	adminAuthMiddleware *middleware.AdminAuthMiddleware,
 | |
| 	logger *zap.Logger,
 | |
| ) *UserRoutes {
 | |
| 	return &UserRoutes{
 | |
| 		handler:        handler,
 | |
| 		authMiddleware: authMiddleware,
 | |
| 		adminAuthMiddleware: adminAuthMiddleware,
 | |
| 		logger:         logger,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Register 注册用户相关路由
 | |
| func (r *UserRoutes) Register(router *sharedhttp.GinRouter) {
 | |
| 	// 用户域路由组
 | |
| 	engine := router.GetEngine()
 | |
| 	usersGroup := engine.Group("/api/v1/users")
 | |
| 	{
 | |
| 		// 公开路由(不需要认证)
 | |
| 		usersGroup.POST("/send-code", r.handler.SendCode)               // 发送验证码
 | |
| 		usersGroup.POST("/register", r.handler.Register)                // 用户注册
 | |
| 		usersGroup.POST("/login-password", r.handler.LoginWithPassword) // 密码登录
 | |
| 		usersGroup.POST("/login-sms", r.handler.LoginWithSMS)           // 短信验证码登录
 | |
| 		usersGroup.POST("/reset-password", r.handler.ResetPassword)     // 重置密码
 | |
| 
 | |
| 		// 需要认证的路由
 | |
| 		authenticated := usersGroup.Group("")
 | |
| 		authenticated.Use(r.authMiddleware.Handle())
 | |
| 		{
 | |
| 			authenticated.GET("/me", r.handler.GetProfile)              // 获取当前用户信息
 | |
| 			authenticated.PUT("/me/password", r.handler.ChangePassword) // 修改密码
 | |
| 		}
 | |
| 
 | |
| 		// 管理员路由
 | |
| 		adminGroup := usersGroup.Group("/admin")
 | |
| 		adminGroup.Use(r.adminAuthMiddleware.Handle())
 | |
| 		{
 | |
| 			adminGroup.GET("/list", r.handler.ListUsers) // 管理员查看用户列表
 | |
| 			adminGroup.GET("/:user_id", r.handler.GetUserDetail) // 管理员获取用户详情
 | |
| 			adminGroup.GET("/stats", r.handler.GetUserStats) // 管理员获取用户统计信息
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	r.logger.Info("用户路由注册完成")
 | |
| }
 |