文档库--文档库编辑文件后es同步变更

This commit is contained in:
zhn
2022-04-01 10:58:28 +08:00
parent 62ffdfe40c
commit 7f94132ce1
@@ -1828,7 +1828,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//删除文件
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll((String) map.get("id"));
List<String> connectIdList = new ArrayList<>();
List<String> connectIdList = new ArrayList<>();//已删除的文件关联id
for (OnlCgformField onlCgformField : fieldFileList) {
String connectId = (String) mapList.get(0).get(onlCgformField.getDbFieldName());
//如果文件没有修改则不用删除
@@ -1836,7 +1836,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
connectIdList.add(connectId);
}
}
//查询已删除的文件id(用于es删除)
List<String> fileIdListDelete = new ArrayList<>();
if(connectIdList.size() != 0){
List<OSSFile> fileInfosByConnectId = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectIdList, ","));
fileIdListDelete = fileInfosByConnectId.stream().map(OSSFile::getId).collect(Collectors.toList());
}
//删除文件
iOSSFileService.deleteByConnectIdList(connectIdList);
//删除文档库数据
@@ -1870,6 +1875,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (Map<String, Object> objectMap : mapListTempEn) {
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), SearchEnum.FULL_TEXT_SEARCH_EN.getValue(), (String) objectMap.get("id"));
}
//处理编辑时已删除的文件(在es中同步删除文件单独生成的一条数据)
if(fileIdListDelete.size() != 0){
for (String fileId : fileIdListDelete) {
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH_CN.getValue(),
SearchEnum.FULL_TEXT_SEARCH_CN.getValue(),
(String) map.get("id")+fileId);
jeroElasticsearchTemplate.delete(SearchEnum.FULL_TEXT_SEARCH_EN.getValue(),
SearchEnum.FULL_TEXT_SEARCH_EN.getValue(),
(String) map.get("id")+fileId);
}
}
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject);
//添加全文
jeroElasticsearchTemplate.saveBatch(SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), arrayCn);