|
@@ -5,6 +5,7 @@ import (
|
|
|
"eta/eta_forum_hub/services/alarm_msg"
|
|
|
"eta/eta_forum_hub/utils"
|
|
|
"fmt"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
// 新增或者更新角色
|
|
@@ -121,3 +122,90 @@ func AddOrUpdateGroup(req *system.SysGroupAddReq) (err error, isSendEmail bool)
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 批量更新账号
|
|
|
+func BatchAddOrUpdateAdmin(reqAdmin *system.AdminBatchAddReq) (err error, isSendEmail bool) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("新增或者更新账号, BatchAddOrUpdateAdmin Err: " + err.Error())
|
|
|
+ go alarm_msg.SendAlarmMsg("新增或者更新账号, BatchAddOrUpdateAdmin Err: "+err.Error(), 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ isSendEmail = true
|
|
|
+ if len(reqAdmin.List) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 查询所有的账号,如果不在同步的列表里,则删除
|
|
|
+ deleteAdminList := make(map[string]int)
|
|
|
+
|
|
|
+ adminList, err := system.GetAllAdminList()
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("获取账号数据失败,%v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ adminMap := make(map[string]*system.Admin)
|
|
|
+ for _, v := range adminList {
|
|
|
+ deleteAdminList[v.AdminName] = v.AdminId
|
|
|
+ adminMap[v.AdminName] = v
|
|
|
+ }
|
|
|
+ for _, req := range reqAdmin.List {
|
|
|
+ adminItem, ok := adminMap[req.AdminName]
|
|
|
+ if ok {
|
|
|
+ delete(deleteAdminList, req.AdminName)
|
|
|
+ } else {
|
|
|
+ adminItem = new(system.Admin)
|
|
|
+ }
|
|
|
+ adminItem.AdminName = req.AdminName
|
|
|
+ adminItem.RealName = req.RealName
|
|
|
+ adminItem.Password = req.Password
|
|
|
+ adminItem.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ adminItem.Enabled = req.Enabled
|
|
|
+ adminItem.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ adminItem.Mobile = req.Mobile
|
|
|
+ adminItem.RoleType = req.RoleType
|
|
|
+ adminItem.RoleId = req.RoleId
|
|
|
+ adminItem.RoleName = req.RoleName
|
|
|
+ adminItem.RoleTypeCode = req.RoleTypeCode
|
|
|
+ adminItem.DepartmentId = req.DepartmentId
|
|
|
+ adminItem.DepartmentName = req.DepartmentName
|
|
|
+ adminItem.AdminAvatar = req.AdminAvatar
|
|
|
+ adminItem.GroupId = req.GroupId
|
|
|
+ adminItem.GroupName = req.GroupName
|
|
|
+
|
|
|
+ adminItem.Role = req.Role
|
|
|
+ adminItem.EmployeeId = req.EmployeeId
|
|
|
+ adminItem.Email = req.Email
|
|
|
+ adminItem.Authority = req.Authority
|
|
|
+ adminItem.Position = req.Position
|
|
|
+ adminItem.Province = req.Province
|
|
|
+ adminItem.ProvinceCode = req.ProvinceCode
|
|
|
+ adminItem.City = req.City
|
|
|
+ adminItem.CityCode = req.CityCode
|
|
|
+ adminItem.TelAreaCode = req.TelAreaCode
|
|
|
+ adminItem.IsLdap = req.IsLdap
|
|
|
+ //admin.BusinessCode = req.BusinessCode
|
|
|
+ if !ok {
|
|
|
+ adminItem.CreatedTime = time.Now()
|
|
|
+ adminItem.LastLoginTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ err = system.AddAdmin(adminItem)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("新增失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ err = adminItem.Update([]string{})
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("更新失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range deleteAdminList {
|
|
|
+ err = system.DeleteSysuser(v)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("删除失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|