feat: 搜索中心添加标准体系搜索,目录树添加标准化动态

This commit is contained in:
wxyclub
2023-09-14 09:03:17 +08:00
parent 6dbc57394d
commit cb800f38fe
2 changed files with 36 additions and 4 deletions
@@ -6,9 +6,12 @@ import com.adc.da.search.util.DateUtil;
import com.adc.da.search.util.InitStandAttrSearchUtil; import com.adc.da.search.util.InitStandAttrSearchUtil;
import com.adc.da.sys.dao.DicTypeEODao; import com.adc.da.sys.dao.DicTypeEODao;
import com.adc.da.sys.entity.DicTypeEO; import com.adc.da.sys.entity.DicTypeEO;
import com.adc.da.sys.sarMenuStandard.entity.SarMenuStandard;
import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -40,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@@ -53,6 +57,9 @@ import java.util.stream.Stream;
public class SearchCenterServiceImpl implements SearchCenterService { public class SearchCenterServiceImpl implements SearchCenterService {
private final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(SearchCenterServiceImpl.class); private final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(SearchCenterServiceImpl.class);
@Resource
private ISarMenuStandardService sarMenuStandardService;
@Autowired @Autowired
private TransportClient transportClient; private TransportClient transportClient;
@@ -232,6 +239,18 @@ public class SearchCenterServiceImpl implements SearchCenterService {
sortField2 = "standYear"; sortField2 = "standYear";
sortField3 = "standSort.keyword"; sortField3 = "standSort.keyword";
} }
List<String> menuNameList = new ArrayList<>();
// 国内海外查询标准体系字段由id变为文字
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
ArrayList<String> menuIdList = new ArrayList<>();
Collections.addAll(menuIdList,searchInfoEO.getStandSystem().split(","));
LambdaQueryWrapper<SarMenuStandard> wrapper = new LambdaQueryWrapper<>();
wrapper.in(SarMenuStandard::getId,menuIdList);
wrapper.select(SarMenuStandard::getMenuName);
List<SarMenuStandard> sarMenuStandardList = sarMenuStandardService.list(wrapper);
menuNameList = sarMenuStandardList.stream().map(SarMenuStandard::getMenuName).collect(Collectors.toList());
}
searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
@@ -347,6 +366,15 @@ public class SearchCenterServiceImpl implements SearchCenterService {
} }
boolQueryBuilder.must(boolQueryShould); boolQueryBuilder.must(boolQueryShould);
}else { }else {
if (!menuNameList.isEmpty()) {
menuNameList.forEach(each -> {
if ("stand".equals(searchInfoEO.getSelectIndex())) {
boolQueryBuilder.must(QueryBuilders.matchQuery("standSystem","*"+each+"*"));
}else if ("bussstand".equals(searchInfoEO.getSelectIndex())) {
boolQueryBuilder.must(QueryBuilders.matchQuery("TXLBBUSS",each));
}
});
}
if ("stand".equals(searchInfoEO.getSelectIndex()) && StringUtils.isNotBlank(searchInfoEO.getStandType())) { if ("stand".equals(searchInfoEO.getSelectIndex()) && StringUtils.isNotBlank(searchInfoEO.getStandType())) {
boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*"));
} }
@@ -59,7 +59,7 @@ public class ZlTreeServiceImpl extends ServiceImpl<ZlTreeDao, ZlTree> implements
// 查询当前登录人的权限菜单 // 查询当前登录人的权限菜单
List<String> recourceIdList = tsUserService.getResourceUserId(loginUserId); List<String> recourceIdList = tsUserService.getResourceUserId(loginUserId);
TreeData res=new TreeData(); List<TreeData> resList = new ArrayList<>();
QueryWrapper<ZlTree> wrapper=new QueryWrapper<>(); QueryWrapper<ZlTree> wrapper=new QueryWrapper<>();
wrapper.lambda().in(ZlTree::getId, recourceIdList); wrapper.lambda().in(ZlTree::getId, recourceIdList);
wrapper.orderByAsc("length(sort),sort"); wrapper.orderByAsc("length(sort),sort");
@@ -72,13 +72,17 @@ public class ZlTreeServiceImpl extends ServiceImpl<ZlTreeDao, ZlTree> implements
BeanUtils.copyProperties(zlTree,zlTreeData); BeanUtils.copyProperties(zlTree,zlTreeData);
treeData.add(zlTreeData); treeData.add(zlTreeData);
}else { }else {
TreeData res=new TreeData();
BeanUtils.copyProperties(zlTree,res); BeanUtils.copyProperties(zlTree,res);
resList.add(res);
} }
} }
//递归生成树
digui(res,treeData);
List<TreeData> treeData1=new ArrayList<>(); List<TreeData> treeData1=new ArrayList<>();
treeData1.add(res); //递归生成树
for (TreeData data : resList) {
digui(data,treeData);
treeData1.add(data);
}
return treeData1; return treeData1;
} }