首页>代码>ssm整合vue实现会员管理系统,含1w字论文,可做毕业设计参考实例>/会员管理系统/member/member-admin/src/main/java/co/yixiang/config/DataScope.java
/** * Copyright (C) 2018-2022 * All rights reserved, Designed By www.member * 注意: * 本软件为www.member开发研制 */ package co.yixiang.config; import co.yixiang.modules.system.domain.Dept; import co.yixiang.modules.system.service.DeptService; import co.yixiang.modules.system.service.RoleService; import co.yixiang.modules.system.service.UserService; import co.yixiang.modules.system.service.dto.RoleSmallDto; import co.yixiang.modules.system.service.dto.UserDto; import co.yixiang.utils.SecurityUtils; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /** * 数据权限配置 * @author member * @date 2019-4-1 */ @Component public class DataScope { private final String[] scopeType = {"全部", "本级", "自定义"}; private final UserService userService; private final RoleService roleService; private final DeptService deptService; public DataScope(UserService userService, RoleService roleService, DeptService deptService) { this.userService = userService; this.roleService = roleService; this.deptService = deptService; } public Set<Long> getDeptIds() { UserDto user = userService.findByName(SecurityUtils.getUsername()); // 用于存储部门id Set<Long> deptIds = new HashSet<>(); // 查询用户角色 List<RoleSmallDto> roleSet = roleService.findByUsersId(user.getId()); for (RoleSmallDto role : roleSet) { if (scopeType[0].equals(role.getDataScope())) { return new HashSet<>(); } // 存储本级的数据权限 if (scopeType[1].equals(role.getDataScope())) { deptIds.add(user.getDept().getId()); } // 存储自定义的数据权限 if (scopeType[2].equals(role.getDataScope())) { Set<Dept> depts = deptService.findByRoleIds(role.getId()); for (Dept dept : depts) { deptIds.add(dept.getId()); List<Dept> deptChildren = deptService.findByPid(dept.getId()); if (deptChildren != null && deptChildren.size() != 0) { deptIds.addAll(getDeptChildren(deptChildren)); } } } } return deptIds; } public List<Long> getDeptChildren(List<Dept> deptList) { List<Long> list = new ArrayList<>(); deptList.forEach(dept -> { if (dept != null && dept.getEnabled()) { List<Dept> depts = deptService.findByPid(dept.getId()); if (deptList.size() != 0) { list.addAll(getDeptChildren(depts)); } list.add(dept.getId()); } } ); return list; } }

陈小灏 LV18
2月25日
java菜鸟1号 LV7
2024年12月4日
zolscy LV24
2024年11月27日
withyouatdusk LV2
2024年9月29日
wenjie_5419 LV13
2024年7月10日
15342201772 LV9
2024年6月25日
TY0165 LV20
2024年6月17日
bbczlitao LV9
2024年6月11日
李怡桦 LV1
2024年6月7日
qwe6002 LV10
2024年5月24日