user.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package user
  2. import (
  3. "authService/response"
  4. "authService/service/user"
  5. "authService/util"
  6. "authService/util/constants"
  7. "authService/validators"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // 获取当前登录用户信息
  11. func Profile(c *gin.Context) {
  12. cacheUser, _ := util.GetFromGinContext[*validators.AuthUser](c, constants.UserCacheKey)
  13. // 获取用户信息
  14. currentUser, err := user.Find(cacheUser.ID)
  15. if err != nil {
  16. response.Fail(c, err)
  17. return
  18. }
  19. response.Success(c, map[string]any{
  20. "profile": user.Format(currentUser),
  21. })
  22. }
  23. // 修改当前登录用户信息
  24. func UpdateProfile(c *gin.Context) {
  25. type Validator struct {
  26. *validators.User
  27. OldPassword string `json:"oldPassword" form:"oldPassword" binding:"omitempty,min=6,max=20"`
  28. Password string `json:"password" form:"password" binding:"omitempty,min=6,max=20"`
  29. }
  30. var validator Validator
  31. err := c.ShouldBind(&validator)
  32. if err != nil {
  33. response.FailValidator(c, err)
  34. return
  35. }
  36. cacheUser, _ := util.GetFromGinContext[*validators.AuthUser](c, constants.UserCacheKey)
  37. updateErr := user.UpdateMySelf(validator.User, validator.OldPassword, validator.Password, cacheUser.ID)
  38. if updateErr != nil {
  39. response.Fail(c, updateErr)
  40. return
  41. }
  42. response.Success(c, map[string]any{})
  43. }