trigger: verify valid_volumes after runner restart
This commit is contained in:
@@ -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("用户名不存在");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user