瀏覽代碼

用户数据批量同步

317699326@qq.com 3 月之前
父節點
當前提交
20c475d8d7
共有 3 個文件被更改,包括 96 次插入64 次删除
  1. 7 0
      models/admin.go
  2. 7 0
      models/sys_group.go
  3. 82 64
      services/admin.go

+ 7 - 0
models/admin.go

@@ -69,3 +69,10 @@ func AddAdmin(item *Admin) (err error) {
 	item.AdminId = int(adminId)
 	return
 }
+
+func UpdateAdmin(item *Admin) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE admin SET real_name = ?, password = ?,tel_area_code = ?, mobile = ?, department_id = ?, department_name = ?, group_id = ?, group_name = ?  WHERE admin_name = ?;`
+	_, err = o.Raw(sql, item.RealName, item.Password, item.TelAreaCode, item.Mobile, item.DepartmentId, item.DepartmentName, item.GroupId, item.GroupName, item.AdminName).Exec()
+	return
+}

+ 7 - 0
models/sys_group.go

@@ -25,3 +25,10 @@ func GetSysGroupAll() (list []*SysGroup, err error) {
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 }
+
+func GetSysDeptGroup(departmentName, groupName string) (item *SysGroup, err error) {
+	sql := `SELECT * FROM  sys_group AS a INNER JOIN sys_department AS b ON a.department_id=b.department_id WHERE b.department_name = ? AND a.group_name = ? ; `
+	o := orm.NewOrm()
+	err = o.Raw(sql, departmentName, groupName).QueryRow(&item)
+	return
+}

+ 82 - 64
services/admin.go

@@ -53,8 +53,8 @@ func InitAdmin(dataPath string) {
 	emailMap := make(map[string]*models.Admin)
 	userMap := make(map[string]*models.Admin)
 
-	deptMap := make(map[string]*models.SysDepartment)
-	groupMap := make(map[string]*models.SysGroup)
+	//deptMap := make(map[string]*models.SysDepartment)
+	//groupMap := make(map[string]*models.SysGroup)
 
 	admins, err := models.GetSysAdminList(``, make([]interface{}, 0))
 	if err != nil {
@@ -71,24 +71,24 @@ func InitAdmin(dataPath string) {
 		userMap[v.AdminName] = v
 	}
 
-	//获取部门
-	deptList, err := models.GetSysDepartmentAll()
-	if err != nil {
-		fmt.Println("GetSysDepartmentAll err:" + err.Error())
-		return
-	}
-	for _, v := range deptList {
-		deptMap[v.DepartmentName] = v
-	}
-	//获取分组
-	groupList, err := models.GetSysGroupAll()
-	if err != nil {
-		fmt.Println("GetSysGroupAll err:" + err.Error())
-		return
-	}
-	for _, v := range groupList {
-		groupMap[v.GroupName] = v
-	}
+	////获取部门
+	//deptList, err := models.GetSysDepartmentAll()
+	//if err != nil {
+	//	fmt.Println("GetSysDepartmentAll err:" + err.Error())
+	//	return
+	//}
+	//for _, v := range deptList {
+	//	deptMap[v.DepartmentName] = v
+	//}
+	////获取分组
+	//groupList, err := models.GetSysGroupAll()
+	//if err != nil {
+	//	fmt.Println("GetSysGroupAll err:" + err.Error())
+	//	return
+	//}
+	//for _, v := range groupList {
+	//	groupMap[v.GroupName] = v
+	//}
 
 	//获取角色
 	roleMap := make(map[string]*models.SysRoleItem)
@@ -136,6 +136,60 @@ func InitAdmin(dataPath string) {
 				realName != "" {
 
 				fmt.Println(adminName, password, realName, telAreaCode, mobile, departmentName, email, roleName)
+				pass := utils.MD5(password)
+				admin := new(models.Admin)
+				admin.AdminName = adminName
+				admin.RealName = realName
+				admin.Password = pass
+
+				admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
+				admin.Enabled = 1
+				admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
+				admin.CreatedTime = time.Now()
+				admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
+				admin.Mobile = mobile
+				admin.RoleType = 0
+
+				admin.RoleName = roleName
+
+				var groupName, deptName string
+				deptArr := strings.Split(departmentName, "/")
+				fmt.Println(deptArr)
+				if len(deptArr) < 2 {
+					fmt.Println("部门信息错误,至少两级")
+					return
+				}
+				deptName = deptArr[0]
+				groupName = deptArr[1]
+				//
+				//if dept, ok := deptMap[deptName]; ok {
+				//	admin.DepartmentId = dept.DepartmentId
+				//}
+				//
+				//admin.DepartmentName = deptName
+
+				//if group, ok := groupMap[groupName]; ok {
+				//	admin.GroupId = group.GroupId
+				//	admin.GroupName = groupName
+				//	admin.DepartmentId = group.DepartmentId
+				//	admin.DepartmentName = deptName
+				//}
+
+				deptGroupItem, err := models.GetSysDeptGroup(deptName, groupName)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					fmt.Println("获取部门和分组失败,Err:" + err.Error())
+					return
+				}
+				if deptGroupItem != nil {
+					admin.DepartmentId = deptGroupItem.DepartmentId
+					admin.DepartmentName = deptName
+					admin.GroupId = deptGroupItem.GroupId
+					admin.GroupName = deptGroupItem.GroupName
+				}
+				admin.Email = email
+
+				admin.TelAreaCode = telAreaCode
+				admin.IsLdap = 0
 
 				count, err := models.GetSysAdminCount(adminName)
 				if err != nil {
@@ -143,63 +197,27 @@ func InitAdmin(dataPath string) {
 					return
 				}
 				if count > 0 { //用户已存在
-					continue
+					//continue
+					//修改用户信息
+					err = models.UpdateAdmin(admin)
+					if err != nil {
+						fmt.Println("修改失败,Err:" + err.Error())
+						return
+					}
 				} else { //新增
-
-					pass := utils.MD5(password)
-
-					admin := new(models.Admin)
-					admin.AdminName = adminName
-					admin.RealName = realName
-					admin.Password = pass
-
-					admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
-					admin.Enabled = 1
-					admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
-					admin.CreatedTime = time.Now()
-					admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
-					admin.Mobile = mobile
-					admin.RoleType = 0
 					if role, ok := roleMap[roleName]; ok {
 						admin.RoleId = role.RoleId
 						admin.RoleTypeCode = role.RoleTypeCode
 					} else {
 						fmt.Println("角色不存在:" + roleName)
-						return
-					}
-					admin.RoleName = roleName
-
-					var groupName, deptName string
-					deptArr := strings.Split(departmentName, "/")
-					fmt.Println(deptArr)
-					if len(deptArr) < 2 {
-						fmt.Println("部门信息错误,至少两级")
-						return
+						continue
 					}
-					deptName = deptArr[0]
-					groupName = deptArr[1]
-
-					if dept, ok := deptMap[deptName]; ok {
-						admin.DepartmentId = dept.DepartmentId
-					}
-
-					admin.DepartmentName = deptName
-
-					if group, ok := groupMap[groupName]; ok {
-						admin.GroupId = group.GroupId
-						admin.GroupName = groupName
-					}
-					admin.Email = email
-
-					admin.TelAreaCode = telAreaCode
-					admin.IsLdap = 0
 					err = models.AddAdmin(admin)
 					if err != nil {
 						fmt.Println("新增失败,Err:" + err.Error())
 						return
 					}
 				}
-
 			}
 		}
 	}