From 92432fc3105ed80a8cc75e0d047692f851944eff Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 20 八月 2025 11:00:41 +0800 Subject: [PATCH] 用户信息导入导出修改 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java | 28 +++++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java | 14 +++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml | 26 +++++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java | 9 ++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java | 7 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java | 8 ++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java | 12 ++++++ 7 files changed, 103 insertions(+), 1 deletions(-) diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 520f3ef..1529964 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -1,6 +1,7 @@ package org.jeecg.modules.system.controller; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -32,6 +33,7 @@ import org.jeecg.modules.system.model.SysUserSysDepartModel; import org.jeecg.modules.system.service.*; import org.jeecg.modules.system.vo.SysDepartUsersVO; +import org.jeecg.modules.system.vo.SysUserRoleExitVo; import org.jeecg.modules.system.vo.SysUserRoleVO; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; @@ -580,7 +582,17 @@ } //update-end--Author:kangxiaolin Date:20180825 for锛歔03]鐢ㄦ埛瀵煎嚭锛屽鏋滈�夋嫨鏁版嵁鍒欏彧瀵煎嚭鐩稿叧鏁版嵁---------------------- List<SysUser> pageList = sysUserService.list(queryWrapper); - + // 鏌ヨ鐢ㄦ埛瑙掕壊 + List<String> userIds = pageList.stream().map(SysUser::getId).collect(Collectors.toList()); + List<SysUserRoleExitVo> userRoleExitVoList = sysUserRoleService.queryRoleNamesByUserIds(userIds); + if (!CollectionUtil.isEmpty(userRoleExitVoList)) { + Map<String, String> userRolesMap = userRoleExitVoList.stream().collect(Collectors.toMap(SysUserRoleExitVo::getUsername, SysUserRoleExitVo::getRoleNames)); + pageList.forEach(user -> { + if (userRolesMap.containsKey(user.getUsername())) { + user.setRoleIds(userRolesMap.get(user.getUsername())); + } + }); + } //瀵煎嚭鏂囦欢鍚嶇О mv.addObject(NormalExcelConstants.FILE_NAME, "鐢ㄦ埛鍒楄〃"); mv.addObject(NormalExcelConstants.CLASS, SysUser.class); @@ -627,6 +639,9 @@ sysUserExcel.setSalt(salt); String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt); sysUserExcel.setPassword(passwordEncode); + sysUserExcel.setDelFlag(CommonConstant.DEL_FLAG_0); + sysUserExcel.setPasswordFlag(CommonConstant.DEL_FLAG_1); + sysUserExcel.setPasswordTime(new Date()); try { sysUserService.save(sysUserExcel); successLines++; @@ -672,6 +687,17 @@ } userProductionService.saveBatch(userProductionList); } + // 鎵归噺灏嗚鑹插拰鐢ㄦ埛淇℃伅寤虹珛鍏宠仈鍏崇郴 + String roleIds = sysUserExcel.getRoleIds(); + if (StringUtils.isNotBlank(roleIds)) { + String userId = sysUserExcel.getId(); + String[] roleIdArray = roleIds.split(","); + List<SysUserRole> sysRoleList = new ArrayList<>(roleIdArray.length); + for (String roleId : roleIdArray) { + sysRoleList.add(new SysUserRole(userId, roleId)); + } + sysUserRoleService.saveBatch(sysRoleList); + } } } catch (Exception e) { errorMessage.add("鍙戠敓寮傚父锛�" + e.getMessage()); diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java index 0a3c06c..b1e7937 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysUser.java @@ -189,6 +189,14 @@ private String productionIds; /** + * 瑙掕壊鍒嗛厤 (瀵煎叆瀵煎嚭浣跨敤) + */ + @Excel(name="瑙掕壊鍒嗛厤",width = 15,dictTable ="sys_role",dicText = "role_name",dicCode = "id") + @Dict(dictTable ="sys_role",dicText = "role_name",dicCode = "id") + @TableField(exist = false) + private String roleIds; + + /** * 澶氱鎴穒d閰嶇疆锛岀紪杈戠敤鎴风殑鏃跺�欒缃� */ private String relTenantIds; diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java index 15f8bb8..313e5aa 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserRoleMapper.java @@ -1,10 +1,12 @@ package org.jeecg.modules.system.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.entity.SysUserRole; +import org.jeecg.modules.system.vo.SysUserRoleExitVo; import java.util.List; @@ -48,4 +50,11 @@ @Select("select username from sys_user where id in (select user_id from sys_user_role where role_id = #{roleId})") List<String> getUserNameByRoleId(@Param("roleId") String roleId); + /** + * 閫氳繃鐢ㄦ埛id闆嗗悎鑾峰彇鐢ㄦ埛鍜岃鑹插叧绯� + * @param userIds + * @return + */ + @InterceptorIgnore(tenantLine = "true") // 璺宠繃绉熸埛鎻掍欢瑙f瀽 + List<SysUserRoleExitVo> queryRoleNamesByUserIds(@Param("userIds") List<String> userIds); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml index c3812b4..9d99b9f 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserRoleMapper.xml @@ -15,4 +15,30 @@ where t2.id is not null ) </select> + + <select id="queryRoleNamesByUserIds" resultType="org.jeecg.modules.system.vo.SysUserRoleExitVo"> + SELECT + t1.username, + ISNULL( + STUFF( + ( + SELECT ',' + t3.role_name + FROM sys_user_role t2 + INNER JOIN sys_role t3 ON t2.role_id = t3.id + WHERE t2.user_id = t1.id + FOR XML PATH(''), TYPE + ).value('.', 'NVARCHAR(MAX)'), 1, 1, '' + ), '' + ) AS roleNames + FROM sys_user t1 + <where> + <if test="userIds!=null and userIds.size()>0"> + AND t1.id IN + <foreach collection="userIds" index="index" item="userId" open="(" separator="," close=")"> + #{userId} + </foreach> + </if> + </where> + GROUP BY t1.username, t1.id + </select> </mapper> diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java index c0096a3..60ec394 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserRoleService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.entity.SysUserRole; +import org.jeecg.modules.system.vo.SysUserRoleExitVo; import java.util.List; @@ -28,4 +29,10 @@ */ List<String> getUserNameByRoleId(String roleId); + /** + * 閫氳繃鐢ㄦ埛id闆嗗悎鑾峰彇鐢ㄦ埛鍜岃鑹插叧绯� + * @param userIds + * @return + */ + List<SysUserRoleExitVo> queryRoleNamesByUserIds(List<String> userIds); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java index 463b020..0d29a1c 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserRoleServiceImpl.java @@ -5,9 +5,11 @@ import org.jeecg.modules.system.entity.SysUserRole; import org.jeecg.modules.system.mapper.SysUserRoleMapper; import org.jeecg.modules.system.service.ISysUserRoleService; +import org.jeecg.modules.system.vo.SysUserRoleExitVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; /** @@ -42,4 +44,14 @@ return sysUserRoleMapper.getUserNameByRoleId(roleId); } + /** + * 閫氳繃鐢ㄦ埛id闆嗗悎鑾峰彇鐢ㄦ埛鍜岃鑹插叧绯� + * @param userIds + * @return + */ + @Override + public List<SysUserRoleExitVo> queryRoleNamesByUserIds(List<String> userIds) { + return sysUserRoleMapper.queryRoleNamesByUserIds(userIds); + } + } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java new file mode 100644 index 0000000..836f1fb --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/SysUserRoleExitVo.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.system.vo; + +import lombok.Data; + +/** + * @Author: Lius + * @CreateTime: 2025-08-20 + * @Description: + */ +@Data +public class SysUserRoleExitVo { + private String username; + private String roleNames; +} -- Gitblit v1.9.3