|
@@ -13,8 +13,9 @@ import com.dragoninfo.dcuc.auth.auth.service.IDataAuthService;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.BusResultVO;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogItemVO;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogVO;
|
|
|
+import com.dragoninfo.dcuc.user.user.entity.UserInfo;
|
|
|
+import com.dragoninfo.dcuc.user.user.facade.IUserFacade;
|
|
|
import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
|
|
|
-import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
|
|
|
import com.dragonsoft.duceap.base.entity.search.SearchDTO;
|
|
|
import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
|
|
|
import com.dragonsoft.duceap.base.enums.BooleanEnum;
|
|
@@ -56,6 +57,9 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
private IBusService busService;
|
|
|
@Autowired
|
|
|
private IDataAuthBusiness dataAuthBusiness;
|
|
|
+ @Autowired
|
|
|
+ private IUserFacade userFacade;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 字段分类字符串
|
|
@@ -297,36 +301,41 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseStatus dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
|
|
|
+ public ResponseDTO dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
|
|
|
initDataMap();
|
|
|
+ UserInfo userInfo = userFacade.detailBySfzh(dataItemsCheckDto.getIdcard());
|
|
|
+ if (userInfo == null){
|
|
|
+ return ResponseDTO.fail("用户不存在", (Object) null);
|
|
|
+ }
|
|
|
//获取用户所有的数据分级分类
|
|
|
- List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(dataItemsCheckDto.getIdcard(), null);
|
|
|
- Map<String, List<String>> listMap = new HashMap<>();
|
|
|
- LinkedHashMap<String, List<String>> dataListMap = new LinkedHashMap<>();
|
|
|
- List<String> dataStrList = Arrays.asList(dataStrArr);
|
|
|
-
|
|
|
- for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
|
|
|
- for (SubDataDTO subDataDTO : dataClassifyDTO.getTickedDatas()) {
|
|
|
- //获取每个类型对应的code数组
|
|
|
- listMap = buildDataCodeMap(subDataDTO, listMap);
|
|
|
- //数据资源分类需要构建父级的code数组
|
|
|
- if (dataStrList.contains(subDataDTO.getDataType())) {
|
|
|
- dataListMap = buildDataParentCodeMap(subDataDTO, dataListMap);
|
|
|
+ List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByUser(userInfo);
|
|
|
+ if (CollectionUtils.isNotEmpty(dataClassifyDTOList)){
|
|
|
+ Map<String, List<String>> listMap = new HashMap<>();
|
|
|
+ LinkedHashMap<String, List<String>> dataListMap = new LinkedHashMap<>();
|
|
|
+ List<String> dataStrList = Arrays.asList(dataStrArr);
|
|
|
+
|
|
|
+ for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
|
|
|
+ for (SubDataDTO subDataDTO : dataClassifyDTO.getTickedDatas()) {
|
|
|
+ //获取每个类型对应的code数组
|
|
|
+ listMap = buildDataCodeMap(subDataDTO, listMap);
|
|
|
+ //数据资源分类需要构建父级的code数组
|
|
|
+ if (dataStrList.contains(subDataDTO.getDataType())) {
|
|
|
+ dataListMap = buildDataParentCodeMap(subDataDTO, dataListMap);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- //先获取每个数据标识符下的数据项
|
|
|
- for (DataItemsDto dataItemsDto : dataItemsCheckDto.getDataItemsDtoList()) {
|
|
|
- try {
|
|
|
- //数据项的分类代码、安全等级
|
|
|
- getDataItemClassify(dataItemsDto, listMap, dataListMap);
|
|
|
- } catch (Exception e) {
|
|
|
- return ResponseStatus.fail(e.getMessage());
|
|
|
+ //先获取每个数据标识符下的数据项
|
|
|
+ for (DataItemsDto dataItemsDto : dataItemsCheckDto.getDataItemsDtoList()) {
|
|
|
+ try {
|
|
|
+ //数据项的分类代码、安全等级
|
|
|
+ getDataItemClassify(dataItemsDto, listMap, dataListMap, dataItemsCheckDto.getCurrentIdcard());
|
|
|
+ } catch (Exception e) {
|
|
|
+ return ResponseDTO.fail(e.getMessage(), (Object) null);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return ResponseDTO.newInstance(dataItemsCheckDto.getDataItemsDtoList());
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -362,11 +371,16 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
}
|
|
|
String query = JSON.toJSONString(queryDTO);
|
|
|
log.info("dataDetailList >> query:{}", query);
|
|
|
- BusResultVO resultVO = busService.resourceDataItemsQuery(JSON.parseObject(query, new TypeReference<Map<String,Object>>(){{}}));
|
|
|
+ BusResultVO resultVO = busService.resourceDataItemsQuery(JSON.parseObject(query, new TypeReference<Map<String,Object>>(){{}}), "");
|
|
|
+
|
|
|
+ String idcard = ContextUtils.getUserInfo() == null ? "" : ContextUtils.getUserInfo().getIdcard();
|
|
|
+
|
|
|
+
|
|
|
Condition idcardCondition = searchable.getSearchFilter("idcard", SearchOperator.eq);
|
|
|
if (idcardCondition != null && idcardCondition.getValue() != null){
|
|
|
- String idcard = String.valueOf(resourceNameCondition.getValue());
|
|
|
- List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(idcard, null);
|
|
|
+ idcard = String.valueOf(idcardCondition.getValue());
|
|
|
+ }
|
|
|
+ List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(idcard, null);
|
|
|
Map<String, List<String>> listMap = new HashMap<>();
|
|
|
|
|
|
for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
|
|
@@ -390,7 +404,6 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
}
|
|
|
resourceCatalogVO.setDataItems(list);
|
|
|
}
|
|
|
- }
|
|
|
return resultVO;
|
|
|
}
|
|
|
|
|
@@ -453,13 +466,14 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
* 获取数据项的分类代码、安全等级
|
|
|
*
|
|
|
* @param dataItemsDto
|
|
|
+ * @param currentIdcard
|
|
|
* @return
|
|
|
*/
|
|
|
- private void getDataItemClassify(DataItemsDto dataItemsDto, Map<String, List<String>> listMap, LinkedHashMap<String, List<String>> dataListMap) {
|
|
|
+ private void getDataItemClassify(DataItemsDto dataItemsDto, Map<String, List<String>> listMap, LinkedHashMap<String, List<String>> dataListMap, String currentIdcard) {
|
|
|
|
|
|
//构建参数
|
|
|
Map<String, Object> paramMap = buildSearcher(dataItemsDto.getResourceCode());
|
|
|
- BusResultVO busResultVO = busService.resourceDataItemsQuery(paramMap);
|
|
|
+ BusResultVO busResultVO = busService.resourceDataItemsQuery(paramMap, currentIdcard);
|
|
|
List<ResourceCatalogVO> resourceCatalogVOList = busResultVO.getResultData().getDataList();
|
|
|
if (CollectionUtils.isNotEmpty(resourceCatalogVOList)){
|
|
|
//数据资源标识符只可能对应一条数据
|