user.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package api
  2. import (
  3. "crazy-fox-backend-api/config"
  4. "crazy-fox-backend-api/model"
  5. "crazy-fox-backend-api/service"
  6. "crazy-fox-backend-api/utils"
  7. "crazy-fox-backend-api/utils/answer"
  8. "crazy-fox-backend-api/utils/jwt"
  9. "github.com/gin-gonic/gin"
  10. )
  11. type userApi struct{}
  12. // CreateUserInfo 创建用户信息
  13. func (Api *userApi) CreateUserInfo(c *gin.Context) {
  14. var r model.CreateUserInfo
  15. utils.Verify(&r, utils.CreateUserInfoVerify, c)
  16. r.CreateBy = jwt.GetOperatorAccount(c)
  17. if r.Gid == config.RootGroup && r.CreateBy != config.RootUser {
  18. answer.FailWithMessage("请选择用户分组", nil, c)
  19. }
  20. if err := service.User.CreateUserInfo(r); err != nil {
  21. answer.FailWithMessage("注册失败", err, c)
  22. }
  23. answer.OkWithMessage("注册成功", c)
  24. }
  25. // UpdateUserInfo 更新用户信息
  26. func (Api *userApi) UpdateUserInfo(c *gin.Context) {
  27. var r model.UpdateUserInfo
  28. utils.Verify(&r, utils.UpdateUserInfoVerify, c)
  29. // 更新用户信息
  30. service.User.UpdateUserInfo(r)
  31. answer.OkWithMessage("更新信息成功", c)
  32. }
  33. // MultiUpdateUserGid 批量更新用户Gid
  34. func (Api *userApi) MultiUpdateUserGid(c *gin.Context) {
  35. var userInfoList model.MultiUpdateUserGid
  36. utils.Verify(&userInfoList, utils.MultiUpdateUserGidVerify, c)
  37. service.User.MultiUpdateUserGid(userInfoList)
  38. answer.OkWithMessage("批量更新所属分组成功", c)
  39. }
  40. // ChangePassword 修改用户密码
  41. func (Api *userApi) ChangePassword(c *gin.Context) {
  42. var oneUser model.ChangePasswordStruct
  43. utils.Verify(&oneUser, utils.ChangePasswordVerify, c)
  44. if err := service.User.ChangePassword(oneUser); err != nil {
  45. answer.FailWithMessage("修改失败", err, c)
  46. }
  47. answer.OkWithMessage("修改成功", c)
  48. }
  49. // UpdateHeadPic 修改用户头像
  50. func (Api *userApi) UpdateHeadPic(c *gin.Context) {
  51. var oneUser model.UpdateHeadPicStruct
  52. utils.Verify(&oneUser, utils.UpdateHeadPicVerify, c)
  53. service.User.UpdateHeadPic(oneUser)
  54. answer.OkWithMessage("修改成功", c)
  55. }
  56. // GetUserList 获取用户列表
  57. func (Api *userApi) GetUserList(c *gin.Context) {
  58. var req model.ReqUserList
  59. utils.Verify(&req, utils.PageListVerify, c)
  60. account := jwt.GetOperatorAccount(c)
  61. var gidList = req.FilterGidList
  62. if len(gidList) == 0 {
  63. gidList = service.Group.GetChildrenIdListByGid(req.Gid, account)
  64. }
  65. list, total := service.User.GetUserInfoList(req, gidList)
  66. answer.OkWithDetailed(model.PageResult{
  67. List: list,
  68. Total: total,
  69. }, "获取成功", c)
  70. }
  71. // GetUserListByGid 获取用户列表通过Gid
  72. func (Api *userApi) GetUserListByGid(c *gin.Context) {
  73. var userListInfo model.GetByGid
  74. utils.Verify(&userListInfo, utils.UnVerify, c)
  75. list := service.User.GetUserListByGid(userListInfo)
  76. answer.OkWithDetailed(model.PageResult{
  77. List: list,
  78. Total: int64(len(list)),
  79. }, "获取成功", c)
  80. }
  81. // DeleteUser 通过id删除用户
  82. func (Api *userApi) DeleteUser(c *gin.Context) {
  83. var reqId model.ReqById
  84. utils.Verify(&reqId, utils.IdVerify, c)
  85. if jwt.GetOperatorID(c) == reqId.Id {
  86. answer.FailWithMessage("删除用户失败,不能删除自己", nil, c)
  87. }
  88. service.User.DeleteUser(reqId.Id)
  89. answer.OkWithMessage("删除成功", c)
  90. }
  91. // ResetPassword 重置密码
  92. func (Api *userApi) ResetPassword(c *gin.Context) {
  93. var reqId model.ReqById
  94. utils.Verify(&reqId, utils.IdVerify, c)
  95. service.User.ResetPassword(reqId.Id)
  96. answer.OkWithMessage("重置成功", c)
  97. }
  98. // UnBindFs 用户飞书ID解绑
  99. func (Api *userApi) UnBindFs(c *gin.Context) {
  100. var reqId model.ReqById
  101. utils.Verify(&reqId, utils.IdVerify, c)
  102. service.Login.UnbindFs(reqId.Id)
  103. answer.OkWithMessage("解绑成功", c)
  104. }
  105. // GetUserInfoById 获取用户信息
  106. func (Api *userApi) GetUserInfoById(c *gin.Context) {
  107. var reqId model.ReqById
  108. utils.Verify(&reqId, utils.IdVerify, c)
  109. gid := service.User.GetGidById(reqId.Id)
  110. routerList := service.Group.GetGroupRouter(gid)
  111. answer.OkWithDetailed(model.RefreshUserInfo{
  112. Gid: gid,
  113. RouterList: routerList,
  114. }, "获取成功", c)
  115. }