package admin_user import ( "github.com/gin-gonic/gin" "net/http" "sghgogs.com/micro/auth-client/model/base" "sghgogs.com/micro/auth-client/model/response/admin" "sghgogs.com/micro/auth-client/response" "sghgogs.com/micro/auth-client/utils" pb "sghgogs.com/micro/auth-service/proto" "strconv" ) // GetAdminUser // @summary 详情 // @Description 获取用户详情 // @Tags User 用户管理 // @Accept json // @Produce json // @Param Authorization header string true "Bearer 用户令牌" // @Param id path int true "角色ID" // @Success 200 {object} response.ApiResponse{data=authorization_client.GetAdminUser} "成功" // @Failure 400 {object} response.ApiResponse "请求错误" // @Failure 500 {object} response.ApiResponse "内部错误" // @Router /v1/api/admin/user/{id} [get] func (svc *ApiAdminUser) GetAdminUser(c *gin.Context) { UserID, err := strconv.ParseInt(c.Param("id"), 10, 64) if err != nil || UserID <= 0 { c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid UserID"}) return } ctx, _ := utils.CreateContextWithToken(c, "authorizationservice", "AdminUserService.GetAdminUser") info, err := svc.Service.GetAdminUser(ctx, &pb.GetAdminUserRequest{ Id: UserID, }) if err != nil { code, mgs := response.MicroErrorRequest(err) c.JSON(http.StatusBadRequest, response.ErrorResponse(code, mgs)) return } user := info.Data status, _ := base.MapEnumToStatus(user.Status) c.JSON(http.StatusOK, response.SuccessResponse(admin.UserItem{ Id: user.Id, Name: user.Username, PhoneNumber: user.PhoneNumber, Email: user.Email, Avatar: user.Avatar, Status: status, IsReserved: user.IsReserved, CreatedAt: ConvertInt64ToTime(user.CreatedAt), UpdatedAt: ConvertInt64ToTime(user.UpdatedAt), Roles: base.RolesToResponse(user.Roles), Teams: base.TeamsToResponse(user.Teams), })) }