123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package services
- import (
- "eta/eta_forum_hub/models/system"
- "eta/eta_forum_hub/services/alarm_msg"
- "eta/eta_forum_hub/utils"
- "fmt"
- "strings"
- "time"
- )
- // 新增或者更新用户
- func AddOrUpdateAdmin(req *system.AddAdminReq) (err error, isSendEmail bool) {
- defer func() {
- if err != nil {
- utils.FileLog.Info("添加管理员账号失败, AddOrUpdateAdmin Err: " + err.Error())
- go alarm_msg.SendAlarmMsg("添加管理员账号失败, AddOrUpdateAdmin Err: "+err.Error(), 3)
- }
- }()
- isSendEmail = true
- isAdd := true
- admin := new(system.Admin)
- adminInfo, e := system.GetAdminByAdminName(req.AdminName)
- if e != nil {
- if e.Error() != utils.ErrNoRow() {
- err = fmt.Errorf("获取数据失败,%v", e)
- return
- }
- }
- if e == nil && adminInfo.AdminId > 0 {
- isAdd = false
- admin = adminInfo
- /*if adminInfo.BusinessCode != req.BusinessCode {
- err = fmt.Errorf("商户编码不同,不允许更新")
- return
- }*/
- }
- // 手机号和邮箱必填一个
- req.Mobile = strings.TrimSpace(req.Mobile)
- req.Email = strings.TrimSpace(req.Email)
- if req.Mobile == "" && req.Email == "" {
- err = fmt.Errorf("至少输入一个手机号或邮箱")
- return
- }
- if req.Mobile != "" {
- if isAdd || (!isAdd && req.Mobile != adminInfo.Mobile) {
- if req.TelAreaCode == "86" {
- if !utils.ValidateMobileFormatat(req.Mobile) {
- err = fmt.Errorf("手机号格式有误, 请检查")
- return
- }
- }
- mobileCount, e := system.GetSysAdminCountByMobile(req.Mobile, 0)
- if e != nil {
- err = fmt.Errorf("判断手机号是否存在失败,%w", err)
- return
- }
- if mobileCount > 0 {
- err = fmt.Errorf("手机号已存在,请重新填写")
- isSendEmail = false
- return
- }
- }
- }
- if req.Email != "" {
- if isAdd || (!isAdd && req.Mobile != adminInfo.Mobile) {
- if !utils.ValidateEmailFormatat(req.Email) {
- err = fmt.Errorf("邮箱格式有误, 请检查")
- return
- }
- emailUser, e := system.GetSysUserByEmail(req.Email)
- if e != nil && e.Error() != utils.ErrNoRow() {
- err = fmt.Errorf("邮箱获取用户失败,%w", e)
- return
- }
- if emailUser != nil && emailUser.AdminId > 0 {
- err = fmt.Errorf("邮箱已存在, 请重新填写")
- return
- }
- }
- }
- // 员工工号
- req.EmployeeId = strings.TrimSpace(req.EmployeeId)
- admin.AdminName = req.AdminName
- admin.RealName = req.RealName
- admin.Password = req.Password
- admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
- admin.Enabled = req.Enabled
- admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
- admin.Mobile = req.Mobile
- admin.RoleType = req.RoleType
- admin.RoleId = req.RoleId
- admin.RoleName = req.RoleName
- admin.RoleTypeCode = req.RoleTypeCode
- admin.DepartmentId = req.DepartmentId
- admin.DepartmentName = req.DepartmentName
- admin.AdminAvatar = req.AdminAvatar
- admin.GroupId = req.GroupId
- admin.GroupName = req.GroupName
- admin.Role = req.Role
- admin.EmployeeId = req.EmployeeId
- admin.Email = req.Email
- admin.Authority = req.Authority
- admin.Position = req.Position
- admin.Province = req.Province
- admin.ProvinceCode = req.ProvinceCode
- admin.City = req.City
- admin.CityCode = req.CityCode
- admin.TelAreaCode = req.TelAreaCode
- admin.IsLdap = req.IsLdap
- //admin.BusinessCode = req.BusinessCode
- if isAdd {
- admin.CreatedTime = time.Now()
- admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
- err = system.AddAdmin(admin)
- if err != nil {
- err = fmt.Errorf("新增失败,Err:%s", err.Error())
- return
- }
- } else {
- err = admin.Update([]string{})
- if err != nil {
- err = fmt.Errorf("更新失败,Err:%s", err.Error())
- return
- }
- }
- return
- }
|