admin.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package services
  2. import (
  3. "eta/eta_forum_hub/models/system"
  4. "eta/eta_forum_hub/utils"
  5. "fmt"
  6. "strings"
  7. "time"
  8. )
  9. // 新增或者更新用户
  10. func AddOrUpdateAdmin(req system.Admin) (err error, isSendEmail bool) {
  11. isSendEmail = true
  12. isAdd := true
  13. admin := new(system.Admin)
  14. admin, e := system.GetAdminByAdminName(req.AdminName)
  15. if e != nil {
  16. if e.Error() != utils.ErrNoRow() {
  17. err = fmt.Errorf("获取数据失败,%v", e)
  18. return
  19. }
  20. }
  21. if e == nil && admin.AdminId > 0 {
  22. isAdd = false
  23. if admin.BusinessCode != req.BusinessCode {
  24. err = fmt.Errorf("商户编码不同,不允许更新")
  25. return
  26. }
  27. }
  28. // 手机号和邮箱必填一个
  29. req.Mobile = strings.TrimSpace(req.Mobile)
  30. req.Email = strings.TrimSpace(req.Email)
  31. if req.Mobile == "" && req.Email == "" {
  32. err = fmt.Errorf("至少输入一个手机号或邮箱")
  33. return
  34. }
  35. if req.Mobile != "" {
  36. if req.TelAreaCode == "86" {
  37. if !utils.ValidateMobileFormatat(req.Mobile) {
  38. err = fmt.Errorf("手机号格式有误, 请检查")
  39. return
  40. }
  41. }
  42. mobileCount, e := system.GetSysAdminCountByMobile(req.Mobile, 0)
  43. if e != nil {
  44. err = fmt.Errorf("判断手机号是否存在失败,%w", err)
  45. return
  46. }
  47. if mobileCount > 0 {
  48. err = fmt.Errorf("手机号已存在,请重新填写")
  49. isSendEmail = false
  50. return
  51. }
  52. }
  53. if req.Email != "" {
  54. if !utils.ValidateEmailFormatat(req.Email) {
  55. err = fmt.Errorf("邮箱格式有误, 请检查")
  56. return
  57. }
  58. emailUser, e := system.GetSysUserByEmail(req.Email)
  59. if e != nil && e.Error() != utils.ErrNoRow() {
  60. err = fmt.Errorf("邮箱获取用户失败,%w", e)
  61. return
  62. }
  63. if emailUser != nil && emailUser.AdminId > 0 {
  64. err = fmt.Errorf("邮箱已存在, 请重新填写")
  65. return
  66. }
  67. }
  68. // 员工工号
  69. req.EmployeeId = strings.TrimSpace(req.EmployeeId)
  70. admin.AdminName = req.AdminName
  71. admin.RealName = req.RealName
  72. admin.Password = req.Password
  73. admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
  74. admin.Enabled = 1
  75. admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
  76. admin.CreatedTime = time.Now()
  77. admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
  78. admin.Mobile = req.Mobile
  79. admin.RoleType = req.RoleType
  80. admin.RoleId = req.RoleId
  81. admin.RoleName = req.RoleName
  82. admin.RoleTypeCode = req.RoleTypeCode
  83. admin.DepartmentId = req.DepartmentId
  84. admin.DepartmentName = req.DepartmentName
  85. admin.AdminAvatar = req.AdminAvatar
  86. admin.GroupId = req.GroupId
  87. admin.GroupName = req.GroupName
  88. admin.Role = req.Role
  89. admin.EmployeeId = req.EmployeeId
  90. admin.Email = req.Email
  91. admin.Authority = req.Authority
  92. admin.Position = req.Position
  93. admin.Province = req.Province
  94. admin.ProvinceCode = req.ProvinceCode
  95. admin.City = req.City
  96. admin.CityCode = req.CityCode
  97. admin.TelAreaCode = req.TelAreaCode
  98. admin.IsLdap = req.IsLdap
  99. admin.BusinessCode = req.BusinessCode
  100. if isAdd {
  101. err = system.AddAdmin(admin)
  102. if err != nil {
  103. err = fmt.Errorf("新增失败,Err:%s", err.Error())
  104. return
  105. }
  106. } else {
  107. err = admin.Update([]string{})
  108. if err != nil {
  109. err = fmt.Errorf("更新失败,Err:%s", err.Error())
  110. return
  111. }
  112. }
  113. return
  114. }