| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package handler
- import (
- "net/http"
-
- "github.com/gin-gonic/gin"
-
- "newaterobot-process/service"
- )
- var userService = service.NewUserService()
- // Register 用户注册处理器
- func Register(c *gin.Context) {
- // 定义请求参数结构体
- var req struct {
- Username string `json:"username" binding:"required"`
- Password string `json:"password" binding:"required"`
- Email string `json:"email"`
- Nickname string `json:"nickname"`
- }
- // 绑定参数
- if err := c.ShouldBindJSON(&req); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{
- "code": 400,
- "message": "请求参数错误: " + err.Error(),
- })
- return
- }
- // 调用服务注册用户
- user, err := userService.Register(req.Username, req.Password, req.Email, req.Nickname)
- if err != nil {
- c.JSON(http.StatusInternalServerError, gin.H{
- "code": 500,
- "message": "注册失败: " + err.Error(),
- })
- return
- }
- // 返回成功响应
- c.JSON(http.StatusOK, gin.H{
- "code": 200,
- "message": "注册成功",
- "data": gin.H{
- "id": user.ID,
- "username": user.Username,
- "email": user.Email,
- "nickname": user.Nickname,
- },
- })
- }
- // Login 用户登录处理器
- func Login(c *gin.Context) {
- // 定义请求参数结构体
- var req struct {
- Username string `json:"username" binding:"required"`
- Password string `json:"password" binding:"required"`
- }
- // 绑定参数
- if err := c.ShouldBindJSON(&req); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{
- "code": 400,
- "message": "请求参数错误: " + err.Error(),
- })
- return
- }
- // 调用服务登录
- token, err := userService.Login(req.Username, req.Password)
- if err != nil {
- c.JSON(http.StatusUnauthorized, gin.H{
- "code": 401,
- "message": "登录失败: " + err.Error(),
- })
- return
- }
- // 返回成功响应
- c.JSON(http.StatusOK, gin.H{
- "code": 200,
- "message": "登录成功",
- "data": gin.H{
- "token": token,
- },
- })
- }
- // GetUserInfo 获取用户信息处理器
- func GetUserInfo(c *gin.Context) {
- // 从上下文获取用户ID
- userIDStr, exists := c.Get("user_id")
- if !exists {
- c.JSON(http.StatusUnauthorized, gin.H{
- "code": 401,
- "message": "用户未认证",
- })
- return
- }
- // 转换用户ID类型
- userID, ok := userIDStr.(uint)
- if !ok {
- c.JSON(http.StatusInternalServerError, gin.H{
- "code": 500,
- "message": "用户ID类型错误",
- })
- return
- }
- // 调用服务获取用户信息
- user, err := userService.GetUserByID(userID)
- if err != nil {
- c.JSON(http.StatusInternalServerError, gin.H{
- "code": 500,
- "message": "获取用户信息失败: " + err.Error(),
- })
- return
- }
- // 返回成功响应
- c.JSON(http.StatusOK, gin.H{
- "code": 200,
- "message": "获取成功",
- "data": gin.H{
- "id": user.ID,
- "username": user.Username,
- "email": user.Email,
- "nickname": user.Nickname,
- "status": user.Status,
- "createdat": user.CreatedAt,
- },
- })
- }
|