get_admin_user.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package admin_user
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "net/http"
  5. "sghgogs.com/micro/auth-client/model/base"
  6. "sghgogs.com/micro/auth-client/model/response/admin"
  7. "sghgogs.com/micro/auth-client/response"
  8. "sghgogs.com/micro/auth-client/utils"
  9. pb "sghgogs.com/micro/auth-service/proto"
  10. "strconv"
  11. )
  12. // GetAdminUser
  13. // @summary 详情
  14. // @Description 获取用户详情
  15. // @Tags User 用户管理
  16. // @Accept json
  17. // @Produce json
  18. // @Param Authorization header string true "Bearer 用户令牌"
  19. // @Param id path int true "角色ID"
  20. // @Success 200 {object} response.ApiResponse{data=authorization_client.GetAdminUser} "成功"
  21. // @Failure 400 {object} response.ApiResponse "请求错误"
  22. // @Failure 500 {object} response.ApiResponse "内部错误"
  23. // @Router /v1/api/admin/user/{id} [get]
  24. func (svc *ApiAdminUser) GetAdminUser(c *gin.Context) {
  25. UserID, err := strconv.ParseInt(c.Param("id"), 10, 64)
  26. if err != nil || UserID <= 0 {
  27. c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid UserID"})
  28. return
  29. }
  30. ctx, _ := utils.CreateContextWithToken(c, "authorizationservice", "AdminUserService.GetAdminUser")
  31. info, err := svc.Service.GetAdminUser(ctx, &pb.GetAdminUserRequest{
  32. Id: UserID,
  33. })
  34. if err != nil {
  35. code, mgs := response.MicroErrorRequest(err)
  36. c.JSON(http.StatusBadRequest, response.ErrorResponse(code, mgs))
  37. return
  38. }
  39. user := info.Data
  40. status, _ := base.MapEnumToStatus(user.Status)
  41. c.JSON(http.StatusOK, response.SuccessResponse(admin.UserItem{
  42. Id: user.Id,
  43. Name: user.Username,
  44. PhoneNumber: user.PhoneNumber,
  45. Email: user.Email,
  46. Avatar: user.Avatar,
  47. Status: status,
  48. IsReserved: user.IsReserved,
  49. CreatedAt: ConvertInt64ToTime(user.CreatedAt),
  50. UpdatedAt: ConvertInt64ToTime(user.UpdatedAt),
  51. Roles: base.RolesToResponse(user.Roles),
  52. Teams: base.TeamsToResponse(user.Teams),
  53. }))
  54. }