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"),
"F1": i18n.TKey(language, "user.export.sex"),
"G1": i18n.TKey(language, "user.export.status"),
"H1": i18n.TKey(language, "user.export.deptID"),
"I1": i18n.TKey(language, "user.export.deptName"),
"J1": i18n.TKey(language, "user.export.deptLeader"),
"K1": i18n.TKey(language, "user.export.loginIP"),
"L1": i18n.TKey(language, "user.export.loginDate"),
"H1": i18n.TKey(language, "user.export.role"),
"I1": i18n.TKey(language, "user.export.deptID"),
"J1": i18n.TKey(language, "user.export.deptName"),
"K1": i18n.TKey(language, "user.export.deptLeader"),
"L1": i18n.TKey(language, "user.export.loginIP"),
"M1": i18n.TKey(language, "user.export.loginDate"),
}
// 读取用户性别字典数据
dictSysUserSex := s.sysDictDataService.SelectDictDataByType("sys_user_sex")
@@ -532,6 +533,13 @@ func (s *SysUserController) Export(c *gin.Context) {
if row.Status == "1" {
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{
"A" + idx: row.UserID,
"B" + idx: row.UserName,
@@ -540,11 +548,12 @@ func (s *SysUserController) Export(c *gin.Context) {
"E" + idx: row.PhoneNumber,
"F" + idx: sysUserSex,
"G" + idx: statusValue,
"H" + idx: row.Dept.DeptID,
"I" + idx: row.Dept.DeptName,
"J" + idx: row.Dept.Leader,
"K" + idx: row.LoginIP,
"L" + idx: date.ParseDateToStr(row.LoginDate, date.YYYY_MM_DD_HH_MM_SS),
"H" + idx: userRole,
"I" + idx: row.Dept.DeptID,
"J" + idx: row.Dept.DeptName,
"K" + idx: row.Dept.Leader,
"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
}
}
// 用户状态
sysUserStatus := common.STATUS_NO
if row["G"] == "Normal" {
if row["G"] == "正常" || row["G"] == "Normal" {
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{
UserType: "sys",
Password: initPassword,
DeptID: row["H"],
DeptID: row["I"],
UserName: row["B"],
NickName: row["C"],
PhoneNumber: row["E"],
Email: row["D"],
Status: sysUserStatus,
Sex: sysUserSex,
RoleIDs: []string{sysUserRole},
}
// 检查手机号码格式并判断是否唯一
@@ -725,7 +744,7 @@ func (s *SysUserController) ImportData(c *gin.Context) {
successMsgArr = append(successMsgArr, msg)
} else {
// 用户编号:%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++
failureMsgArr = append(failureMsgArr, msg)
}
@@ -739,12 +758,12 @@ func (s *SysUserController) ImportData(c *gin.Context) {
rows := s.sysUserService.UpdateUser(newSysUser)
if rows > 0 {
// 用户编号:%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++
successMsgArr = append(successMsgArr, msg)
} else {
// 用户编号:%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++
failureMsgArr = append(failureMsgArr, msg)
}