userService.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package service
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "gorm.io/gorm"
  5. "iot_manager_service/app/user/dao"
  6. "iot_manager_service/util/cache"
  7. "iot_manager_service/util/common"
  8. "iot_manager_service/util/md5"
  9. "iot_manager_service/util/rsa"
  10. "iot_manager_service/util/token"
  11. "strconv"
  12. )
  13. // 用户管理服务
  14. var SysUserService = new(userService)
  15. type userService struct{}
  16. func (s *userService) Login(username string, pwd string) *common.Errors {
  17. userdao := &dao.SysUser{}
  18. USER, err := userdao.LoginFindUserName(username)
  19. if err != nil {
  20. if err == gorm.ErrRecordNotFound {
  21. return common.ParamsInvalidResponse("登录失败,账号不存在", nil)
  22. }
  23. return common.FailResponse(err.Error(), nil)
  24. }
  25. if USER.Enable != 1 {
  26. return common.ParamsInvalidResponse("登录失败,用户被禁止登录", nil)
  27. }
  28. //解密前端密文
  29. r := rsa.RSA{}
  30. decrypt := r.Decrypt(pwd)
  31. //解密数据库密文
  32. ok := md5.BcryptCheck(decrypt, USER.Password)
  33. if !ok {
  34. return common.ParamsInvalidResponse("密码错误", nil)
  35. }
  36. //登录成功则生成token
  37. USERID := strconv.Itoa(USER.ID)
  38. accessToken, _ := token.JwtClaims.CreateJwtToken(USERID, USER.Username, USER.UUID, 1)
  39. refreshToken, _ := token.JwtClaims.CreateJwtToken(USERID, USER.Username, USER.UUID, 24*7)
  40. cache.SetNowSysUser(USERID, USER)
  41. tokens := make(map[string]interface{})
  42. tokens["accessToken"] = accessToken
  43. tokens["refreshToken"] = refreshToken
  44. //TODO:到时候记得修改服务器域名
  45. urlWebSocket := "ws://106.52.134.22:8890/notice/websocket?userID=" + USERID
  46. return common.SuccessResponse("登录成功", gin.H{"token": tokens, "websocket": urlWebSocket})
  47. }
  48. func (s *userService) GetPublicKey() *common.Errors {
  49. r := rsa.RSA{}
  50. publicKey := r.ReturnPublicKey()
  51. return common.SuccessResponse("获取公钥成功", gin.H{"publicKey": publicKey})
  52. }
  53. func (s *userService) GetDeptSysUsers(id int) *common.Errors {
  54. deptdao := &dao.Dept{}
  55. depts, _ := deptdao.GetDepts(id)
  56. userdao := &dao.SysUser{}
  57. users, _ := userdao.GetSysUsers()
  58. deptSysUsersMap := make(map[int][]dao.SysUser)
  59. for _, user := range users {
  60. deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user)
  61. }
  62. var deptSysUsers []dao.Dept
  63. for _, dept := range depts {
  64. users := deptSysUsersMap[dept.ID]
  65. deptSysUsers = append(deptSysUsers, dao.Dept{
  66. ID: dept.ID,
  67. DeptName: dept.DeptName,
  68. ParentId: dept.ParentId,
  69. SysUsers: users,
  70. })
  71. }
  72. return common.SuccessResponse("获取成功", gin.H{"deptSysUsers": deptSysUsers})
  73. }
  74. func (s *userService) GetDepts() *common.Errors {
  75. deptdao := &dao.Dept{}
  76. depts, _ := deptdao.GetChildDepts()
  77. userdao := &dao.SysUser{}
  78. users, _ := userdao.GetSysUsers()
  79. deptSysUsersMap := make(map[int][]dao.SysUser)
  80. for _, user := range users {
  81. deptSysUsersMap[user.DeptId] = append(deptSysUsersMap[user.DeptId], user)
  82. }
  83. var deptSysUsers []dao.Dept
  84. for _, dept := range depts {
  85. users := deptSysUsersMap[dept.ID]
  86. if users != nil {
  87. deptSysUsers = append(deptSysUsers, dao.Dept{
  88. ID: dept.ID,
  89. DeptName: dept.DeptName,
  90. ParentId: dept.ParentId,
  91. })
  92. }
  93. }
  94. return common.SuccessResponse("获取成功", gin.H{"depts": deptSysUsers})
  95. }
  96. func (s *userService) GetSysUserInfo(id int) *common.Errors {
  97. userdao := &dao.SysUser{}
  98. user, _ := userdao.GetSysUserInfo(id)
  99. return common.SuccessResponse("获取成功", gin.H{"sysUser": user})
  100. }