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.sys.dao.DicTypeEODao;
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.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
@@ -40,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -53,6 +57,9 @@ import java.util.stream.Stream;
public class SearchCenterServiceImpl implements SearchCenterService {
private final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(SearchCenterServiceImpl.class);
@Resource
private ISarMenuStandardService sarMenuStandardService;
@Autowired
private TransportClient transportClient;
@@ -232,6 +239,18 @@ public class SearchCenterServiceImpl implements SearchCenterService {
sortField2 = "standYear";
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())
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize())
@@ -347,6 +366,15 @@ public class SearchCenterServiceImpl implements SearchCenterService {
}
boolQueryBuilder.must(boolQueryShould);
}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())) {
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);
TreeData res=new TreeData();
List<TreeData> resList = new ArrayList<>();
QueryWrapper<ZlTree> wrapper=new QueryWrapper<>();
wrapper.lambda().in(ZlTree::getId, recourceIdList);
wrapper.orderByAsc("length(sort),sort");
@@ -72,13 +72,17 @@ public class ZlTreeServiceImpl extends ServiceImpl<ZlTreeDao, ZlTree> implements
BeanUtils.copyProperties(zlTree,zlTreeData);
treeData.add(zlTreeData);
}else {
TreeData res=new TreeData();
BeanUtils.copyProperties(zlTree,res);
resList.add(res);
}
}
//递归生成树
digui(res,treeData);
List<TreeData> treeData1=new ArrayList<>();
treeData1.add(res);
//递归生成树
for (TreeData data : resList) {
digui(data,treeData);
treeData1.add(data);
}
return treeData1;
}