Merge remote-tracking branch 'origin/master'
This commit is contained in:
+187
-51
@@ -42,8 +42,6 @@ import com.jero.modules.laws.standard.service.ILawsNewsFeedService;
|
||||
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
import com.jero.modules.tag.service.ILawsTagService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -351,96 +349,100 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
LawsHomeNormalSearchStatisticsVO obj = new LawsHomeNormalSearchStatisticsVO();
|
||||
switch (lawsHomeNormalSearchDTO.getResourceType()){
|
||||
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||
count1(queryWrapper,obj);
|
||||
List<LawsHomeNormalSearchCountVO> list1 = lawsHomeSearchMapper.getCount1(queryWrapper);
|
||||
count1(list1,obj);
|
||||
break;
|
||||
case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD:
|
||||
count2(queryWrapper,obj);
|
||||
List<LawsHomeNormalSearchCountVO> list2 = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||
count2(list2,obj);
|
||||
break;
|
||||
case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD:
|
||||
count3(queryWrapper,obj);
|
||||
List<LawsHomeNormalSearchCountVO> list3 = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||
count3(list3,obj);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
private void count3(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||
private void count3(List<LawsHomeNormalSearchCountVO> list,LawsHomeNormalSearchStatisticsVO obj) {
|
||||
// 企业标准代号
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "enterprise_standard_code", "standard_code");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, "enterprise_standard_code", "standard_code");
|
||||
if(!CollectionUtils.isEmpty(list1)){
|
||||
obj.setStandardCode(list1);
|
||||
}
|
||||
// 标准状态
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "enterprise_standard_state", "standard_state");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "enterprise_standard_state", "standard_state");
|
||||
if(!CollectionUtils.isEmpty(list2)){
|
||||
obj.setEnterpriseStandardState(list2);
|
||||
}
|
||||
// 标准等级分类
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "standard_grade_classify", "grade_classification");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list,"standard_grade_classify", "grade_classification");
|
||||
if(!CollectionUtils.isEmpty(list3)){
|
||||
obj.setGradeClassification(list3);
|
||||
}
|
||||
}
|
||||
|
||||
private void count2(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount2(queryWrapper);
|
||||
private void count2(List<LawsHomeNormalSearchCountVO> list,LawsHomeNormalSearchStatisticsVO obj) {
|
||||
// 标准类别
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "standard_type_overseas", "standard_class");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, "standard_type_overseas", "standard_class");
|
||||
if(!CollectionUtils.isEmpty(list1)){
|
||||
obj.setStandardClass(list1);
|
||||
}
|
||||
// 适用车辆类型
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "APPLICATIONS_OVERSEAS", "applicable_vehicle");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "APPLICATIONS_OVERSEAS", "applicable_vehicle");
|
||||
if(!CollectionUtils.isEmpty(list2)){
|
||||
obj.setApplicableVehicle(list2);
|
||||
}
|
||||
// 状态
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "standard_state", "standard_state");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, "standard_state", "standard_state");
|
||||
if(!CollectionUtils.isEmpty(list3)){
|
||||
obj.setStandardState(list3);
|
||||
}
|
||||
}
|
||||
|
||||
private void count1(QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,LawsHomeNormalSearchStatisticsVO obj) {
|
||||
List<LawsHomeNormalSearchCountVO> list = lawsHomeSearchMapper.getCount1(queryWrapper);
|
||||
private void count1(List<LawsHomeNormalSearchCountVO> list, LawsHomeNormalSearchStatisticsVO obj) {
|
||||
// 标准类别
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list, obj, "standard_type", "standard_class");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list1 = addLawsHomeNormalSearchStatistics(list,"standard_type", "standard_class");
|
||||
if(!CollectionUtils.isEmpty(list1)){
|
||||
obj.setStandardClass(list1);
|
||||
}
|
||||
// 动力类型
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, obj, "dynamic_type", "dynamic_type");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list2 = addLawsHomeNormalSearchStatistics(list, "POWER_TYPE_DOMESTIC", "dynamic_type");
|
||||
if(!CollectionUtils.isEmpty(list2)){
|
||||
obj.setDynamicType(list2);
|
||||
}
|
||||
// 适用车辆类型
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list, obj, "APPLICATIONS_DOMESTIC", "applicable_vehicle");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list3 = addLawsHomeNormalSearchStatistics(list,"APPLICATIONS_DOMESTIC", "applicable_vehicle");
|
||||
if(!CollectionUtils.isEmpty(list3)){
|
||||
obj.setApplicableVehicle(list3);
|
||||
}
|
||||
// 标准类型
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list4 = addLawsHomeNormalSearchStatistics(list, obj, "standard_property", "standard_property");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list4 = addLawsHomeNormalSearchStatistics(list, "standard_property", "standard_property");
|
||||
if(!CollectionUtils.isEmpty(list4)){
|
||||
obj.setStandardProperty(list4);
|
||||
}
|
||||
// 状态
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list5 = addLawsHomeNormalSearchStatistics(list, obj, "standard_state", "standard_state");
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> list5 = addLawsHomeNormalSearchStatistics(list,"standard_state", "standard_state");
|
||||
if(!CollectionUtils.isEmpty(list5)){
|
||||
obj.setStandardState(list5);
|
||||
}
|
||||
}
|
||||
|
||||
private List<LawsHomeNormalSearchStatisticsObjVO> addLawsHomeNormalSearchStatistics(List<LawsHomeNormalSearchCountVO> list, LawsHomeNormalSearchStatisticsVO obj, String dictVal, String data) {
|
||||
private List<LawsHomeNormalSearchStatisticsObjVO> addLawsHomeNormalSearchStatistics(List<LawsHomeNormalSearchCountVO> list, String dictVal, String data) {
|
||||
List<DictModel> listStandardClass = sysBaseAPI.getDictItems(dictVal);
|
||||
List<LawsHomeNormalSearchStatisticsObjVO> listDict = new ArrayList<>();
|
||||
for (DictModel dict : listStandardClass) {
|
||||
LawsHomeNormalSearchStatisticsObjVO objVO = new LawsHomeNormalSearchStatisticsObjVO();
|
||||
objVO.setItemText(dict.getText());
|
||||
objVO.setItemValue(dict.getValue());
|
||||
Optional<LawsHomeNormalSearchCountVO> op = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && Arrays.asList(o.getDict().split(",")).contains(dict.getValue()) && Objects.equals(o.getFieldName(),data)).findFirst();
|
||||
if(op.isPresent()){
|
||||
objVO.setStatisticsCount(op.get().getCount());
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
Optional<LawsHomeNormalSearchCountVO> op = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && Arrays.asList(o.getDict().split(",")).contains(dict.getValue()) && Objects.equals(o.getFieldName(),data)).findFirst();
|
||||
if(op.isPresent()){
|
||||
objVO.setStatisticsCount(op.get().getCount());
|
||||
}else{
|
||||
objVO.setStatisticsCount("0");
|
||||
}
|
||||
}else{
|
||||
objVO.setStatisticsCount("0");
|
||||
}
|
||||
@@ -479,40 +481,71 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
}
|
||||
|
||||
String selectValue = searchVO.getSelectValue();
|
||||
|
||||
//1. 需要查询的字段
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
fieldList.add("content");//权重1
|
||||
// List<String> fieldList = new ArrayList<>();
|
||||
// fieldList.add("content");//权重1
|
||||
Map<String,String> mapDict = new HashMap<>();
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())){
|
||||
mapDict.put("resource_type",homeNormalSearchDTO.getResourceType());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardClass())){
|
||||
mapDict.put("standard_class",homeNormalSearchDTO.getStandardClass());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getDynamicType())){
|
||||
mapDict.put("dynamic_type",homeNormalSearchDTO.getDynamicType());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getApplicableVehicle())){
|
||||
mapDict.put("applicable_vehicle",homeNormalSearchDTO.getApplicableVehicle());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardProperty())){
|
||||
mapDict.put("standard_property",homeNormalSearchDTO.getStandardProperty());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardState())){
|
||||
mapDict.put("standard_state",homeNormalSearchDTO.getStandardState());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardCode())){
|
||||
mapDict.put("standard_code",homeNormalSearchDTO.getStandardCode());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getEnterpriseStandardState())){
|
||||
mapDict.put("enterprise_standard_state",homeNormalSearchDTO.getEnterpriseStandardState());
|
||||
}
|
||||
if(!StringUtils.isBlank(homeNormalSearchDTO.getGradeClassification())){
|
||||
mapDict.put("grade_classification",homeNormalSearchDTO.getGradeClassification());
|
||||
}
|
||||
JSONObject jsonAll = new JSONObject();
|
||||
JSONArray queryMapJsonAll = new JSONArray();
|
||||
JSONArray queryMapJsonDict = new JSONArray();
|
||||
mapDict.forEach((k,v)->{
|
||||
Map<String, Object> map1 = new HashMap<>();
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map2.put(k,v);
|
||||
map1.put("match_phrase",map2);
|
||||
queryMapJsonDict.add(map1);
|
||||
});
|
||||
|
||||
JSONArray queryMapJson = new JSONArray();
|
||||
JSONArray queryMapJsonAll = new JSONArray();
|
||||
|
||||
Map<String,Object> mapHighlight = new HashMap<>();
|
||||
Map<String,Object> mapHighlight1 = new HashMap<>();
|
||||
//封装首次的条件
|
||||
// 封装首次的条件
|
||||
if (StringUtils.isNotBlank(selectValue)) {
|
||||
selectValue = selectValue.toLowerCase();
|
||||
for (String field : fieldList) {
|
||||
getQueryMapJson(queryMapJson, selectValue, field);
|
||||
//高亮
|
||||
if(!"flag".equals(field)){
|
||||
highlight(mapHighlight, field);
|
||||
} else {
|
||||
// query_string查询
|
||||
Map<String, Object> map25 = new HashMap<>();
|
||||
Map<String, Object> map45 = new HashMap<>();
|
||||
map25.put("query", selectValue);
|
||||
map25.put("fields", fieldList.toArray());
|
||||
map25.put("allow_leading_wildcard", false); //禁用了前置通配符
|
||||
map45.put("query_string", map25);
|
||||
queryMapJson.add(map45);
|
||||
}
|
||||
}
|
||||
getQueryMapJson(queryMapJson, selectValue, "content");
|
||||
//高亮
|
||||
highlight(mapHighlight, "content");
|
||||
mapHighlight1.put("fields",mapHighlight);
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(queryMapJson)){
|
||||
JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson);
|
||||
queryMapJsonAll.add(jsonObject);
|
||||
queryMapJsonDict.add(jsonObject);
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(queryMapJsonDict)){
|
||||
jsonAll.put("must",queryMapJsonDict);
|
||||
JSONObject all = new JSONObject();
|
||||
all.put("bool",jsonAll);
|
||||
queryMapJsonAll.add(all);
|
||||
}
|
||||
|
||||
|
||||
JSONObject sort = new JSONObject();
|
||||
Map<String,Object> issueTimeDesc = new HashMap<>();
|
||||
@@ -522,8 +555,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
issueTimeAsc.put("order","asc");
|
||||
issueTime.put("resource_type",issueTimeAsc);
|
||||
issueTime.put("standard_type",issueTimeDesc);
|
||||
// todo 排序号
|
||||
// issueTime.put("resource_type",issueTime);
|
||||
issueTime.put("create_time",issueTimeDesc);
|
||||
sort.putAll(issueTime);
|
||||
IPage page = getIPage(selectValue, queryMapJsonAll, mapHighlight1,
|
||||
@@ -659,7 +690,106 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
|
||||
@Override
|
||||
public LawsHomeNormalSearchStatisticsVO getNormalSearchAllCount(LawsHomeNormalSearchDTO homeNormalSearchDTO) {
|
||||
return null;
|
||||
LawsHomeNormalSearchStatisticsVO obj = new LawsHomeNormalSearchStatisticsVO();
|
||||
String searchContent = homeNormalSearchDTO.getSearchContent();
|
||||
if(StringUtils.isBlank(searchContent)){
|
||||
throw new JeroBootException(ResultCommon.PLEASE_SEARCH_TO_IMPORT);
|
||||
}
|
||||
|
||||
//判断索引是否存在
|
||||
boolean flagTemp;
|
||||
flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||
if (!flagTemp) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
SearchVO searchVO = new SearchVO();
|
||||
searchVO.setSelectValue(homeNormalSearchDTO.getSearchContent());
|
||||
if(StringUtils.isBlank(searchVO.getSelectValue())){
|
||||
searchVO.setSelectValue(SEARCH_FLAG);
|
||||
}
|
||||
String selectValue = searchVO.getSelectValue().toLowerCase();
|
||||
|
||||
List<String> listField = new ArrayList<>();
|
||||
listField.add("resource_type");
|
||||
listField.add("standard_class");
|
||||
listField.add("dynamic_type");
|
||||
listField.add("applicable_vehicle");
|
||||
listField.add("standard_property");
|
||||
listField.add("standard_state");
|
||||
listField.add("standard_code");
|
||||
listField.add("enterprise_standard_state");
|
||||
listField.add("grade_classification");
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String s : listField) {
|
||||
Map<String, Object> map1 = new HashMap<>();
|
||||
Map<String, Object> map2 = new HashMap<>();
|
||||
map1.put("field",s + ".keyword");
|
||||
map2.put("terms",map1);
|
||||
map.put(s + "_aggs",map2);
|
||||
}
|
||||
jsonObject.put("aggs",map);
|
||||
jsonObject.put("size",0);
|
||||
|
||||
// JSONArray queryMapJson = new JSONArray();
|
||||
// // 封装首次的条件
|
||||
// if (StringUtils.isNotBlank(selectValue)) {
|
||||
// getQueryMapJson(queryMapJson, selectValue, "content");
|
||||
// }
|
||||
// if(CollectionUtils.isNotEmpty(queryMapJson)){
|
||||
// JSONObject object = new JSONObject();
|
||||
// object.put("should",queryMapJson);
|
||||
// jsonObject.put("query",object);
|
||||
// }
|
||||
|
||||
|
||||
//2. 数据查询
|
||||
JSONObject search = jeroElasticsearchTemplate.search(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), jsonObject);
|
||||
LawsHomeNormalSearchStatisticsVO objVo = new LawsHomeNormalSearchStatisticsVO();
|
||||
switch (homeNormalSearchDTO.getResourceType()){
|
||||
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||
List<LawsHomeNormalSearchCountVO> list1 = new ArrayList<>();
|
||||
addVo(search, list1, "standard_class_aggs", "standard_class");
|
||||
addVo(search, list1, "dynamic_type_aggs", "dynamic_type");
|
||||
addVo(search, list1, "applicable_vehicle_aggs", "applicable_vehicle");
|
||||
addVo(search, list1, "standard_property_aggs", "standard_property");
|
||||
addVo(search, list1, "standard_state_aggs", "standard_state");
|
||||
count1(list1,objVo);
|
||||
break;
|
||||
case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD:
|
||||
List<LawsHomeNormalSearchCountVO> list2 = new ArrayList<>();
|
||||
addVo(search, list2, "standard_class_aggs", "standard_class");
|
||||
addVo(search, list2, "applicable_vehicle_aggs", "applicable_vehicle");
|
||||
addVo(search, list2, "standard_state_aggs", "standard_state");
|
||||
count2(list2,objVo);
|
||||
break;
|
||||
case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD:
|
||||
List<LawsHomeNormalSearchCountVO> list3 = new ArrayList<>();
|
||||
addVo(search, list3, "standard_code_aggs", "standard_code");
|
||||
addVo(search, list3, "standard_state_aggs", "standard_state");
|
||||
addVo(search, list3, "grade_classification_aggs", "grade_classification");
|
||||
count3(list3,objVo);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
return objVo;
|
||||
}
|
||||
|
||||
private void addVo(JSONObject search, List<LawsHomeNormalSearchCountVO> list, String standard_class_aggs, String standard_class) {
|
||||
List<Map<String, Object>> list1 = (List<Map<String, Object>>) ((Map) ((Map) search.get("aggregations")).get(standard_class_aggs)).get("buckets");
|
||||
if (!CollectionUtils.isEmpty(list1)) {
|
||||
for (Map<String, Object> stringObjectMap : list1) {
|
||||
LawsHomeNormalSearchCountVO objVo = new LawsHomeNormalSearchCountVO();
|
||||
if (Objects.isNull(stringObjectMap.get("key"))) {
|
||||
continue;
|
||||
}
|
||||
objVo.setFieldName(standard_class);
|
||||
objVo.setDict(stringObjectMap.get("key").toString());
|
||||
objVo.setCount(Objects.isNull(stringObjectMap.get("doc_count")) ? "0" : stringObjectMap.get("doc_count").toString());
|
||||
list.add(objVo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -669,6 +799,12 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
}
|
||||
log.info("================ES更新数据开始=================");
|
||||
try{
|
||||
//判断索引是否存在
|
||||
boolean flagTemp;
|
||||
flagTemp = jeroElasticsearchTemplate.indexExists(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||
if (!flagTemp) {
|
||||
jeroElasticsearchTemplate.createIndex(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue());
|
||||
}
|
||||
switch (resourceType){
|
||||
case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD:
|
||||
updateLawsDomesticStandardToEs(resourceType,ids,opType);
|
||||
|
||||
Reference in New Issue
Block a user