public UserDetailsImpl(UserVO userVo) { this.userId = userVo.getUserId(); this.username = userVo.getUsername(); this.password = userVo.getPassword(); this.status = userVo.getDelFlag(); roleList = userVo.getRoleList(); }
public MenuTree(MenuVO menuVo) { this.id = menuVo.getMenuId(); this.parentId = menuVo.getParentId(); this.icon = menuVo.getIcon(); this.name = menuVo.getName(); this.url = menuVo.getUrl(); this.path = menuVo.getPath(); this.component = menuVo.getComponent(); this.type = menuVo.getType(); this.label = menuVo.getName(); this.sort = menuVo.getSort(); } }
/** * menuId 相同则相同 * * @param obj * @return */ @Override public boolean equals(Object obj) { if (obj instanceof MenuVO) { Integer targetMenuId = ((MenuVO) obj).getMenuId(); return menuId.equals(targetMenuId); } return super.equals(obj); } }
@Override public UserInfo findUserInfo(UserVO userVo) { SysUser condition = new SysUser(); condition.setUsername(userVo.getUsername()); SysUser sysUser = this.selectOne(new EntityWrapper<>(condition)); UserInfo userInfo = new UserInfo(); userInfo.setSysUser(sysUser); //设置角色列表 List<String> roleCodes = userVo.getRoleList().stream() .filter(sysRole -> !StrUtil.equals(SecurityConstants.BASE_ROLE, sysRole.getRoleCode())) .map(SysRole::getRoleCode) .collect(Collectors.toList()); String[] roles = ArrayUtil.toArray(roleCodes, String.class); userInfo.setRoles(roles); //设置权限列表(menu.permission) Set<String> permissions = new HashSet<>(); Arrays.stream(roles).forEach(role -> { List<MenuVO> menuVos = sysMenuService.findMenuByRoleName(role); List<String> permissionList = menuVos.stream() .filter(menuVo -> StringUtils.isNotEmpty(menuVo.getPermission())) .map(MenuVO::getPermission).collect(Collectors.toList()); permissions.addAll(permissionList); }); userInfo.setPermissions(ArrayUtil.toArray(permissions, String.class)); return userInfo; }
/** * 返回当前用户的树形菜单集合 * * @param userVO * @return 当前用户的树形菜单 */ @GetMapping(value = "/userMenu") public List<MenuTree> userMenu(UserVO userVO) { // 获取符合条件得菜单 Set<MenuVO> all = new HashSet<>(); userVO.getRoleList().forEach(role -> all.addAll(sysMenuService.findMenuByRoleName(role.getRoleCode()))); List<MenuTree> menuTreeList = all.stream().filter(vo -> CommonConstant.MENU .equals(vo.getType())) .map(MenuTree::new) .sorted(Comparator.comparingInt(MenuTree::getSort)) .collect(Collectors.toList()); return TreeUtil.bulid(menuTreeList, -1); }
log.info("resolveArgument username :{} roles:{}", username, roles); UserVO userVO = new UserVO(); userVO.setUsername(username); List<SysRole> sysRoleList = new ArrayList<>(); Arrays.stream(roles.split(",")).forEach(role -> { SysRole sysRole = new SysRole(); sysRole.setRoleCode(role); sysRoleList.add(sysRole); }); userVO.setRoleList(sysRoleList); return userVO;
@Override @CacheEvict(value = "user_details", key = "#username") public R<Boolean> updateUserInfo(UserDTO userDto, String username) { UserVO userVo = this.findUserByUsername(username); SysUser sysUser = new SysUser(); if (StrUtil.isNotBlank(userDto.getPassword()) && StrUtil.isNotBlank(userDto.getNewpassword1())) { if (ENCODER.matches(userDto.getPassword(), userVo.getPassword())) { sysUser.setPassword(ENCODER.encode(userDto.getNewpassword1())); } else { log.warn("原密码错误,修改密码失败:{}", username); return new R<>(Boolean.FALSE, "原密码错误,修改失败"); } } sysUser.setPhone(userDto.getPhone()); sysUser.setUserId(userVo.getUserId()); sysUser.setAvatar(userDto.getAvatar()); return new R<>(this.updateById(sysUser)); }
/** * 获取当前用户的子部门信息 * * @param userVO 用户信息 * @return 子部门列表 */ private List<Integer> getChildDepts(UserVO userVO) { UserVO userVo = findUserByUsername(userVO.getUsername()); Integer deptId = userVo.getDeptId(); //获取当前部门的子部门 SysDeptRelation deptRelation = new SysDeptRelation(); deptRelation.setAncestor(deptId); List<SysDeptRelation> deptRelationList = sysDeptRelationService.selectList(new EntityWrapper<>(deptRelation)); List<Integer> deptIds = new ArrayList<>(); for (SysDeptRelation sysDeptRelation : deptRelationList) { deptIds.add(sysDeptRelation.getDescendant()); } return deptIds; }
LogVO logVo = new LogVO(); sysLog.setCreateBy(authentication.getName()); logVo.setSysLog(sysLog); logVo.setUsername(authentication.getName()); rabbitTemplate.convertAndSend(MqQueueConstant.LOG_QUEUE, logVo);
@Override public Collection<? extends GrantedAuthority> getAuthorities() { List<GrantedAuthority> authorityList = new ArrayList<>(); for (SysRole role : roleList) { authorityList.add(new SimpleGrantedAuthority(role.getRoleCode())); } authorityList.add(new SimpleGrantedAuthority(SecurityConstants.BASE_ROLE)); return authorityList; }
/** * 修改个人信息 * * @param userDto userDto * @param userVo 登录用户信息 * @return success/false */ @PutMapping("/editInfo") public R<Boolean> editInfo(@RequestBody UserDTO userDto, UserVO userVo) { return userService.updateUserInfo(userDto, userVo.getUsername()); } }
@RabbitHandler public void receive(LogVO logVo) { SysLog sysLog = logVo.getSysLog(); MDC.put(KEY_USER, logVo.getUsername()); sysLog.setCreateBy(logVo.getUsername()); sysLogService.insert(sysLog); MDC.remove(KEY_USER); } }
/** * 返回角色的菜单集合 * * @param roleName 角色名称 * @return 属性集合 */ @GetMapping("/roleTree/{roleName}") public List<Integer> roleTree(@PathVariable String roleName) { List<MenuVO> menus = sysMenuService.findMenuByRoleName(roleName); List<Integer> menuList = new ArrayList<>(); for (MenuVO menuVo : menus) { menuList.add(menuVo.getMenuId()); } return menuList; }