|
@@ -42,7 +42,9 @@ import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -79,26 +81,43 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
*/
|
|
|
@Transactional
|
|
|
public boolean CRUDOperation(ServiceDataAuthVO serviceDataAuthVO) {
|
|
|
- //1.入参校验
|
|
|
- inputParamCheck(serviceDataAuthVO);
|
|
|
- //2.执行操作
|
|
|
- if (CRUDEnum.ADD.getKey() == serviceDataAuthVO.getType()) {
|
|
|
- try {
|
|
|
+ try {
|
|
|
+ //1.入参校验
|
|
|
+ inputParamCheck(serviceDataAuthVO);
|
|
|
+ //2.执行操作
|
|
|
+ if (CRUDEnum.ADD.getKey() == serviceDataAuthVO.getType()) { //添加
|
|
|
return addDataAuth(serviceDataAuthVO);
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- Asserts.fail(e.toString());
|
|
|
+ } else if (CRUDEnum.UPDATE.getKey() == serviceDataAuthVO.getType()) { //修改
|
|
|
+ return updateDataAuth(serviceDataAuthVO);
|
|
|
+ } else if (CRUDEnum.DELETE.getKey() == serviceDataAuthVO.getType()) { //删除
|
|
|
+ return deleteDataAuth(serviceDataAuthVO);
|
|
|
+ } else if (CRUDEnum.DISBALE.getKey() == serviceDataAuthVO.getType()) { //启用禁用
|
|
|
+ return disableDataAuth(serviceDataAuthVO);
|
|
|
+ } else {
|
|
|
+ Asserts.fail("操作码错误");
|
|
|
}
|
|
|
- } else if (CRUDEnum.UPDATE.getKey() == serviceDataAuthVO.getType()) {
|
|
|
- return updateDataAuth(serviceDataAuthVO);
|
|
|
- } else if (CRUDEnum.DELETE.getKey() == serviceDataAuthVO.getType()) {
|
|
|
- return deleteDataAuth(serviceDataAuthVO);
|
|
|
- } else {
|
|
|
- Asserts.fail("操作码错误");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ Asserts.fail(e.toString());
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Author songxl
|
|
|
+ * @Description禁用启用数据权限
|
|
|
+ * @Date 2021/7/23
|
|
|
+ * @Param [serviceDataAuthVO]
|
|
|
+ * @Return boolean
|
|
|
+ * @MethodName disableDataAuth
|
|
|
+ */
|
|
|
+ private boolean disableDataAuth(ServiceDataAuthVO serviceDataAuthVO) {
|
|
|
+ return dataAuthFacade.update(new UpdateWrapper<DataAuth>()
|
|
|
+ .set("status", serviceDataAuthVO.getDataAuthVO().getStatus())
|
|
|
+ .eq("id", serviceDataAuthVO.getDataAuthVO().getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @Author songxl
|
|
|
* @Description修改数据权限
|
|
@@ -119,25 +138,14 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
List<Long> serviceDataAuthIDS = serviceDataAuthFacade.list(new QueryWrapper<ServiceDataAuth>()
|
|
|
.eq("data_auth_id", serviceDataAuthVO.getDataAuthVO().getId())
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(ServiceDataAuth::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
+ //3.通过serviceDataAuthIDS 删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail 对应关系
|
|
|
if (ListUtil.isNotEmpty(serviceDataAuthIDS)) {
|
|
|
- //3.获取该权限关联的角色id
|
|
|
- // List<Long> roleIDS = roleServiceDataAuthFacade.list(new QueryWrapper<RoleServiceDataAuth>()
|
|
|
- // .in("service_data_auth_id", serviceDataAuthIDS)
|
|
|
- // .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(RoleServiceDataAuth::getRoleId).collect(Collectors.toList());
|
|
|
-
|
|
|
- //4.通过serviceDataAuthIDS 删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail 对应关系
|
|
|
- if (deleteServiceDataAuth(serviceDataAuthIDS)) {
|
|
|
- //5.插入新建数据权限与系统的关系
|
|
|
- saveServiceDataAuth(serviceDataAuthVO, serviceDataAuthVO.getDataAuthVO().getId());
|
|
|
- } else {
|
|
|
+ if (!deleteServiceDataAuth(serviceDataAuthIDS)) {
|
|
|
Asserts.fail("数据权限与系统关系删除失败");
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ //4.插入新建数据权限与系统的关系
|
|
|
+ saveServiceDataAuth(serviceDataAuthVO, serviceDataAuthVO.getDataAuthVO().getId());
|
|
|
} else {
|
|
|
Asserts.fail("数据权限修改失败");
|
|
|
}
|
|
@@ -180,8 +188,27 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
* @MethodName deleteDataAuth
|
|
|
*/
|
|
|
private boolean deleteDataAuth(ServiceDataAuthVO serviceDataAuthVO) {
|
|
|
-
|
|
|
- return false;
|
|
|
+ //1.删除数据权限
|
|
|
+ boolean dataAuthdelete = dataAuthFacade.remove(new UpdateWrapper<DataAuth>()
|
|
|
+ .eq("id", serviceDataAuthVO.getDataAuthVO().getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey()));
|
|
|
+ if (dataAuthdelete) {
|
|
|
+ //2.获取该权限 系统与数据权限信息关联表(sys_service_data_auth)的关联id
|
|
|
+ List<Long> serviceDataAuthIDS = serviceDataAuthFacade.list(new QueryWrapper<ServiceDataAuth>()
|
|
|
+ .eq("data_auth_id", serviceDataAuthVO.getDataAuthVO().getId())
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())).stream().map(ServiceDataAuth::getId).collect(Collectors.toList());
|
|
|
+ //3.通过serviceDataAuthIDS 删除sys_role_service_data_auth和sys_service_data_auth和sys_data_auth_detail 对应关系
|
|
|
+ if (ListUtil.isNotEmpty(serviceDataAuthIDS)) {
|
|
|
+ if (deleteServiceDataAuth(serviceDataAuthIDS)) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ Asserts.fail("数据权限与系统关系删除失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Asserts.fail("数据权限删除失败");
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -314,6 +341,19 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
+ if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
|
|
|
+ Asserts.fail("数据权限ID为空");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
|
|
|
+ Asserts.fail("数据权限ID为空");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
|
|
|
+ Asserts.fail("数据权限ID为空");
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
|
|
@@ -331,6 +371,9 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
* @MethodName getDataAuthById
|
|
|
*/
|
|
|
public DataAuthDTO getDataAuthById(ServiceDataAuthVO serviceDataAuthVO) {
|
|
|
+ if (serviceDataAuthVO.getDataAuthVO().getId() == null) {
|
|
|
+ Asserts.fail("数据权限ID为空");
|
|
|
+ }
|
|
|
DataAuthDTO dataAuthDTO = new DataAuthDTO();
|
|
|
List<ServiceRoleDataAuthDetailDTO> serviceRoleDataAuthDetailDTOS = this.baseMapper.getDataAuthById(serviceDataAuthVO);
|
|
|
if (ListUtil.isNotEmpty(serviceRoleDataAuthDetailDTOS)) {
|
|
@@ -347,11 +390,12 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
sysServiceDTO.setId(id);
|
|
|
sysServiceDTO.setName(ServiceEnum.getName(id.intValue()));
|
|
|
//4.1添加数据权限详情列表
|
|
|
- List<ServiceRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = serviceRoleDataAuthDetailDTOS.stream()
|
|
|
- .filter(serviceRoleDataAuthDetailDTO -> serviceRoleDataAuthDetailDTO.getServiceId() == id).collect(Collectors.toList());
|
|
|
+// List<ServiceRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = serviceRoleDataAuthDetailDTOS.stream()
|
|
|
+// .filter(serviceRoleDataAuthDetailDTO -> serviceRoleDataAuthDetailDTO.getServiceId() == id).collect(Collectors.toList());
|
|
|
+ List<ServiceRoleDataAuthDetailDTO> oneServiceRoleDataAuthDetailDTOS = this.baseMapper.getOneServiceRoleDataAuthDetail(id,serviceDataAuthVO.getDataAuthVO().getId());
|
|
|
|
|
|
List<DataAuthDetailDTO> dataAuthDetailDTOS = new ArrayList<>();
|
|
|
- //4.2.1是否获取当前组织-科室信息
|
|
|
+ //4.2.1是否获取当前组织-科室信息 dataAuthDetailDTOS去重
|
|
|
oneServiceRoleDataAuthDetailDTOS.stream().forEach(serviceRoleDataAuthDetailDTO -> {
|
|
|
DataAuthDetailDTO dataAuthDetailDTO = new DataAuthDetailDTO();
|
|
|
dataAuthDetailDTO.setId(serviceRoleDataAuthDetailDTO.getDetail());
|
|
@@ -368,13 +412,18 @@ public class DataAuthHandleFacade extends DataAuthServiceImpl {
|
|
|
});
|
|
|
sysServiceDTO.setDataAuthDetailDTOS(dataAuthDetailDTOS);
|
|
|
|
|
|
-
|
|
|
//5.添加角色列表
|
|
|
List<RoleDTO> roleDTOS = new ArrayList<>();
|
|
|
- RoleDTO role = new RoleDTO();
|
|
|
- role.setId(serviceRoleDataAuthDetailDTOS.get(0).getRoleId());
|
|
|
- role.setName(serviceRoleDataAuthDetailDTOS.get(0).getRoleName());
|
|
|
- roleDTOS.add(role);
|
|
|
+ Map<Long,String> roleMap = new HashMap<>();
|
|
|
+ serviceRoleDataAuthDetailDTOS.stream().forEach(serviceRoleDataAuthDetailDTO -> {
|
|
|
+ roleMap.put(serviceRoleDataAuthDetailDTO.getRoleId(),serviceRoleDataAuthDetailDTO.getRoleName());
|
|
|
+ });
|
|
|
+ for (Long roleID:roleMap.keySet()){
|
|
|
+ RoleDTO role = new RoleDTO();
|
|
|
+ role.setId(roleID);
|
|
|
+ role.setName(roleMap.get(roleID));
|
|
|
+ roleDTOS.add(role);
|
|
|
+ }
|
|
|
sysServiceDTO.setRoles(roleDTOS);
|
|
|
sysServiceDTOS.add(sysServiceDTO);
|
|
|
});
|