角色增加空树接口,删除改为物理删除
This commit is contained in:
parent
0e7a54ba50
commit
1d76327674
|
|
@ -58,4 +58,10 @@ public class RoleController {
|
||||||
public ElectromagneticResult<?> getRoleNames() {
|
public ElectromagneticResult<?> getRoleNames() {
|
||||||
return ElectromagneticResultUtil.success(roleService.getAllRoleNames());
|
return ElectromagneticResultUtil.success(roleService.getAllRoleNames());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value="获得角色配置模版", notes = "")
|
||||||
|
@GetMapping(value = "/getRoleTemplate")
|
||||||
|
public ElectromagneticResult<?> getRoleTemplate() {
|
||||||
|
return ElectromagneticResultUtil.success(roleService.getRoleTemplate());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,11 +63,5 @@ public class Role {
|
||||||
*/
|
*/
|
||||||
@TableField(value = "gmt_modified", fill = FieldFill.UPDATE)
|
@TableField(value = "gmt_modified", fill = FieldFill.UPDATE)
|
||||||
private Date gmtModified;
|
private Date gmtModified;
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否有效:0-无效 1-有效
|
|
||||||
*/
|
|
||||||
@TableField(value = "effect_flag")
|
|
||||||
private Integer effectFlag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,5 +65,12 @@ public interface RoleService extends IService<Role> {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
RoleDTO getRoleByName(String roleName);
|
RoleDTO getRoleByName(String roleName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 空树
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
RoleDTO getRoleTemplate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
||||||
.eq(EdFileRelation::getId1, queryId2).eq(EdFileRelation::getId2, queryId1);
|
.eq(EdFileRelation::getId1, queryId2).eq(EdFileRelation::getId2, queryId1);
|
||||||
List<EdFileRelation> list = this.list(queryWrapper);
|
List<EdFileRelation> list = this.list(queryWrapper);
|
||||||
if (!list.isEmpty()) {
|
if (!list.isEmpty()) {
|
||||||
throw new BizException (HttpStatus.BAD_REQUEST.value(), "请勿重复建立关系");
|
throw new BizException (-1, "请勿重复建立关系");
|
||||||
}
|
}
|
||||||
|
|
||||||
edFileRelation.setId(IdWorker.getSnowFlakeIdString());
|
edFileRelation.setId(IdWorker.getSnowFlakeIdString());
|
||||||
|
|
@ -137,8 +137,6 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public Boolean checkNameUnique(String parentId, String fileName) {
|
public Boolean checkNameUnique(String parentId, String fileName) {
|
||||||
EdFileInfo fileInfo = edFileInfoService.getById(parentId);
|
|
||||||
Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件");
|
|
||||||
String mainName = FileUtil.mainName(fileName);
|
String mainName = FileUtil.mainName(fileName);
|
||||||
String suffix = FileUtil.getSuffix(fileName);
|
String suffix = FileUtil.getSuffix(fileName);
|
||||||
EdFileInfo newEdFileInfo = new EdFileInfo();
|
EdFileInfo newEdFileInfo = new EdFileInfo();
|
||||||
|
|
@ -184,8 +182,14 @@ public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper,
|
||||||
public ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String descrption) {
|
public ElectromagneticResult<?> uploadFileAndRelation(String parentId, String id, MultipartFile file, String descrption) {
|
||||||
|
|
||||||
Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG);
|
Assert.isTrue(EleCommonUtil.isFileNameValid(file.getOriginalFilename()), NAME_VALID_MSG);
|
||||||
EdFileInfo fileInfo = edFileInfoService.getById(parentId);
|
// 查找下一层,看是否存在顶级定义相关文件,如果存在,则该层属于管理员层级定义的,不允许上传文件
|
||||||
Assert.isTrue(fileInfo.getDataType().equals(EleDataTypeEnum.FOLDER.code) && !fileInfo.getPrjDir(), "层级目录不允许上传文件");
|
long dirCount = edFileInfoService.count(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||||
|
.eq(EdFileInfo::getParentId, parentId)
|
||||||
|
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||||
|
.eq(EdFileInfo::getPrjDir, true)
|
||||||
|
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code));
|
||||||
|
Assert.isTrue(dirCount == 0, "层级目录不允许上传文件");
|
||||||
|
|
||||||
String fileName = file.getOriginalFilename();
|
String fileName = file.getOriginalFilename();
|
||||||
String mainName = FileUtil.mainName(fileName);
|
String mainName = FileUtil.mainName(fileName);
|
||||||
String suffix = FileUtil.getSuffix(fileName);
|
String suffix = FileUtil.getSuffix(fileName);
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
|
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||||
import com.electromagnetic.industry.software.common.util.EleLog;
|
import com.electromagnetic.industry.software.common.util.EleLog;
|
||||||
import com.electromagnetic.industry.software.common.util.IdWorker;
|
import com.electromagnetic.industry.software.common.util.IdWorker;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
|
import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.RoleMapper;
|
import com.electromagnetic.industry.software.manage.mapper.RoleMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.Role;
|
import com.electromagnetic.industry.software.manage.pojo.models.Role;
|
||||||
|
|
@ -20,10 +23,7 @@ import com.electromagnetic.industry.software.manage.pojo.models.UserRole;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.RolePermissionDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.RolePermissionDTO;
|
||||||
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
import com.electromagnetic.industry.software.manage.service.*;
|
||||||
import com.electromagnetic.industry.software.manage.service.RolePermissionService;
|
|
||||||
import com.electromagnetic.industry.software.manage.service.RoleService;
|
|
||||||
import com.electromagnetic.industry.software.manage.service.UserRoleService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -44,14 +44,15 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
private RolePermissionService rolePermissionService;
|
private RolePermissionService rolePermissionService;
|
||||||
@Resource
|
@Resource
|
||||||
private UserRoleService userRoleService;
|
private UserRoleService userRoleService;
|
||||||
@Resource
|
|
||||||
private CommonService commonService;
|
|
||||||
@Resource
|
@Resource
|
||||||
private PermissionService permissionService;
|
private PermissionService permissionService;
|
||||||
|
|
||||||
private EleLog log = new EleLog(RoleServiceImpl.class);
|
private EleLog log = new EleLog(RoleServiceImpl.class);
|
||||||
@Autowired
|
@Resource
|
||||||
private RoleMapper roleMapper;
|
private RoleMapper roleMapper;
|
||||||
|
@Resource
|
||||||
|
private EdFileInfoMapper edFileInfoMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新建角色
|
* 新建角色
|
||||||
|
|
@ -129,17 +130,20 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteRole(String roleId) {
|
public Boolean deleteRole(String roleId) {
|
||||||
|
|
||||||
// 保留角色权限关联表
|
// 删除角色权限关联表
|
||||||
|
LambdaQueryWrapper<RolePermission> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(RolePermission::getRoleId, roleId);
|
||||||
|
rolePermissionService.remove(queryWrapper);
|
||||||
|
|
||||||
// 删除用户角色关联表
|
// 删除用户角色关联表
|
||||||
LambdaQueryWrapper<UserRole> queryWrapper1 = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<UserRole> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
queryWrapper1.eq(UserRole::getRoleId, roleId);
|
queryWrapper1.eq(UserRole::getRoleId, roleId);
|
||||||
userRoleService.remove(queryWrapper1);
|
userRoleService.remove(queryWrapper1);
|
||||||
|
|
||||||
// 逻辑删除角色
|
// 删除角色
|
||||||
LambdaUpdateWrapper<Role> queryWrapper2 = new LambdaUpdateWrapper<>();
|
LambdaQueryWrapper<Role> queryWrapper2 = new LambdaQueryWrapper<>();
|
||||||
queryWrapper2.eq(Role::getRoleId, roleId)
|
queryWrapper2.eq(Role::getRoleId, roleId);
|
||||||
.set(Role::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code);
|
return this.remove(queryWrapper2);
|
||||||
return this.update(queryWrapper2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -160,8 +164,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
roleDTO.setRoleName(role.getRoleName());
|
roleDTO.setRoleName(role.getRoleName());
|
||||||
roleDTO.setRoleDesc(role.getRoleDesc());
|
roleDTO.setRoleDesc(role.getRoleDesc());
|
||||||
|
|
||||||
// 查询当前层级树,若层级树查询条件修改,此处也需修改
|
List<EdFileInfo> infos = getFiles();
|
||||||
List<EdFileInfo> infos = commonService.selectAllAdminFolder(PRJ_PARENT_ID);
|
|
||||||
|
|
||||||
List<RolePermissionDTO> nodes = new ArrayList<>();
|
List<RolePermissionDTO> nodes = new ArrayList<>();
|
||||||
for (EdFileInfo info : infos) {
|
for (EdFileInfo info : infos) {
|
||||||
|
|
@ -223,7 +226,6 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) {
|
if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) {
|
||||||
queryWrapper.eq("r.role_name", rolePageDTO.getRoleName());
|
queryWrapper.eq("r.role_name", rolePageDTO.getRoleName());
|
||||||
}
|
}
|
||||||
queryWrapper.eq("r.effect_flag", EffectFlagEnum.EFFECT.code);
|
|
||||||
|
|
||||||
return roleMapper.getPageRoleDTO(page, queryWrapper);
|
return roleMapper.getPageRoleDTO(page, queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
@ -237,8 +239,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
@Override
|
@Override
|
||||||
public List<HashMap<String, String>> getAllRoleNames() {
|
public List<HashMap<String, String>> getAllRoleNames() {
|
||||||
LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Role> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.select(Role::getRoleName)
|
queryWrapper.select(Role::getRoleName);
|
||||||
.eq(Role::getEffectFlag, EffectFlagEnum.EFFECT.code);
|
|
||||||
|
|
||||||
List<String> roleNames = this.listObjs(queryWrapper).stream().map(Object::toString).collect(Collectors.toList());
|
List<String> roleNames = this.listObjs(queryWrapper).stream().map(Object::toString).collect(Collectors.toList());
|
||||||
List<HashMap<String,String>> result = new ArrayList<>();
|
List<HashMap<String,String>> result = new ArrayList<>();
|
||||||
|
|
@ -251,6 +252,38 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 空树
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
@Override
|
||||||
|
public RoleDTO getRoleTemplate() {
|
||||||
|
RoleDTO roleDTO = new RoleDTO();
|
||||||
|
|
||||||
|
List<EdFileInfo> infos = getFiles();
|
||||||
|
|
||||||
|
List<RolePermissionDTO> nodes = new ArrayList<>();
|
||||||
|
for (EdFileInfo info : infos) {
|
||||||
|
RolePermissionDTO rolePermissionDTO = new RolePermissionDTO();
|
||||||
|
rolePermissionDTO.setId(info.getId());
|
||||||
|
rolePermissionDTO.setParentId(info.getParentId());
|
||||||
|
rolePermissionDTO.setFileName(info.getFileName());
|
||||||
|
List<String> permissionCodes = new ArrayList<>();
|
||||||
|
Map<String, Boolean> dataAuth = new HashMap<>();
|
||||||
|
dataAuth.put("data", false);
|
||||||
|
rolePermissionDTO.setDataAuth(dataAuth);
|
||||||
|
|
||||||
|
rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes));
|
||||||
|
nodes.add(rolePermissionDTO);
|
||||||
|
}
|
||||||
|
|
||||||
|
roleDTO.setData(buildTree(nodes));
|
||||||
|
|
||||||
|
return roleDTO;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验当前角色名称是否唯一
|
* 校验当前角色名称是否唯一
|
||||||
*
|
*
|
||||||
|
|
@ -320,5 +353,16 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||||
.peek(node -> node.setChildren(findChildren(node, nodes))) // 递归设置子节点
|
.peek(node -> node.setChildren(findChildren(node, nodes))) // 递归设置子节点
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取层级树结构
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private List<EdFileInfo> getFiles() {
|
||||||
|
return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||||
|
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||||
|
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||||
|
.eq(EdFileInfo::getPrjDir, true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ public class UserServiceImpl implements UserService {
|
||||||
private TokenMapper tokenMapper;
|
private TokenMapper tokenMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private UserRoleMapper userRoleMapper;
|
private UserRoleMapper userRoleMapper;
|
||||||
@Autowired
|
@Resource
|
||||||
private RoleMapper roleMapper;
|
private RoleMapper roleMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -278,7 +278,7 @@ public class UserServiceImpl implements UserService {
|
||||||
@Override
|
@Override
|
||||||
public Boolean bindRoles(UserRoleRequest userRolesRequest) {
|
public Boolean bindRoles(UserRoleRequest userRolesRequest) {
|
||||||
if (userRolesRequest == null || userRolesRequest.getBindData().isEmpty()) {
|
if (userRolesRequest == null || userRolesRequest.getBindData().isEmpty()) {
|
||||||
throw new BizException(HttpStatus.BAD_REQUEST.value(), "请勿发布空数据");
|
throw new BizException(-1, "请勿发布空数据");
|
||||||
}
|
}
|
||||||
for (UserBindRoleDTO dto : userRolesRequest.getBindData()) {
|
for (UserBindRoleDTO dto : userRolesRequest.getBindData()) {
|
||||||
activeRole(dto);
|
activeRole(dto);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue