优化点-问题知识库列表查询增加数据(评论数量,附件名称数组、问题分类名称数组。)。

This commit is contained in:
wangzhijiang
2022-09-28 14:09:39 +08:00
parent fd7143732d
commit 9df624951f
2 changed files with 50 additions and 3 deletions
@@ -182,4 +182,16 @@ public class ProblemKnowledgeBaseEO implements Serializable {
/**模糊搜索全部输入字段条件*/
@TableField(exist = false)
private String searchStr;
/**评论总数量*/
@TableField(exist = false)
private long commentCount;
/**问题分类展示名称数组*/
@TableField(exist = false)
private List<String> problemTypeNameList;
/**附件展示名称数组*/
@TableField(exist = false)
private List<String> accessoryFileNameList;
}
@@ -544,8 +544,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
StringBuffer problemTypeSb = new StringBuffer();
StringBuffer accessoryFileSb = new StringBuffer();
for (ProblemKnowledgeBaseEO data : datas) {
problemTypeSb.append(data.getProblemType() + ",");
accessoryFileSb.append(data.getAccessoryFile() + ",");
}
List<String> probleKnowledgeBaseIdList = datas.stream().map(ProblemKnowledgeBaseEO::getId).distinct().collect(Collectors.toList());
@@ -570,6 +572,14 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
List<ProblemKnowledgeBaseUserEO> permissionUserEOList = this.problemKnowledgeBaseUserEOService.list(permissionUserQueryWrapper);
this.problemKnowledgeBaseUserEOService.disposeData(permissionUserEOList,cut);
//查询出数据的所有的评论数量
QueryWrapper<ProblemKnowledgeBaseCommentEO> commentQueryWrapper = new QueryWrapper<>();
commentQueryWrapper.lambda().in(ProblemKnowledgeBaseCommentEO::getProblemKnowledgeBaseId,probleKnowledgeBaseIdList);
List<ProblemKnowledgeBaseCommentEO> commentEOList = this.problemKnowledgeBaseCommentEOService.list(commentQueryWrapper);
//根据文件的ids查询文件信息
List<OSSFile> accessoryFileList = this.iOSSFileService.getFileInfos(accessoryFileSb.toString());
List<ProblemKnowledgeBaseClassifyEO> problemKnowledgeBaseClassifyEOList = new ArrayList<>();
if(StringUtils.isNotEmpty(problemTypeSb.toString())){
List<String> problemTypeList = Arrays.asList(problemTypeSb.toString().substring(0, problemTypeSb.toString().length() - 1).split(",")).stream().distinct().collect(Collectors.toList());
@@ -653,10 +663,19 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
data.setPermissionUserList(permissionUserEOS);
}
long commentCount = commentEOList.stream().filter(commentEO -> {
boolean flag = false;
if (StringUtils.equals(data.getId(), commentEO.getProblemKnowledgeBaseId())) {
flag = true;
}
return flag;
}).count();
data.setCommentCount(commentCount);
String problemType = data.getProblemType();
if(StringUtils.isNotEmpty(problemType)){
String[] problemTypeArr = problemType.split(",");
String problemTypeName = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> {
List<String> problemTypeNameList = finalProblemKnowledgeBaseClassifyEOList.stream().filter(problemKnowledgeBaseClassifyEO -> {
boolean flag = false;
for (String type : problemTypeArr) {
if (StringUtils.equals(type, problemKnowledgeBaseClassifyEO.getId())) {
@@ -664,9 +683,10 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
}
}
return flag;
}).map(ProblemKnowledgeBaseClassifyEO::getProblemLabel).collect(Collectors.joining(","));
}).map(ProblemKnowledgeBaseClassifyEO::getProblemLabel).collect(Collectors.toList());
data.setProblemTypeName(problemTypeName);
data.setProblemTypeName(problemTypeNameList.stream().collect(Collectors.joining(",")));
data.setProblemTypeNameList(problemTypeNameList);
}
String targetMarket = data.getTargetMarket();
@@ -697,6 +717,21 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
data.setTargetMarket_dicText(targetMarket_dicText);
}
String accessoryFile = data.getAccessoryFile();
if(StringUtils.isNotEmpty(accessoryFile)){
String[] accessoryFileArr = accessoryFile.split(",");
List<String> accessoryFiles = accessoryFileList.stream().filter(file -> {
boolean flag = false;
for (String accessory : accessoryFileArr) {
if (StringUtils.equals(file.getId(), accessory)) {
flag = true;
break;
}
}
return flag;
}).map(OSSFile::getFileName).collect(Collectors.toList());
data.setAccessoryFileNameList(accessoryFiles);
}
});
}
}