搜索中心-全部索引,增加问题知识库检索加权限。与问题知识库权限一样。

This commit is contained in:
wangzhijiang
2022-08-24 15:23:56 +08:00
parent 27d8ea82d4
commit d08fd4c27f
@@ -25,6 +25,7 @@ import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseUserEO;
import com.jero.modules.problemKnowledgeBase.enums.ShowPermissionsEnum;
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseUserEOService;
import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum;
import com.jero.modules.searchcenter.vo.SearchVO;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
@@ -434,6 +435,16 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
JSONArray queryMapJsonThree = new JSONArray();
JSONArray queryMapJsonAll = new JSONArray();
//基础查询权限,展示权限为公开的,所有人都能查看,展示权限为私密的,只有配置了权限的用户可以查看。
if("base".equals("base")){
JSONArray queryMapJsonBase = new JSONArray();
this.createQueryWhere(ShowPermissionsEnum.OPEN.getValue(),"show_permissions",queryMapJsonBase,SearchEnum.FULL_TEXT_SEARCH.getValue());
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonBase);
queryMapJsonAll.add(jsonObject);
}
Map<String,Object> mapHighlight = new HashMap<>();
Map<String,Object> mapHighlight1 = new HashMap<>();
//封装首次的条件
@@ -1125,7 +1136,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
if("base".equals("base")){
JSONArray queryMapJsonBase = new JSONArray();
this.createQueryWhere(ShowPermissionsEnum.OPEN.getValue(),"show_permissions",queryMapJsonBase);
this.createQueryWhere(ShowPermissionsEnum.OPEN.getValue(),"show_permissions",queryMapJsonBase,SearchEnum.INDEX_PROBLEM_KNOWLEDGE_BASE.getValue());
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJsonBase);
queryMapJsonAll.add(jsonObject);
@@ -1169,12 +1180,12 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
//封装问题类型选择框查询条件。
if (StringUtils.isNotBlank(problem_type)) {
this.createQueryWhere(problem_type,"problem_type",queryMapJson);
this.createQueryWhere(problem_type,"problem_type",queryMapJson,SearchEnum.INDEX_PROBLEM_KNOWLEDGE_BASE.getValue());
}
//封装市场选择框查询条件。
if (StringUtils.isNotBlank(target_market)) {
this.createQueryWhere(target_market,"target_market",queryMapJson);
this.createQueryWhere(target_market,"target_market",queryMapJson,SearchEnum.INDEX_PROBLEM_KNOWLEDGE_BASE.getValue());
}
if(CollectionUtils.isNotEmpty(queryMapJson)){
@@ -1324,7 +1335,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
* @param fieldKey 查询的字段
* @param jsonArray
*/
public void createQueryWhere (String queryValue,String fieldKey,JSONArray jsonArray){
public void createQueryWhere (String queryValue,String fieldKey,JSONArray jsonArray,String indexName){
/**
* fieldKeyMap:字段keyMap,用于存 需要查询的字段 以及字段中的条件 "queryMap"
* queryMap:存放查询条件map
@@ -1368,6 +1379,27 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
}
jsonArray.add(matchMap);
//筛选出 文档库、法规月报在搜索中心 全部索引的数据。
if(StringUtils.equals(indexName,SearchEnum.FULL_TEXT_SEARCH.getValue())){
Map<String, Object> fieldKeyMapWdk = new HashMap<>();
Map<String, Object> queryMapWdk = new HashMap<>();
Map<String, Object> matchMapWdk = new HashMap<>();
queryMapWdk.put("query", ModuleTypeFlagEnum.DOCUMENT_LIBRARY.getValue());
fieldKeyMapWdk.put("module_type_flag", queryMapWdk);
matchMapWdk.put("match",fieldKeyMapWdk);
jsonArray.add(matchMapWdk);
Map<String, Object> fieldKeyMapFgyb = new HashMap<>();
Map<String, Object> queryMapFgyb = new HashMap<>();
Map<String, Object> matchMapFgyb = new HashMap<>();
queryMapFgyb.put("query", ModuleTypeFlagEnum.LAWS_MONTHLY_REPORT.getValue());
fieldKeyMapFgyb.put("module_type_flag", queryMapFgyb);
matchMapFgyb.put("match",fieldKeyMapFgyb);
jsonArray.add(matchMapFgyb);
}
}
}