trigger: verify valid_volumes after runner restart

This commit is contained in:
runner
2026-08-26 16:23:30 +08:00
commit 46d1c1d7ed
64 changed files with 4513 additions and 0 deletions
@@ -0,0 +1,29 @@
package com.freedom.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freedom.admin.entity.TSysDept;
import java.util.List;
import java.util.Map;
/**
* @author zhangjiaxun
* @date 2021/2/9 10:15
* @description
*/
public interface TSysDeptService extends IService<TSysDept> {
/**
* 获取部门Tree数据
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getTreeList();
/**
* 获取部门TreeSelect数据
*
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getTreeSelectList();
}
@@ -0,0 +1,52 @@
package com.freedom.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freedom.admin.entity.TSysPermission;
import java.util.List;
import java.util.Map;
/**
* @author zhangjiaxun
* @date 2021/2/4 11:08
* @description
*/
public interface TSysPermissionService extends IService<TSysPermission> {
/**
* 获取权限数据
*
* @param userId 用户ID
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getPermissionListByUserId(Long userId);
/**
* 获取权限树数据
*
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getTreeList();
/**
* 获取权限树数据
*
* @param roleId 角色ID
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getTreeListByRoleId(Long roleId);
/**
* 获取权限treeSelect数据
*
* @return List<Map<String, Object>>
* */
List<Map<String, Object>> getTreeSelectList();
/**
* 根据菜单ID进行递归删除
*
* @return Boolean
* */
Boolean removeByPermissionId(Long id);
}
@@ -0,0 +1,15 @@
package com.freedom.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freedom.admin.entity.TSysRolePermission;
/**
* @author zhangjiaxun
* @date 2021/2/14 9:21
* @description
*/
public interface TSysRolePermissionService extends IService<TSysRolePermission> {
boolean save(Long roleId, String rolePermissionStr, String operator);
}
@@ -0,0 +1,21 @@
package com.freedom.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freedom.admin.entity.TSysRole;
import java.util.List;
import java.util.Map;
/**
* @author zhangjiaxun
* @date 2021/2/8 15:45
* @description
*/
public interface TSysRoleService extends IService<TSysRole> {
/**
* 获取角色下拉列表数据
*/
List<Map<String, String>> getRoleSelectList();
}
@@ -0,0 +1,23 @@
package com.freedom.admin.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.freedom.admin.entity.TSysUser;
/**
* @author zhangjiaxun
* @date 2021/2/4 9:28
* @description
*/
public interface TSysUserService extends IService<TSysUser> {
/**
* 添加用户账号
* */
boolean save(TSysUser entity, String userRoleStr, String operator);
/**
* 用户注册
* */
boolean register(TSysUser entity);
}
@@ -0,0 +1,12 @@
package com.freedom.admin.service;
import org.springframework.security.core.userdetails.UserDetailsService;
/**
* @author zhangjiaxun
* @date 2021/1/5 18:58
* @description
*/
public interface UserService extends UserDetailsService {
}
@@ -0,0 +1,120 @@
package com.freedom.admin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.freedom.admin.entity.TSysDept;
import com.freedom.admin.mapper.TSysDeptMapper;
import com.freedom.admin.service.TSysDeptService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author zhangjiaxun
* @date 2021/2/9 10:23
* @description
*/
@Service
@Log4j2
public class TSysDeptImpl extends ServiceImpl<TSysDeptMapper, TSysDept> implements TSysDeptService {
private static final int TYPE_FOR_TREE = 1;
private static final int TYPE_FOR_TREE_SELECT = 2;
@Autowired
private TSysDeptMapper tSysDeptMapper;
@Override
public List<Map<String, Object>> getTreeList() {
log.info("业务层--获取部门数据,提供给树");
List<Map<String, Object>> deptList = tSysDeptMapper.getDeptListForTree();
log.info("业务层--添加顶级元素");
addTopDeptElement(deptList, TYPE_FOR_TREE);
log.info("业务层--格式化部门数据为树形结构");
List<Map<String, Object>> treeList = formatDeptListToTreeList(deptList, -1L);
return treeList;
}
@Override
public List<Map<String, Object>> getTreeSelectList() {
log.info("业务层--获取部门数据");
List<Map<String, Object>> deptList = tSysDeptMapper.getDeptListForTreeSelect();
log.info("业务层--添加顶级元素");
addTopDeptElement(deptList, TYPE_FOR_TREE_SELECT);
log.info("业务层--格式化部门数据");
List<Map<String, Object>> treeSelectList = formatDeptListToTreeSelectList(deptList, -1L);
return treeSelectList;
}
/**
* deptList数据格式化树形结构方法
*/
public List<Map<String, Object>> formatDeptListToTreeList(List<Map<String, Object>> deptList, Long parentId) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (Map<String, Object> dept : deptList) {
if ("0".equals(dept.get("level").toString())){
dept.put("selected",true);
dept.put("expand",true);
}
if (dept.get("checked") != null){
if ("1".equals(dept.get("checked"))){
dept.put("checked",true);
}else if ("0".equals(dept.get("checked"))){
dept.put("checked",false);
}
}
if (parentId.equals(dept.get("parentId"))) {
List<Map<String, Object>> childList = formatDeptListToTreeList(deptList, Long.valueOf(dept.get("id").toString()));
dept.put("children", childList);
resultList.add(dept);
}
}
return resultList;
}
/**
* 添加顶级元素
* */
public void addTopDeptElement(List<Map<String, Object>> deptList, int type){
Map<String, Object> topDeptElementMap = new HashMap<>();
if (type == TYPE_FOR_TREE){
topDeptElementMap.put("id", 0L);
topDeptElementMap.put("parentId", -1L);
topDeptElementMap.put("title", "顶级");
topDeptElementMap.put("deptCode", "dept_top");
topDeptElementMap.put("deptDesc","dept_desc");
topDeptElementMap.put("level", 0);
topDeptElementMap.put("delFlag", 0);
}else if (type == TYPE_FOR_TREE_SELECT){
topDeptElementMap.put("id", 0L);
topDeptElementMap.put("parentId", -1L);
topDeptElementMap.put("label", "顶级");
topDeptElementMap.put("level", 0);
}
deptList.add(topDeptElementMap);
}
/**
* deptList数据格式化下拉树数据
*/
private List<Map<String, Object>> formatDeptListToTreeSelectList(List<Map<String, Object>> deptList, Long parentId) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (Map<String, Object> dept : deptList) {
if (parentId.equals(dept.get("parentId"))) {
List<Map<String, Object>> childList = formatDeptListToTreeSelectList(deptList, Long.valueOf(dept.get("id").toString()));
if (childList.size()>0 ){
dept.put("children", childList);
}
resultList.add(dept);
}
}
return resultList;
}
}
@@ -0,0 +1,231 @@
package com.freedom.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.freedom.admin.entity.TSysPermission;
import com.freedom.admin.mapper.TSysPermissionMapper;
import com.freedom.admin.service.TSysPermissionService;
import com.google.common.base.Throwables;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author zhangjiaxun
* @date 2021/2/4 11:08
* @description 业务层-系统权限
*/
@Service
@Log4j2
public class TSysPermissionServiceImpl extends ServiceImpl<TSysPermissionMapper,TSysPermission> implements TSysPermissionService {
private static final int TYPE_FOR_TREE = 1;
private static final int TYPE_FOR_TREE_SELECT = 2;
@Autowired
private TSysPermissionMapper tSysPermissionMapper;
@Override
public List<Map<String, Object>> getPermissionListByUserId(Long userId) {
log.info("业务层---查询所有权限");
List<Map<String, Object>> allPermissionList = tSysPermissionMapper.selectAllMapList();
log.info("业务层--查询用户权限");
List<Map<String, Object>> userPermissionList = tSysPermissionMapper.selectMapListByUserId(userId);
log.info("业务层--拼接出完整的权限");
List<Map<String, Object>> permissionList = getPermissionList(allPermissionList, userPermissionList);
log.info("业务层--添加顶级元素");
addTopPermissionElement(permissionList, TYPE_FOR_TREE);
log.info("业务层--格式化数据为树形结构--结果:{}",permissionList);
List<Map<String, Object>> permissionTreeList = formatPermissionListToTreeList(permissionList, -1L);
if (permissionTreeList !=null && permissionTreeList.size()>0){
List<Map<String, Object>> childrenList = (List<Map<String, Object>>)permissionTreeList.get(0).get("children");
return childrenList;
}
return permissionList;
}
@Override
public List<Map<String, Object>> getTreeList() {
log.info("业务层---查询所有权限提供给树");
List<Map<String, Object>> permissionListForTree = tSysPermissionMapper.getPermissionListForTree();
log.info("业务层--添加顶级元素");
addTopPermissionElement(permissionListForTree, TYPE_FOR_TREE);
log.info("业务层---格式化树数据为树形结构");
List<Map<String, Object>> treeList = formatPermissionListToTreeList(permissionListForTree, -1L);
return treeList;
}
@Override
public List<Map<String, Object>> getTreeSelectList() {
log.info("业务层--获取部门数据");
List<Map<String, Object>> permissionList = tSysPermissionMapper.getPermissionListForTreeSelect();
log.info("业务层--添加顶级元素");
addTopPermissionElement(permissionList, TYPE_FOR_TREE_SELECT);
log.info("业务层--格式化权限数据");
List<Map<String, Object>> treeSelectList = formatPermissionListToTreeSelectList(permissionList, -1L);
return treeSelectList;
}
@Override
public List<Map<String, Object>> getTreeListByRoleId(Long roleId) {
log.info("业务层---查询所有权限提供给树");
List<Map<String, Object>> permissionListForTree = tSysPermissionMapper.getPermissionListByRoleId(roleId);
log.info("业务层--添加顶级元素");
addTopPermissionElement(permissionListForTree, TYPE_FOR_TREE);
log.info("业务层---格式化树数据为树形结构");
List<Map<String, Object>> treeList = formatPermissionListToTreeList(permissionListForTree, -1L);
return treeList;
}
/**
* 添加上级权限
* */
public List<Map<String, Object>> getPermissionList(List<Map<String, Object>> allPermissionList,
List<Map<String, Object>> userPermissionList){
HashSet<Map<String, Object>> permissionSet = new HashSet<>();
if (userPermissionList !=null && userPermissionList.size()>0){
// 循环添加数据,实际我们的菜单分为多级
for (Map<String, Object> userPermissionMap : userPermissionList) {
for (Map<String, Object> allPermissionMap : allPermissionList) {
if (allPermissionMap.get("parentId").toString().equals("-1")){
// 保证至少会有一个顶级菜单
if (!permissionSet.contains(allPermissionMap)){
// 保证不重复加入菜单列表结果集合中
permissionSet.add(allPermissionMap);
}
}
if (userPermissionMap.get("id").toString().equals(allPermissionMap.get("id").toString())){
// 把自己菜单加入结果集合中
permissionSet.add(allPermissionMap);
}
if (userPermissionMap.get("parentId").toString().equals(allPermissionMap.get("id").toString())){
if (!permissionSet.contains(allPermissionMap)){
// 保证不重复加入菜单列表结果集合中
permissionSet.add(allPermissionMap);
}
}
}
}
}
List<Map<String,Object>> permissionList = new ArrayList<>(permissionSet);
return permissionList;
}
/**
* permissionList数据格式化树形结构方法
*
* @param permissionList 权限数据
* @param parentId 父ID
* @return List<Map<String, Object>>
*/
private List<Map<String, Object>> formatPermissionListToTreeList(List<Map<String, Object>> permissionList, Long parentId) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (Map<String, Object> permission : permissionList) {
if ("0".equals(permission.get("level").toString())){
//permission.put("selected", true);
permission.put("checked", false);
}
permission.put("expand", true);
if (permission.get("checked") != null){
if ("1".equals(permission.get("checked"))){
permission.put("checked", true);
}else if ("0".equals(permission.get("checked"))){
permission.put("checked", false);
}
}
if (parentId.equals(permission.get("parentId"))) {
List<Map<String, Object>> childList = formatPermissionListToTreeList(permissionList, Long.valueOf(permission.get("id").toString()));
List<Map<String, Object>> sortList = childList.stream().sorted(Comparator.comparing(map -> Integer.parseInt(map.get("sort").toString()))).collect(Collectors.toList());
permission.put("children", sortList);
resultList.add(permission);
}
}
return resultList;
}
/**
* permissionList格式化treeSelect结构
*
* @param permissionList 权限数据
* @param parentId 父ID
* @return List<Map<String, Object>>
*/
private List<Map<String, Object>> formatPermissionListToTreeSelectList(List<Map<String, Object>> permissionList, Long parentId) {
List<Map<String, Object>> resultList = new ArrayList<>();
for (Map<String, Object> permission : permissionList) {
if ("0".equals(permission.get("level"))){
permission.put("isDisabled",true);
}
if (parentId.equals(permission.get("parentId"))) {
List<Map<String, Object>> childList = formatPermissionListToTreeSelectList(permissionList, Long.valueOf(permission.get("id").toString()));
if (childList.size()>0 ){
permission.put("children", childList);
}
resultList.add(permission);
}
}
return resultList;
}
/**
* 添加顶级元素
* */
public void addTopPermissionElement(List<Map<String, Object>> permissionList, int type){
Map<String, Object> topPermissionElementMap = new HashMap<>();
if (type == TYPE_FOR_TREE){
topPermissionElementMap.put("id", 0L);
topPermissionElementMap.put("parentId", -1L);
topPermissionElementMap.put("title", "顶级");
topPermissionElementMap.put("icon", "ios-navigate");
topPermissionElementMap.put("level", 0);
topPermissionElementMap.put("checked", 1);
topPermissionElementMap.put("sort", 0);
}else if (type == TYPE_FOR_TREE_SELECT){
topPermissionElementMap.put("id", 0L);
topPermissionElementMap.put("parentId", -1L);
topPermissionElementMap.put("label", "顶级");
topPermissionElementMap.put("level", 0);
topPermissionElementMap.put("sort", 0);
}
permissionList.add(topPermissionElementMap);
}
/**
* 递归删除
*
* @param id 父ID
* @return Boolean ture/false
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean removeByPermissionId(Long id) {
try {
QueryWrapper<TSysPermission> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("parent_id", id);
queryWrapper.eq("del_flag",0);
List<TSysPermission> childrenList = tSysPermissionMapper.selectList(queryWrapper);
// 子菜单集合为空时,删除当前菜单,跳出此循环4
if (childrenList == null || childrenList.size() == 0){
tSysPermissionMapper.deleteById(id);
return Boolean.TRUE;
}
for (TSysPermission tSysPermission : childrenList) {
removeByPermissionId(tSysPermission.getId());
}
} catch (Exception e) {
log.error("递归删除菜单权限id:{}异常:{}", id ,Throwables.getStackTraceAsString(e));
return Boolean.FALSE;
}
return Boolean.TRUE;
}
}
@@ -0,0 +1,55 @@
package com.freedom.admin.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.freedom.admin.config.MyException;
import com.freedom.admin.entity.TSysRolePermission;
import com.freedom.admin.mapper.TSysRolePermissionMapper;
import com.freedom.admin.service.TSysRolePermissionService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* @author zhangjiaxun
* @date 2021/2/14 9:23
* @description
*/
@Service
@Log4j2
public class TSysRolePermissionServiceImpl extends ServiceImpl<TSysRolePermissionMapper, TSysRolePermission> implements TSysRolePermissionService{
@Autowired
private TSysRolePermissionMapper tSysRolePermissionMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean save(Long roleId, String rolePermissionStr, String operator) {
log.info("业务层-删除权限");
QueryWrapper<TSysRolePermission> deleteWrapper = new QueryWrapper<>();
deleteWrapper.eq("role_id",roleId);
int deleteRolePermission = tSysRolePermissionMapper.delete(deleteWrapper);
List<TSysRolePermission> tSysRolePermissionList = JSONArray.parseArray(rolePermissionStr, TSysRolePermission.class);
if (tSysRolePermissionList == null || tSysRolePermissionList.size() == 0){
throw new MyException(400,"添加用户权限为空!");
}
log.info("业务层-添加权限");
int insertRolePermissionCount = 0;
for (TSysRolePermission tSysRolePermission : tSysRolePermissionList) {
tSysRolePermission.setCreateBy(operator);
tSysRolePermission.setCreateDate(new Date());
int insertTSysUserRole = tSysRolePermissionMapper.insert(tSysRolePermission);
insertRolePermissionCount = insertRolePermissionCount + insertTSysUserRole;
}
if (insertRolePermissionCount != tSysRolePermissionList.size()){
throw new MyException(400,"添加权限失败!");
}
return true;
}
}
@@ -0,0 +1,28 @@
package com.freedom.admin.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.freedom.admin.entity.TSysRole;
import com.freedom.admin.mapper.TSysRoleMapper;
import com.freedom.admin.service.TSysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author zhangjiaxun
* @date 2021/2/8 15:47
* @description
*/
@Service
public class TSysRoleServiceImpl extends ServiceImpl<TSysRoleMapper,TSysRole> implements TSysRoleService {
@Autowired
private TSysRoleMapper tSysRoleMapper;
@Override
public List<Map<String, String>> getRoleSelectList() {
return tSysRoleMapper.getRoleSelectList();
}
}
@@ -0,0 +1,130 @@
package com.freedom.admin.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.freedom.admin.config.MyException;
import com.freedom.admin.entity.TSysRole;
import com.freedom.admin.entity.TSysUser;
import com.freedom.admin.entity.TSysUserRole;
import com.freedom.admin.mapper.TSysRoleMapper;
import com.freedom.admin.mapper.TSysUserMapper;
import com.freedom.admin.mapper.TSysUserRoleMapper;
import com.freedom.admin.service.TSysUserService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author zhangjiaxun
* @date 2021/2/4 9:29
* @description
*/
@Service
@Log4j2
public class TSysUserServiceImpl extends ServiceImpl<TSysUserMapper,TSysUser> implements TSysUserService {
@Autowired
private TSysUserMapper sysUserMapper;
@Autowired
private TSysRoleMapper sysRoleMapper;
@Autowired
private TSysUserRoleMapper sysUserRoleMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean save(TSysUser tSysUser, String userRoleStr, String operator) {
log.info("业务层-添加用户账号");
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
String encode = bCryptPasswordEncoder.encode("123456");
tSysUser.setEncodeType("BCrypt");
tSysUser.setPassword(encode);
tSysUser.setCreateBy(operator);
tSysUser.setCreateDate(new Date());
tSysUser.setUpdateBy(tSysUser.getCreateBy());
tSysUser.setUpdateDate(tSysUser.getCreateDate());
int insertTSysUser = sysUserMapper.insert(tSysUser);
log.info("业务层-添加用户账号");
if (insertTSysUser <= 0){
throw new MyException(400,"添加用户账号失败!");
}
List<TSysUserRole> tSysUserRoleList = JSONArray.parseArray(userRoleStr, TSysUserRole.class);
if (tSysUserRoleList ==null || tSysUserRoleList.size() == 0){
throw new MyException(400,"添加用户权限为空!");
}
int insertUserRoleCount = 0;
for (TSysUserRole tSysUserRole : tSysUserRoleList) {
tSysUserRole.setUserId(tSysUser.getId());
tSysUserRole.setCreateBy(operator);
tSysUserRole.setCreateTime(new Date());
int insertTSysUserRole = sysUserRoleMapper.insert(tSysUserRole);
insertUserRoleCount = insertUserRoleCount + insertTSysUserRole;
}
if (insertUserRoleCount != tSysUserRoleList.size()){
throw new MyException(400,"添加用户账号的权限失败!");
}
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean register(TSysUser sysUser) {
log.info("业务层-注册用户账号");
BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
String encode = bCryptPasswordEncoder.encode(sysUser.getPassword());
sysUser.setEncodeType("BCrypt");
sysUser.setPassword(encode);
sysUser.setCreateBy("注册页面");
String []nickNameArr = {
"撸串研究生",
"一米五的小可爱",
"不解风情的老妖怪",
"自我否定先驱者",
"国家特级不保护动物",
"迪士尼在逃公主",
"资深网络表情包传播者",
"白日梦工厂厂长",
"内地十八线女明星",
"国家重度健忘症患者"
};
int random=(int)(Math.random()*10);
sysUser.setNickname(nickNameArr[random]);
sysUser.setUpdateBy(sysUser.getCreateBy());
sysUser.setUpdateDate(sysUser.getCreateDate());
int insertSysUser = sysUserMapper.insert(sysUser);
log.info("业务层-添加用户账号");
if (insertSysUser <= 0){
throw new MyException(400,"添加用户账号失败!");
}
QueryWrapper<TSysRole> queryRoleWrapper = new QueryWrapper<>();
queryRoleWrapper.eq("is_default", 1);
queryRoleWrapper.eq("del_flag", 0);
List<TSysRole> sysRoleList = sysRoleMapper.selectList(queryRoleWrapper);
if (sysRoleList ==null || sysRoleList.size() == 0){
throw new MyException(400,"添加用户权限为空,请管理员配置注册默认角色!");
}
int insertUserRoleCount = 0;
for (TSysRole sysRole : sysRoleList) {
TSysUserRole sysUserRole = new TSysUserRole();
sysUserRole.setRoleId(sysRole.getId());
sysUserRole.setUserId(sysUser.getId());
sysUserRole.setCreateBy("注册页面");
sysUserRole.setCreateTime(new Date());
int insertTSysUserRole = sysUserRoleMapper.insert(sysUserRole);
insertUserRoleCount = insertUserRoleCount + insertTSysUserRole;
}
if (insertUserRoleCount != sysRoleList.size()){
throw new MyException(400,"添加用户账号的权限失败!");
}
return true;
}
}
@@ -0,0 +1,56 @@
package com.freedom.admin.service.impl;
import com.freedom.admin.entity.TSysPermission;
import com.freedom.admin.entity.TSysUser;
import com.freedom.admin.mapper.TSysPermissionMapper;
import com.freedom.admin.mapper.TSysUserMapper;
import com.freedom.admin.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author zhangjiaxun
* @date 2021/1/5 16:10
* @description
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private TSysUserMapper tSysUserMapper;
@Autowired
private TSysPermissionMapper tSysPermissionMapper;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
TSysUser tSysUser = tSysUserMapper.selectOneByUsername(username);
List<GrantedAuthority> authorities = new ArrayList<>();
if(tSysUser!=null){
// 设置权限
List<TSysPermission> tbPermissionList = tSysPermissionMapper.selectListByUserId(tSysUser.getId());
tbPermissionList.forEach(tbPermission -> {
if (tbPermission!=null && StringUtils.isNotBlank(tbPermission.getPermissionCode())){
GrantedAuthority grantedAuthority = new SimpleGrantedAuthority(tbPermission.getPermissionCode());
authorities.add(grantedAuthority);
}
});
// 封装成UserDetails的实现类
return new User(tSysUser.getUsername(),tSysUser.getPassword(),authorities);
}else {
throw new UsernameNotFoundException("用户名不存在");
}
}
}