123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package sysuser
  2. import (
  3. "errors"
  4. "wechat-conf/models/model"
  5. "wechat-conf/models/sysorg"
  6. "wechat-conf/models/sysuser"
  7. "wechat-conf/service"
  8. "wechat-conf/utils"
  9. "github.com/yl10/kit/encrypt"
  10. )
  11. // SysuserServ 用户
  12. type SysuserServ struct {
  13. ctx *utils.Context
  14. dao *sysuser.SysuserDAO
  15. orgdao *sysorg.SysorgDAO
  16. }
  17. // NewSysuserServ 初始化
  18. func NewSysuserServ(ctx *utils.Context) *SysuserServ {
  19. return &SysuserServ{
  20. ctx: ctx,
  21. dao: sysuser.NewSysuserDAO(ctx),
  22. orgdao: sysorg.NewSysorgDAO(ctx),
  23. }
  24. }
  25. func (s *SysuserServ) GetSysuserList(page, pageSize int) (map[string]interface{}, error) {
  26. if pageSize == 0 {
  27. pageSize = service.PAGENUM
  28. }
  29. sysuser, err := s.dao.GetSysuserList(page, pageSize)
  30. if err != nil {
  31. utils.LogError("获取用户列表失败: " + err.Error())
  32. return nil, errors.New("获取用户列表失败")
  33. }
  34. total, err := s.dao.GetSysuserListCount()
  35. if err != nil {
  36. utils.LogError("获取用户列表失败: " + err.Error())
  37. return nil, errors.New("获取用户列表失败")
  38. }
  39. return map[string]interface{}{
  40. "list": sysuser,
  41. "pageSize": pageSize,
  42. "pagenum": total,
  43. "page": page,
  44. }, nil
  45. }
  46. func (s *SysuserServ) GetSysuserById(userId string) (*model.SysUser, error) {
  47. user, err := s.dao.GetSysuserById(userId)
  48. if err != nil {
  49. utils.LogError("获取用户详情失败: " + err.Error())
  50. return nil, errors.New("获取用户详情失败")
  51. }
  52. return user, nil
  53. }
  54. func (s *SysuserServ) SaveUser(user model.SysUser) (*model.SysUser, error) {
  55. var newUser *model.SysUser
  56. var err error
  57. if user.RealName == "" {
  58. return nil, errors.New("真实姓名不能为空")
  59. }
  60. if user.UserName == "" {
  61. return nil, errors.New("用户名不能为空")
  62. }
  63. if user.Phone == "" {
  64. return nil, errors.New("手机号不能为空")
  65. }
  66. if user.UserId == "" {
  67. user.UserId = utils.GetGUID()
  68. user.Pwd = encrypt.Md5(encrypt.Md5("123456"), user.UserId)
  69. newUser, err = s.dao.AddUser(user)
  70. } else {
  71. err = s.dao.EditUser(user)
  72. newUser = &user
  73. }
  74. if err != nil {
  75. utils.LogError("保存用户详情失败: " + err.Error())
  76. return nil, errors.New("保存用户详情失败")
  77. }
  78. return newUser, nil
  79. }
  80. func (s *SysuserServ) BindUser(userId, orgId string) error {
  81. flag, err := s.orgdao.IsOrgBinded(orgId)
  82. if err != nil {
  83. utils.LogError("綁定用户失败: " + err.Error())
  84. return errors.New("綁定用户失败")
  85. }
  86. if flag {
  87. err := s.dao.BindUserToOrg(userId, orgId)
  88. if err != nil {
  89. utils.LogError("綁定用户失败: " + err.Error())
  90. return errors.New("綁定用户失败")
  91. }
  92. } else {
  93. return errors.New("该项目已绑定用户")
  94. }
  95. return nil
  96. }
  97. func (s *SysuserServ) DeleteUser(userId string) error {
  98. err := s.dao.DeleteUser(userId)
  99. if err != nil {
  100. utils.LogError("删除用户失败: " + err.Error())
  101. return errors.New("删除用户失败")
  102. }
  103. return nil
  104. }
  105. func (s *SysuserServ) GetAppIdByOrgId(orgId string) (string, error) {
  106. appId, err := s.dao.GetAppIdByOrgId(orgId)
  107. if err != nil {
  108. utils.LogError("获取APPID失败: " + err.Error())
  109. return "", errors.New("获取APPID失败")
  110. }
  111. return appId, nil
  112. }
  113. func (s *SysuserServ) ChangePassword(userId, pwd string) error {
  114. err := s.dao.ChangePassword(userId, pwd)
  115. if err != nil {
  116. utils.LogError("修改密码失败: " + err.Error())
  117. return errors.New("修改密码失败")
  118. }
  119. return nil
  120. }
  121. func (s *SysuserServ) GetOrgAuthByUserId(userId string) (bool, error) {
  122. flag, err := s.dao.GetOrgAuthByUserId(userId)
  123. if err != nil {
  124. utils.LogError("获取用户项目授权失败: " + err.Error())
  125. return false, errors.New("获取用户项目授权失败")
  126. }
  127. return flag, nil
  128. }