feat: 用户管理导入支持初始角色

This commit is contained in:
TsMask
2023-12-11 18:00:16 +08:00
parent 4fcd1f2724
commit 9c4260c690
4 changed files with 34 additions and 15 deletions

Binary file not shown.

View File

@@ -507,11 +507,12 @@ func (s *SysUserController) Export(c *gin.Context) {
"E1": i18n.TKey(language, "user.export.phone"), "E1": i18n.TKey(language, "user.export.phone"),
"F1": i18n.TKey(language, "user.export.sex"), "F1": i18n.TKey(language, "user.export.sex"),
"G1": i18n.TKey(language, "user.export.status"), "G1": i18n.TKey(language, "user.export.status"),
"H1": i18n.TKey(language, "user.export.deptID"), "H1": i18n.TKey(language, "user.export.role"),
"I1": i18n.TKey(language, "user.export.deptName"), "I1": i18n.TKey(language, "user.export.deptID"),
"J1": i18n.TKey(language, "user.export.deptLeader"), "J1": i18n.TKey(language, "user.export.deptName"),
"K1": i18n.TKey(language, "user.export.loginIP"), "K1": i18n.TKey(language, "user.export.deptLeader"),
"L1": i18n.TKey(language, "user.export.loginDate"), "L1": i18n.TKey(language, "user.export.loginIP"),
"M1": i18n.TKey(language, "user.export.loginDate"),
} }
// 读取用户性别字典数据 // 读取用户性别字典数据
dictSysUserSex := s.sysDictDataService.SelectDictDataByType("sys_user_sex") dictSysUserSex := s.sysDictDataService.SelectDictDataByType("sys_user_sex")
@@ -532,6 +533,13 @@ func (s *SysUserController) Export(c *gin.Context) {
if row.Status == "1" { if row.Status == "1" {
statusValue = i18n.TKey(language, "dictData.normal") statusValue = i18n.TKey(language, "dictData.normal")
} }
// 用户角色, 默认导出首个
userRole := ""
if len(row.Roles) > 0 {
roleID := row.Roles[0].RoleID
roleName := i18n.TKey(language, row.Roles[0].RoleName)
userRole = fmt.Sprintf("%s-%s", roleID, roleName)
}
dataCells = append(dataCells, map[string]any{ dataCells = append(dataCells, map[string]any{
"A" + idx: row.UserID, "A" + idx: row.UserID,
"B" + idx: row.UserName, "B" + idx: row.UserName,
@@ -540,11 +548,12 @@ func (s *SysUserController) Export(c *gin.Context) {
"E" + idx: row.PhoneNumber, "E" + idx: row.PhoneNumber,
"F" + idx: sysUserSex, "F" + idx: sysUserSex,
"G" + idx: statusValue, "G" + idx: statusValue,
"H" + idx: row.Dept.DeptID, "H" + idx: userRole,
"I" + idx: row.Dept.DeptName, "I" + idx: row.Dept.DeptID,
"J" + idx: row.Dept.Leader, "J" + idx: row.Dept.DeptName,
"K" + idx: row.LoginIP, "K" + idx: row.Dept.Leader,
"L" + idx: date.ParseDateToStr(row.LoginDate, date.YYYY_MM_DD_HH_MM_SS), "L" + idx: row.LoginIP,
"M" + idx: date.ParseDateToStr(row.LoginDate, date.YYYY_MM_DD_HH_MM_SS),
}) })
} }
@@ -655,22 +664,32 @@ func (s *SysUserController) ImportData(c *gin.Context) {
break break
} }
} }
// 用户状态
sysUserStatus := common.STATUS_NO sysUserStatus := common.STATUS_NO
if row["G"] == "Normal" { if row["G"] == "正常" || row["G"] == "Normal" {
sysUserStatus = common.STATUS_YES sysUserStatus = common.STATUS_YES
} }
// 用户角色 拿编号
sysUserRole := ""
if v, ok := row["H"]; ok && v != "" {
sysUserRole = strings.SplitN(v, "-", 2)[0]
if sysUserRole == "1" {
sysUserRole = ""
}
}
// 构建用户实体信息 // 构建用户实体信息
newSysUser := model.SysUser{ newSysUser := model.SysUser{
UserType: "sys", UserType: "sys",
Password: initPassword, Password: initPassword,
DeptID: row["H"], DeptID: row["I"],
UserName: row["B"], UserName: row["B"],
NickName: row["C"], NickName: row["C"],
PhoneNumber: row["E"], PhoneNumber: row["E"],
Email: row["D"], Email: row["D"],
Status: sysUserStatus, Status: sysUserStatus,
Sex: sysUserSex, Sex: sysUserSex,
RoleIDs: []string{sysUserRole},
} }
// 检查手机号码格式并判断是否唯一 // 检查手机号码格式并判断是否唯一
@@ -725,7 +744,7 @@ func (s *SysUserController) ImportData(c *gin.Context) {
successMsgArr = append(successMsgArr, msg) successMsgArr = append(successMsgArr, msg)
} else { } else {
// 用户编号:%s 登录名称 %s 导入失败 // 用户编号:%s 登录名称 %s 导入失败
msg := i18n.TTemplate(language, "user.import.fail", map[string]any{"id": row["A"], "email": newSysUser.UserName}) msg := i18n.TTemplate(language, "user.import.fail", map[string]any{"id": row["A"], "name": newSysUser.UserName})
failureNum++ failureNum++
failureMsgArr = append(failureMsgArr, msg) failureMsgArr = append(failureMsgArr, msg)
} }
@@ -739,12 +758,12 @@ func (s *SysUserController) ImportData(c *gin.Context) {
rows := s.sysUserService.UpdateUser(newSysUser) rows := s.sysUserService.UpdateUser(newSysUser)
if rows > 0 { if rows > 0 {
// 用户编号:%s 登录名称 %s 更新成功 // 用户编号:%s 登录名称 %s 更新成功
msg := i18n.TTemplate(language, "user.import.successUpdate", map[string]any{"id": row["A"], "email": newSysUser.UserName}) msg := i18n.TTemplate(language, "user.import.successUpdate", map[string]any{"id": row["A"], "name": newSysUser.UserName})
successNum++ successNum++
successMsgArr = append(successMsgArr, msg) successMsgArr = append(successMsgArr, msg)
} else { } else {
// 用户编号:%s 登录名称 %s 更新失败 // 用户编号:%s 登录名称 %s 更新失败
msg := i18n.TTemplate(language, "user.import.failUpdate", map[string]any{"id": row["A"], "email": newSysUser.UserName}) msg := i18n.TTemplate(language, "user.import.failUpdate", map[string]any{"id": row["A"], "name": newSysUser.UserName})
failureNum++ failureNum++
failureMsgArr = append(failureMsgArr, msg) failureMsgArr = append(failureMsgArr, msg)
} }