|
|
|
@ -44,6 +44,8 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
/** |
|
|
|
* 角色管理 |
|
|
|
@ -133,10 +135,23 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit |
|
|
|
//保存角色数据权限关系
|
|
|
|
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList()); |
|
|
|
|
|
|
|
handleEpdcUserRole(dto, entity); |
|
|
|
handleEpdcUserRole(dto, entity, false); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void saveV2(SysRoleDTO dto) { |
|
|
|
SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class); |
|
|
|
//保存角色
|
|
|
|
insert(entity); |
|
|
|
//保存角色菜单关系
|
|
|
|
sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList()); |
|
|
|
//保存角色数据权限关系
|
|
|
|
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList()); |
|
|
|
|
|
|
|
handleEpdcUserRole(dto, entity, true); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 党群相关权限集中处理 包括工作端、数据端、吹哨权限 |
|
|
|
* |
|
|
|
@ -146,12 +161,15 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit |
|
|
|
* @author work@yujt.net.cn |
|
|
|
* @date 2020/5/13 19:42 |
|
|
|
*/ |
|
|
|
private void handleEpdcUserRole(SysRoleDTO dto, SysRoleEntity entity) { |
|
|
|
//保存角色与工作端菜单关系
|
|
|
|
appRoleMenuService.saveOrUpdate(entity.getId(), dto.getAppMenuIdList()); |
|
|
|
|
|
|
|
//更新角色与数据端菜单关系
|
|
|
|
sysAnalysisRoleMenuService.saveOrUpdate(entity.getId(), dto.getAnalysisMenuIdList()); |
|
|
|
private void handleEpdcUserRole(SysRoleDTO dto, SysRoleEntity entity, boolean v2) { |
|
|
|
if (v2) { |
|
|
|
// 同时保存数据端与工作端权限
|
|
|
|
appRoleMenuService.saveOrUpdate(entity.getId(), Stream.concat(dto.getAppMenuIdList().stream(), dto.getAnalysisMenuIdList().stream()).collect(Collectors.toList())); |
|
|
|
} else { |
|
|
|
// 分别保存数据端与工作端权限
|
|
|
|
appRoleMenuService.saveOrUpdate(entity.getId(), dto.getAppMenuIdList()); |
|
|
|
sysAnalysisRoleMenuService.saveOrUpdate(entity.getId(), dto.getAnalysisMenuIdList()); |
|
|
|
} |
|
|
|
|
|
|
|
//保存角色与项目处理类型关系
|
|
|
|
List<String> categoryIdList = dto.getCategoryIdList(); |
|
|
|
@ -219,8 +237,24 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleDao, SysRoleEntit |
|
|
|
//更新角色数据权限关系
|
|
|
|
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList()); |
|
|
|
|
|
|
|
handleEpdcUserRole(dto, entity); |
|
|
|
handleEpdcUserRole(dto, entity, false); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void updateV2(SysRoleDTO dto) { |
|
|
|
SysRoleEntity entity = ConvertUtils.sourceToTarget(dto, SysRoleEntity.class); |
|
|
|
|
|
|
|
//更新角色
|
|
|
|
updateById(entity); |
|
|
|
|
|
|
|
//更新角色菜单关系
|
|
|
|
sysRoleMenuService.saveOrUpdate(entity.getId(), dto.getMenuIdList()); |
|
|
|
|
|
|
|
//更新角色数据权限关系
|
|
|
|
sysRoleDataScopeService.saveOrUpdate(entity.getId(), dto.getDeptIdList()); |
|
|
|
|
|
|
|
handleEpdcUserRole(dto, entity, true); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
|