From e4e220916dd2a4aa649a9b0162e5b5ed0dc9d7e5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 20 五月 2025 10:36:54 +0800 Subject: [PATCH] 代码提交 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 103 insertions(+), 2 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index e126467..ebf45c3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -17,6 +17,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -60,6 +61,9 @@ @Autowired protected Validator validator; + + @Value("${isAdmin}") + private List<Long> isAdmin; /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 @@ -148,6 +152,100 @@ Map<String, Object> map = new HashMap<>(); map.put("deptCode", ""); if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode()); + map.put("deptName", ""); + if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName()); + list.add(map); + } + sysUser.setBelongDepts(list); + } + return sysUser; + } + + @Override + public SysUser selectUserByUserName2(String userName) { + String[] split = userName.split("&"); + SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1]); + if (Objects.isNull(sysUser)) return sysUser; + List<SysDept> sysDepts = null; + if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { + SysDept dept = new SysDept(); + dept.setOrgid(split[1]); + sysDepts = sysDeptMapper.selectDeptList(dept); + } else { + sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId()); + } + List<Long> deptIds = new ArrayList<>(); + for (SysDept sysDept : sysDepts) { + deptIds.add(sysDept.getDeptId()); + } + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(sysUser.getUserId()); + sysUserDept.setDeptType(sysUser.getSearchscope()); + sysUserDept.setOrgid(split[1]); + List<SysUserDept> sysUserDeptKSs = null; + List<SysUserDept> sysUserDeptBQs = null; + if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) { + if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { + sysUserDept.setUserId(null); + } + sysUserDept.setDeptType("1"); + sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + sysUserDept.setDeptType("2"); + sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + //濡傛灉鏄痑dmin锛岄渶瑕佸sysUserDeptBQs锛宻ysUserDeptBQs鍘婚噸 + if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { + List<SysUserDept> distinctUserDepts = new ArrayList<>(); + Set<String> uniqueDeptCodes = new HashSet<>(); + for (SysUserDept userDept : sysUserDeptKSs) { + String deptCode = userDept.getDeptCode(); + if (StringUtils.isNotEmpty(deptCode) && !uniqueDeptCodes.contains(deptCode)) { + distinctUserDepts.add(userDept); + uniqueDeptCodes.add(deptCode); + } + } + + List<SysUserDept> distinctUserBQs = new ArrayList<>(); + Set<String> uniqueBQCodes = new HashSet<>(); + for (SysUserDept userDept : sysUserDeptBQs) { + String deptCode = userDept.getDeptCode(); + if (StringUtils.isNotEmpty(deptCode) && !uniqueBQCodes.contains(deptCode)) { + distinctUserBQs.add(userDept); + uniqueBQCodes.add(deptCode); + } + } + sysUserDeptKSs = distinctUserDepts; + sysUserDeptBQs = distinctUserBQs; + } + + } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) { + sysUserDept.setDeptType("1"); + sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) { + sysUserDept.setDeptType("2"); + sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + } + + sysUser.setDepts(deptIds); + if (!CollectionUtils.isEmpty(sysUserDeptBQs)) { + List<Map<String, Object>> list = new ArrayList<>(); + for (SysUserDept sud : sysUserDeptBQs) { + Map<String, Object> map = new HashMap<>(); + map.put("districtCode", ""); + if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode()); + else continue; + map.put("districtName", ""); + if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName()); + list.add(map); + } + sysUser.setBelongWards(list); + } + if (!CollectionUtils.isEmpty(sysUserDeptKSs)) { + List<Map<String, Object>> list = new ArrayList<>(); + for (SysUserDept sud : sysUserDeptKSs) { + Map<String, Object> map = new HashMap<>(); + map.put("deptCode", ""); + if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode()); + else continue; map.put("deptName", ""); if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName()); list.add(map); @@ -260,7 +358,7 @@ */ @Override public void checkUserAllowed(SysUser user) { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { + if (StringUtils.isNotNull(user.getUserId()) && isAdmin.contains(user.getUserId())) { throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); } } @@ -272,7 +370,7 @@ */ @Override public void checkUserDataScope(Long userId) { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) { + if (!isAdmin.contains(SecurityUtils.getUserId())) { SysUser user = new SysUser(); user.setUserId(userId); List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user); @@ -371,6 +469,7 @@ sysUserDept.setUserId(user.getUserId()); sysUserDept.setOrgid(user.getOrgid()); sysUserDept.setDeptCode(deptCode); + sysUserDept.setDeptId(sysDept.getDeptId()); List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); sysUserDept.setDelFlag(0L); sysUserDept.setDeptType("1"); @@ -392,6 +491,8 @@ SysUserDept sysUserDept = new SysUserDept(); sysUserDept.setUserId(user.getUserId()); sysUserDept.setDeptCode(wardCode); + sysUserDept.setDeptId(sysDept.getDeptId()); + sysUserDept.setOrgid(user.getOrgid()); List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); sysUserDept.setDelFlag(0L); sysUserDept.setDeptType("2"); -- Gitblit v1.9.3