|
@@ -1,5 +1,6 @@
|
|
|
package com.dragoninfo.dcuc.auth.auth.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
import com.dragoninfo.dcuc.auth.audit.enums.AuthResultEnum;
|
|
@@ -14,6 +15,7 @@ import com.dragoninfo.dcuc.auth.auth.entity.DataAuth;
|
|
|
import com.dragoninfo.dcuc.auth.auth.enumresources.YesNotEnum;
|
|
|
import com.dragoninfo.dcuc.auth.auth.service.IBusService;
|
|
|
import com.dragoninfo.dcuc.auth.auth.service.IDataAuthService;
|
|
|
+import com.dragoninfo.dcuc.auth.auth.vo.BusDataResultVO;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.BusResultVO;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogItemVO;
|
|
|
import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogVO;
|
|
@@ -29,6 +31,7 @@ import com.dragonsoft.duceap.base.utils.UserContextUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.MapUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
|
|
|
import com.dragonsoft.duceap.commons.util.ip.IpUtils;
|
|
|
+import com.dragonsoft.duceap.commons.util.json.JsonUtils;
|
|
|
import com.dragonsoft.duceap.core.context.ContextUtils;
|
|
|
import com.dragonsoft.duceap.core.search.Searchable;
|
|
|
import com.dragonsoft.duceap.core.search.enums.SearchOperator;
|
|
@@ -240,12 +243,12 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
}
|
|
|
|
|
|
private void addDataAuthList(Date date, String subId, String subType, String authType, String userId, List<SubDataDTO> addList) {
|
|
|
- if(CollectionUtils.isEmpty(addList)) {
|
|
|
- return ;
|
|
|
+ if (CollectionUtils.isEmpty(addList)) {
|
|
|
+ return;
|
|
|
}
|
|
|
HttpServletRequest request = RequestUtils.getRequest();
|
|
|
String userToken = request.getHeader(Constants.USER_TOKEN);
|
|
|
- String appToken = request.getHeader(Constants.APP_TOKEN);
|
|
|
+ String appToken = request.getHeader(Constants.APP_TOKEN);
|
|
|
try {
|
|
|
for (SubDataDTO dto : addList) {
|
|
|
DataAuth dataAuth = new DataAuth();
|
|
@@ -270,12 +273,12 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
}
|
|
|
|
|
|
private void delDataAuthList(Date date, String userId, List<DataAuth> delList) {
|
|
|
- if(CollectionUtils.isEmpty(delList)) {
|
|
|
- return ;
|
|
|
+ if (CollectionUtils.isEmpty(delList)) {
|
|
|
+ return;
|
|
|
}
|
|
|
HttpServletRequest request = RequestUtils.getRequest();
|
|
|
String userToken = request.getHeader(Constants.USER_TOKEN);
|
|
|
- String appToken = request.getHeader(Constants.APP_TOKEN);
|
|
|
+ String appToken = request.getHeader(Constants.APP_TOKEN);
|
|
|
try {
|
|
|
for (DataAuth dataAuth : delList) {
|
|
|
dataAuth.setDeleteUser(userId);
|
|
@@ -283,10 +286,10 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
dataAuth.setDeleted(BooleanEnum.TRUE.getValue());
|
|
|
dataAuthBPO.update(dataAuth);
|
|
|
}
|
|
|
- logInfoFillService.sendDataDelAuthLog(AuthResultEnum.SUC,delList, IpUtils.getRealIpAdrress(request), appToken, userToken);
|
|
|
+ logInfoFillService.sendDataDelAuthLog(AuthResultEnum.SUC, delList, IpUtils.getRealIpAdrress(request), appToken, userToken);
|
|
|
} catch (Exception e) {
|
|
|
log.error("数据授权删除失败", e);
|
|
|
- logInfoFillService.sendDataDelAuthLog(AuthResultEnum.FAIL,delList, IpUtils.getRealIpAdrress(request), appToken, userToken);
|
|
|
+ logInfoFillService.sendDataDelAuthLog(AuthResultEnum.FAIL, delList, IpUtils.getRealIpAdrress(request), appToken, userToken);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -449,6 +452,82 @@ public class DataAuthServiceImpl implements IDataAuthService {
|
|
|
return resultVO;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public DataItemsDto userOrgDataAuth(String idcard, String orgCode) {
|
|
|
+ AuthUserInfo authUserInfo = new AuthUserInfo();
|
|
|
+ authUserInfo.setIdcard(idcard);
|
|
|
+ authUserInfo.setOrgCode(orgCode);
|
|
|
+ authUserInfo.setPoliceBusiness("");
|
|
|
+ List<DataClassifyDTO> dataClassifyDTOS = dataAuthBusiness.userDataAuthInfoByUser(authUserInfo);
|
|
|
+
|
|
|
+ Set<String> tableSet = new HashSet<>();
|
|
|
+ Set<String> columnSet = new HashSet<>();
|
|
|
+
|
|
|
+ for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOS) {
|
|
|
+ List<SubDataDTO> tickedDatas = dataClassifyDTO.getTickedDatas();
|
|
|
+ String attrType = dataClassifyDTO.getAttrType();
|
|
|
+ for (SubDataDTO tickedData : tickedDatas) {
|
|
|
+ String dataType = tickedData.getDataType();
|
|
|
+ String dataId = tickedData.getDataId();
|
|
|
+ String condition = dataId + StrUtil.COMMA + dataType;
|
|
|
+ if ("TABLE".equalsIgnoreCase(attrType)) {
|
|
|
+ tableSet.add(condition);
|
|
|
+ } else {
|
|
|
+ columnSet.add(condition);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return getItemBuilder(tableSet, idcard);
|
|
|
+ }
|
|
|
+
|
|
|
+ private DataItemsDto getItemBuilder(Set<String> set, String idcard) {
|
|
|
+ List<ResourceTypeQueryDTO> tableResourceTypeQueryDTOList = new ArrayList<>();
|
|
|
+ for (String tableCondition : set) {
|
|
|
+ String[] split = tableCondition.split(StrUtil.COMMA);
|
|
|
+ ResourceTypeQueryDTO resourceTypeQueryDTO = new ResourceTypeQueryDTO();
|
|
|
+ resourceTypeQueryDTO.setCodeValue(split[0]);
|
|
|
+ resourceTypeQueryDTO.setTypeCode(split[1]);
|
|
|
+ tableResourceTypeQueryDTOList.add(resourceTypeQueryDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuilder tableBuilder = new StringBuilder();
|
|
|
+ StringBuilder columnBuilder = new StringBuilder();
|
|
|
+
|
|
|
+ for (ResourceTypeQueryDTO resourceTypeQueryDTO : tableResourceTypeQueryDTOList) {
|
|
|
+ BusResultVO busResultVO = dataItem(Collections.singletonList(resourceTypeQueryDTO), idcard);
|
|
|
+ BusDataResultVO resultData = busResultVO.getResultData();
|
|
|
+ List<ResourceCatalogVO> dataList = resultData.getDataList();
|
|
|
+ for (ResourceCatalogVO resourceCatalogVO : dataList) {
|
|
|
+ tableBuilder.append(resourceCatalogVO.getResourceCode()).append(StrUtil.COMMA);
|
|
|
+ List<ResourceCatalogItemVO> dataItems = resourceCatalogVO.getDataItems();
|
|
|
+ for (ResourceCatalogItemVO dataItem : dataItems) {
|
|
|
+ String dataItemCode = dataItem.getDataItemCode();
|
|
|
+ if (StrUtil.isNotBlank(dataItemCode)) {
|
|
|
+ columnBuilder.append(dataItemCode).append(StrUtil.COMMA);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DataItemsDto dataItemsDto = new DataItemsDto();
|
|
|
+ dataItemsDto.setResourceCode(tableBuilder.toString());
|
|
|
+ dataItemsDto.setDataItemCode(columnBuilder.toString());
|
|
|
+ return dataItemsDto;
|
|
|
+ }
|
|
|
+
|
|
|
+ private BusResultVO dataItem(List<ResourceTypeQueryDTO> resourceTypeQueryDTOList, String idcard) {
|
|
|
+ DataDetailConditionDTO dataDetailConditionDTO = new DataDetailConditionDTO();
|
|
|
+ dataDetailConditionDTO.setResourceTypes(resourceTypeQueryDTOList);
|
|
|
+ DataDetailQueryDTO queryDTO = new DataDetailQueryDTO();
|
|
|
+ queryDTO.setPage(1);
|
|
|
+ queryDTO.setPageSize(10);
|
|
|
+ queryDTO.setCondition(dataDetailConditionDTO);
|
|
|
+
|
|
|
+ String query = JsonUtils.toJSONString(queryDTO);
|
|
|
+ return busService.resourceDataItemsQuery(JSON.parseObject(query, new TypeReference<Map<String, Object>>() {{
|
|
|
+ }}), idcard);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 数据资源分类需要构建父级的code数组
|
|
|
*
|