fix:79084
This commit is contained in:
+11
-2
@@ -28,10 +28,10 @@ public interface LawsHomeSearchMapper extends BaseMapper<LawsHomeNormalSearchHis
|
||||
* @date 2023/11/13 11:55
|
||||
* @param page
|
||||
* @param queryWrapper
|
||||
* @param username
|
||||
* @param userId
|
||||
* @return com.baomidou.mybatisplus.core.metadata.IPage<com.jero.modules.laws.home.vo.LawsHomeNormalSearchVO>
|
||||
*/
|
||||
IPage<LawsHomeNormalSearchVO> getPage(Page<LawsHomeNormalSearchVO> page,@Param(Constants.WRAPPER) QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,@Param("username") String username);
|
||||
IPage<LawsHomeNormalSearchVO> getPage(Page<LawsHomeNormalSearchVO> page,@Param(Constants.WRAPPER) QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,@Param("userId") String userId);
|
||||
|
||||
/**
|
||||
* 首页-一般检索(标题)查询国内标准
|
||||
@@ -69,5 +69,14 @@ public interface LawsHomeSearchMapper extends BaseMapper<LawsHomeNormalSearchHis
|
||||
*/
|
||||
List<SysDictItemCore> translateManyDict(@Param(Constants.WRAPPER) QueryWrapper<SysDict> queryWrapper);
|
||||
|
||||
/**
|
||||
* 获取当前用户的动态消息
|
||||
* @author LQT
|
||||
* @date 2023/12/11 20:37
|
||||
* @param userId
|
||||
* @return java.util.List<java.lang.Long>
|
||||
*/
|
||||
List<Long> getHomeSearchData(@Param("userId") String userId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
+10
-4
@@ -39,10 +39,12 @@
|
||||
null,null,null,null,standard_state,standard_code,grade_classification,implementation_date
|
||||
from laws_enterprise_standard where del_flag = 0
|
||||
union all
|
||||
select id,'4' as resource_type,dynamic_heading as standard_name,create_time,9 as standard_type_order,
|
||||
select l1.id,'4' as resource_type,dynamic_heading as standard_name,create_time,9 as standard_type_order,
|
||||
null AS standard_state_order,
|
||||
null,null,null,null,null,null,null,null
|
||||
from laws_news_feed where del_flag = 0 and (release_status = 1 or (release_status = 0 and create_by = #{username}))
|
||||
from laws_news_feed l1
|
||||
left join laws_push_range l2 on l1.id = l2.unique_relation_flag
|
||||
where l1.del_flag = 0 and l1.release_status = 1 and (l1.push_range_flag = 2 or (l1.push_range_flag = 1 and l2.user_id = #{userId}))
|
||||
) as all_data
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
@@ -112,6 +114,10 @@
|
||||
AND sys_dict_item.del_flag = 0
|
||||
AND ${ew.sqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getHomeSearchData" resultType="java.lang.Long">
|
||||
select l1.id
|
||||
from laws_news_feed l1
|
||||
left join laws_push_range l2 on l1.id = l2.unique_relation_flag
|
||||
where l1.del_flag = 0 and l1.release_status = 1 and (l1.push_range_flag = 1 and l2.user_id = #{userId})
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+53
-36
@@ -148,7 +148,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
|
||||
QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper = getQueryWrapperNormal(lawsHomeNormalSearchDTO);
|
||||
Page<LawsHomeNormalSearchVO> page = new Page<>(pageNo, pageSize);
|
||||
IPage<LawsHomeNormalSearchVO> pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getUsername());
|
||||
IPage<LawsHomeNormalSearchVO> pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getId());
|
||||
addContent(searchContent, pageList);
|
||||
return pageList;
|
||||
}
|
||||
@@ -801,16 +801,16 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
// 前缀匹配 缺点是前缀一定不能断开
|
||||
//情况举例:用户只记得前面那段字
|
||||
String boost = "boost";
|
||||
Map<String, Object> map21 = new HashMap<>();
|
||||
Map<String, Object> map31 = new HashMap<>();
|
||||
Map<String, Object> map41 = new HashMap<>();
|
||||
if(CONTENT.equals(field)){
|
||||
map31.put(boost,0.01);
|
||||
}
|
||||
map31.put("value", selectValue);
|
||||
map21.put(field + ".keyword", map31);
|
||||
map41.put("prefix", map21);
|
||||
queryMapJson.add(map41);
|
||||
// Map<String, Object> map21 = new HashMap<>();
|
||||
// Map<String, Object> map31 = new HashMap<>();
|
||||
// Map<String, Object> map41 = new HashMap<>();
|
||||
// if(CONTENT.equals(field)){
|
||||
// map31.put(boost,0.01);
|
||||
// }
|
||||
// map31.put("value", selectValue);
|
||||
// map21.put(field + ".keyword", map31);
|
||||
// map41.put("prefix", map21);
|
||||
// queryMapJson.add(map41);
|
||||
|
||||
// match_phrase_prefix 词组匹配查询,允许最后词组与文中的任意分词前缀匹配
|
||||
Map<String, Object> map22 = new HashMap<>();
|
||||
@@ -885,6 +885,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
jsonObject.put("aggs",map);
|
||||
jsonObject.put("size",0);
|
||||
|
||||
JSONArray queryAll = new JSONArray();
|
||||
JSONArray queryMapJson = new JSONArray();
|
||||
// 封装首次的条件
|
||||
if (StringUtils.isNotBlank(searchContent)) {
|
||||
@@ -892,11 +893,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(queryMapJson)){
|
||||
JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null,null,queryMapJson);
|
||||
jsonObject.put(QUERY,object);
|
||||
queryAll.add(object);
|
||||
}
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
JSONObject jsonObjectShould = getJsonObject(loginUser);
|
||||
jsonObject.put(QUERY,jsonObjectShould);
|
||||
JSONObject object = getJsonObject(loginUser);
|
||||
queryAll.add(object);
|
||||
JSONObject objectAll = jeroElasticsearchTemplate.buildBoolQuery(queryAll,null,null);
|
||||
jsonObject.put("query",objectAll);
|
||||
|
||||
//2. 数据查询
|
||||
JSONObject search = jeroElasticsearchTemplate.search(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), jsonObject);
|
||||
@@ -932,27 +935,41 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
}
|
||||
|
||||
private JSONObject getJsonObject(LoginUser loginUser) {
|
||||
// 查 (发布状态=1 或者 (发布状态=0 and create_by = 当前登录人))
|
||||
JSONArray queryMapShould = new JSONArray();
|
||||
// 查 (发布状态=1 & 推送范围为2全体用户的)
|
||||
JSONArray queryMapMust1 = new JSONArray();
|
||||
Map<String, Object> status1 = new HashMap<>();
|
||||
Map<String, Object> status1Val = new HashMap<>();
|
||||
status1Val.put(RELEASE_STATUS, "1");
|
||||
status1.put(MATCH, status1Val);
|
||||
queryMapShould.add(status1);
|
||||
JSONArray queryMapMust = new JSONArray();
|
||||
queryMapMust1.add(status1);
|
||||
|
||||
JSONArray queryMapShould = new JSONArray();
|
||||
Map<String, Object> status2 = new HashMap<>();
|
||||
Map<String, Object> status2Val = new HashMap<>();
|
||||
status2Val.put(RELEASE_STATUS, "0");
|
||||
status2Val.put("push_range_flag", 2);
|
||||
status2.put(MATCH, status2Val);
|
||||
queryMapMust.add(status2);
|
||||
queryMapShould.add(status2);
|
||||
|
||||
JSONArray queryMapMust = new JSONArray();
|
||||
Map<String, Object> status4 = new HashMap<>();
|
||||
Map<String, Object> status4Val = new HashMap<>();
|
||||
status4Val.put("push_range_flag",1);
|
||||
status4.put(MATCH, status4Val);
|
||||
queryMapMust.add(status4);
|
||||
|
||||
List<Long> listIds = lawsHomeSearchMapper.getHomeSearchData(loginUser.getId());
|
||||
if(CollectionUtils.isEmpty(listIds)){
|
||||
listIds.add(1L);
|
||||
}
|
||||
Map<String, Object> status3 = new HashMap<>();
|
||||
Map<String, Object> status3Val = new HashMap<>();
|
||||
status3Val.put("create_by", loginUser.getUsername());
|
||||
status3.put(MATCH, status3Val);
|
||||
status3Val.put("id", listIds);
|
||||
status3.put("terms", status3Val);
|
||||
queryMapMust.add(status3);
|
||||
JSONObject jsonObjectMust = jeroElasticsearchTemplate.buildBoolQuery(queryMapMust, null, null);
|
||||
queryMapShould.add(jsonObjectMust);
|
||||
return jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapShould);
|
||||
|
||||
return jeroElasticsearchTemplate.buildBoolQuery(queryMapMust1, null, queryMapShould);
|
||||
}
|
||||
|
||||
private void addVo(JSONObject search, List<LawsHomeNormalSearchCountVO> list, String aggs, String fieldName) {
|
||||
@@ -1062,7 +1079,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
obj.setApplicableVehicle(lawsDomesticStandard.getApplicableVehicle());
|
||||
obj.setStandardProperty(lawsDomesticStandard.getStandardProperty());
|
||||
obj.setStandardState(lawsDomesticStandard.getStandardState());
|
||||
obj.setCreateBy(lawsDomesticStandard.getCreateBy());
|
||||
obj.setPushRangeFlag(2);
|
||||
obj.setReleaseStatus("1");
|
||||
List<OSSFile> listFile = getOssFilesLawsDomesticStandard(lawsDomesticStandard);
|
||||
updateES(opType, obj, listFile, lawsDomesticStandard.getId());
|
||||
@@ -1157,7 +1174,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
obj.setStandardClass(lawsOverseasStandard.getStandardClass());
|
||||
obj.setApplicableVehicle(lawsOverseasStandard.getApplicableVehicle());
|
||||
obj.setStandardState(lawsOverseasStandard.getStandardState());
|
||||
obj.setCreateBy(lawsOverseasStandard.getCreateBy());
|
||||
obj.setPushRangeFlag(2);
|
||||
obj.setReleaseStatus("1");
|
||||
List<OSSFile> listFile = getOssFilesLawsOverseasStandard(lawsOverseasStandard);
|
||||
updateES(opType, obj, listFile, lawsOverseasStandard.getId());
|
||||
@@ -1244,7 +1261,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
obj.setStandardCode(lawsEnterpriseStandard.getStandardCode());
|
||||
obj.setEnterpriseStandardState(lawsEnterpriseStandard.getStandardState());
|
||||
obj.setGradeClassification(lawsEnterpriseStandard.getGradeClassification());
|
||||
obj.setCreateBy(lawsEnterpriseStandard.getCreateBy());
|
||||
obj.setPushRangeFlag(2);
|
||||
obj.setReleaseStatus("1");
|
||||
List<OSSFile> listFile = getOssFilesLawsEnterpriseStandard(lawsEnterpriseStandard);
|
||||
updateES(opType, obj, listFile, lawsEnterpriseStandard.getId());
|
||||
@@ -1309,7 +1326,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
obj.setStandardState("4");
|
||||
obj.setReleaseDate(lawsNewsFeed.getReleaseTime());
|
||||
obj.setCreateTime(lawsNewsFeed.getCreateTime());
|
||||
obj.setCreateBy(lawsNewsFeed.getCreateBy());
|
||||
obj.setPushRangeFlag(lawsNewsFeed.getPushRangeFlag());
|
||||
obj.setReleaseStatus(String.valueOf(lawsNewsFeed.getReleaseStatus()));
|
||||
updateESLawsNewsFeed(opType, lawsNewsFeed, obj);
|
||||
}catch (Exception e){
|
||||
@@ -1381,14 +1398,14 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
map.put(RESOURCE_TYPE, obj.getResourceType());
|
||||
map.put("standard_type_order", obj.getStandardTypeOrder());
|
||||
map.put("standard_state_order", obj.getStandardStateOrder());
|
||||
map.put(STANDARD_CLASS, obj.getStandardClass());
|
||||
map.put(DYNAMIC_TYPE, obj.getDynamicType());
|
||||
map.put(APPLICABLE_VEHICLE, obj.getApplicableVehicle());
|
||||
map.put(STANDARD_PROPERTY, obj.getStandardProperty());
|
||||
map.put(STANDARD_STATE, obj.getStandardState());
|
||||
map.put(STANDARD_CODE,obj.getStandardCode());
|
||||
map.put(ENTERPRISE_STANDARD_STATE,obj.getEnterpriseStandardState());
|
||||
map.put(GRADE_CLASSIFICATION,obj.getGradeClassification());
|
||||
map.put(STANDARD_CLASS, "," + obj.getStandardClass() + ",");
|
||||
map.put(DYNAMIC_TYPE, "," + obj.getDynamicType() + ",");
|
||||
map.put(APPLICABLE_VEHICLE, "," + obj.getApplicableVehicle() + ",");
|
||||
map.put(STANDARD_PROPERTY, "," + obj.getStandardProperty() + ",");
|
||||
map.put(STANDARD_STATE, "," + obj.getStandardState() + ",");
|
||||
map.put(STANDARD_CODE,"," + obj.getStandardCode() + ",");
|
||||
map.put(ENTERPRISE_STANDARD_STATE,"," + obj.getEnterpriseStandardState() + ",");
|
||||
map.put(GRADE_CLASSIFICATION,"," + obj.getGradeClassification() + ",");
|
||||
map.put("release_date",obj.getReleaseDate());
|
||||
// 没有时间 强行加入最早时间
|
||||
try {
|
||||
@@ -1398,8 +1415,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
|
||||
log.error("文档库添加es失败",e);
|
||||
}
|
||||
map.put("es_create_time",new Date());
|
||||
map.put("create_by",obj.getCreateBy());
|
||||
map.put(RELEASE_STATUS,obj.getReleaseStatus());
|
||||
map.put("push_range_flag",obj.getReleaseStatus());
|
||||
//添加es
|
||||
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map, SerializerFeature.WriteMapNullValue));
|
||||
try {
|
||||
|
||||
+5
-4
@@ -102,12 +102,13 @@ public class LawsHomeNormalSearchVO implements Serializable {
|
||||
* 入库时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 创建人(动态消息使用)
|
||||
*/
|
||||
private String createBy;
|
||||
/**
|
||||
* 发布状态(0-未发布、1-已发布)(动态消息使用)
|
||||
*/
|
||||
private String releaseStatus;
|
||||
|
||||
/**
|
||||
* 推送范围标识(1-指定用户、2-全体用户)
|
||||
*/
|
||||
private Integer pushRangeFlag;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user