user.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package admin
  2. import (
  3. "app/commons/constant"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "github.com/samber/lo"
  7. )
  8. // 更新用户信息
  9. func (s *Server) UpdateUser(ctx *gin.Context) {
  10. c := s.FromContext(ctx)
  11. type Request struct {
  12. UserId *interface{} `json:"userId"`
  13. }
  14. req := new(Request)
  15. if err := c.ShouldBindJSON(&req); err != nil {
  16. c.Resp(constant.ErrorParams)
  17. return
  18. }
  19. c.Resp(nil)
  20. }
  21. // 修改上级地址 -- 触发地址重新计算 -- 慎重
  22. // 可能存在死循环设置 需要做判定 并禁止
  23. func (s *Server) SetParent(ctx *gin.Context) {
  24. c := s.FromContext(ctx)
  25. type Request struct {
  26. Id interface{} `json:"id"`
  27. ParentCode string `json:"parentCode"`
  28. }
  29. req := new(Request)
  30. user, errRespCode := s.GetUserByUserId(req.Id)
  31. if errRespCode != nil {
  32. c.Resp(errRespCode)
  33. return
  34. }
  35. parentUser, errRespCode := s.GetUserByCode(req.ParentCode)
  36. if errRespCode != nil {
  37. c.Resp(errRespCode)
  38. return
  39. }
  40. // 设置了死循环
  41. if lo.Contains(parentUser.ParentIds, user.Id) {
  42. c.Resp(fmt.Errorf("禁止设置自己为下级推荐"))
  43. return
  44. }
  45. if err := s.SetParentWithUid(user.Uid, parentUser.Uid, fmt.Sprintf("SetParent WithUser:%s", c.Uid()), false); err != nil {
  46. c.Resp(err.Error())
  47. return
  48. }
  49. c.Resp(nil)
  50. }