提交 7a2a5474 作者: ZhangJingKun

修改bug

上级 2881a8b1
...@@ -60,7 +60,7 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo> ...@@ -60,7 +60,7 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
"and a.name = #{name} " + "and a.name = #{name} " +
"and a.id != #{id} " + "and a.id != #{id} " +
"and b.article_id != #{articleId} " + "and b.article_id != #{articleId} " +
"and a.uid IS NOT NULL") "and a.uid IS NOT NULL and a.uid != '' ")
List<CharacterVo> getListByName(String id, String name, String articleId); List<CharacterVo> getListByName(String id, String name, String articleId);
@Select("select count(1) " + @Select("select count(1) " +
...@@ -104,9 +104,8 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo> ...@@ -104,9 +104,8 @@ public interface CharacterBasicInfoMapper extends BaseMapper<CharacterBasicInfo>
"LEFT JOIN character_change_info b " + "LEFT JOIN character_change_info b " +
"on a.id = b.id " + "on a.id = b.id " +
"where 1=1 " + "where 1=1 " +
"and merge_status = 3 " + "and (merge_status = 3 or merge_status = 4)" +
"and b.original_id = #{id} " + "and b.original_id = #{id} " +
"order by update_time desc " + "order by create_time desc ")
"limit 1 ")
List<CharacterVo> getByOriginalId(String id); List<CharacterVo> getByOriginalId(String id);
} }
...@@ -10,6 +10,7 @@ import com.zzsn.leaderbase.vo.UserServerCharacterVo; ...@@ -10,6 +10,7 @@ import com.zzsn.leaderbase.vo.UserServerCharacterVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.MultiMatchQueryBuilder; import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
...@@ -61,9 +62,14 @@ public class EsServer { ...@@ -61,9 +62,14 @@ public class EsServer {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(relatedReportsVo.getKeyword(), "title", "content", "summary"); //MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery(relatedReportsVo.getKeyword(), "title", "content", "summary");
//searchSourceBuilder.query(multiMatchQueryBuilder); //searchSourceBuilder.query(multiMatchQueryBuilder);
//searchSourceBuilder.sort("publishDate", SortOrder.DESC);//如果按发布时间排序,则会出现排在最前面的信息和关键词相关度不高 // searchSourceBuilder.query(QueryBuilders.termQuery("content", relatedReportsVo.getKeyword()));
searchSourceBuilder.sort("publishDate", SortOrder.DESC);
searchSourceBuilder.query(QueryBuilders.termsQuery("content", relatedReportsVo.getKeyword())); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
.should(QueryBuilders.wildcardQuery("contentWithTag.keyword", "*"+relatedReportsVo.getKeyword()+"*"))
.should(QueryBuilders.wildcardQuery("summary.keyword", "*"+relatedReportsVo.getKeyword()+"*"))
.should(QueryBuilders.wildcardQuery("title.keyword", "*"+relatedReportsVo.getKeyword()+"*"))
;
searchSourceBuilder.query(boolQuery);
Page<SubjectInfoVo> page = null; Page<SubjectInfoVo> page = null;
try { try {
......
...@@ -10,6 +10,7 @@ import com.zzsn.leaderbase.entity.CharacterTagMap; ...@@ -10,6 +10,7 @@ import com.zzsn.leaderbase.entity.CharacterTagMap;
import com.zzsn.leaderbase.service.*; import com.zzsn.leaderbase.service.*;
import com.zzsn.leaderbase.vo.*; import com.zzsn.leaderbase.vo.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -327,22 +328,44 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -327,22 +328,44 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
List<CharacterVo> list = characterBasicInfoService.getByOriginalId(id); List<CharacterVo> list = characterBasicInfoService.getByOriginalId(id);
if(list.size() > 0){ if(list.size() > 0){
CharacterVo vo = list.get(0); CharacterVo vo = list.get(0);
//解绑人物uid Long mergeStatus = vo.getMergeStatus();
vo.setUid("");
//状态为可用 if(mergeStatus == 4L){
vo.setStatus(1L); this.del(vo.getId());
//审核状态置为未审核
vo.setCheckResult(1L); CharacterVo cvo = characterBasicInfoService.getById(id);
vo.setOriginalId(""); if(list.size() <= 1 && StringUtils.isEmpty(cvo.getOriginalId())){
this.edit(vo); cvo.setMergeStatus(0L);
CharacterChangeInfo info = new CharacterChangeInfo();
//type状态取消 BeanUtils.copyProperties(cvo, info);
characterChangeInfoService.updateById(info);
}
} else {
//解绑人物uid
vo.setUid("");
//状态为可用
vo.setStatus(1L);
//审核状态置为未审核
vo.setCheckResult(1L);
vo.setOriginalId("");
this.edit(vo);
//type状态取消
// vo.setMergeStatus(null); // vo.setMergeStatus(null);
UpdateWrapper<CharacterChangeInfo> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<CharacterChangeInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("merge_status", null) // 设置字段名为fieldName的字段值为null updateWrapper.set("merge_status", null) // 设置字段名为fieldName的字段值为null
.eq("id", vo.getId()); // 设置更新条件,这里以id作为更新条件 .eq("id", vo.getId()); // 设置更新条件,这里以id作为更新条件
characterChangeInfoService.update(updateWrapper); characterChangeInfoService.update(updateWrapper);
CharacterVo cvo = characterBasicInfoService.getById(id);
if(list.size() <= 1){
cvo.setMergeStatus(0L);
CharacterChangeInfo info = new CharacterChangeInfo();
BeanUtils.copyProperties(cvo, info);
characterChangeInfoService.updateById(info);
}
}
} else { } else {
//根据id查询数据 //根据id查询数据
CharacterVo characterVo = characterBasicInfoService.getById(id); CharacterVo characterVo = characterBasicInfoService.getById(id);
...@@ -415,7 +438,21 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -415,7 +438,21 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
characterChangeInfo.setUid(vo.getUid()); characterChangeInfo.setUid(vo.getUid());
characterChangeInfo.setCheckResult(1L); characterChangeInfo.setCheckResult(1L);
characterChangeInfo.setStatus(2L); characterChangeInfo.setStatus(2L);
characterChangeInfo.setOriginalId(id);
characterChangeInfo.setMergeStatus(4L);
characterChangeInfo.setCreateTime(new Date());
characterBasicInfo.setUpdateTime(new Date());
characterChangeInfoService.save(characterChangeInfo); characterChangeInfoService.save(characterChangeInfo);
//处理merge_status 的值
Long mergeStatus = vo.getMergeStatus();
if(mergeStatus == 0L){
vo.setMergeStatus(4L);
CharacterChangeInfo info = new CharacterChangeInfo();
BeanUtils.copyProperties(vo, info);
characterChangeInfoService.updateById(info);
}
return Result.OK(); return Result.OK();
} }
...@@ -517,8 +554,8 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -517,8 +554,8 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
private Result<?> mergeType3(String originalId, CharacterVo characterVo){ private Result<?> mergeType3(String originalId, CharacterVo characterVo){
//uid //uid
String uid = characterVo.getUid(); String uid = characterVo.getUid();
CharacterVo originalCharacter = characterBasicInfoService.getById(originalId);
if(uid == null || uid.length() == 0){ if(uid == null || uid.length() == 0){
CharacterVo originalCharacter = characterBasicInfoService.getById(originalId);
characterVo.setUid(originalCharacter.getUid()); characterVo.setUid(originalCharacter.getUid());
} }
characterVo.setOriginalId(originalId); characterVo.setOriginalId(originalId);
...@@ -526,6 +563,15 @@ public class CharacterInfoServiceImpl implements CharacterInfoService { ...@@ -526,6 +563,15 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
characterVo.setStatus(0L); characterVo.setStatus(0L);
this.edit(characterVo); this.edit(characterVo);
//处理merge_status 的值
Long mergeStatus = originalCharacter.getMergeStatus();
if(mergeStatus == 0L){
originalCharacter.setMergeStatus(4L);
CharacterChangeInfo info = new CharacterChangeInfo();
BeanUtils.copyProperties(originalCharacter, info);
characterChangeInfoService.updateById(info);
}
return Result.OK(); return Result.OK();
} }
......
...@@ -50,11 +50,13 @@ import org.elasticsearch.rest.RestStatus; ...@@ -50,11 +50,13 @@ import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.script.Script; import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType; import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.aggregations.AggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.Aggregations; import org.elasticsearch.search.aggregations.Aggregations;
import org.elasticsearch.search.aggregations.BucketOrder; import org.elasticsearch.search.aggregations.BucketOrder;
import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.aggregations.metrics.Cardinality;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.collapse.CollapseBuilder; import org.elasticsearch.search.collapse.CollapseBuilder;
import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
...@@ -895,8 +897,13 @@ public class EsUtil { ...@@ -895,8 +897,13 @@ public class EsUtil {
SearchRequest searchRequest = new SearchRequest(index); SearchRequest searchRequest = new SearchRequest(index);
searchSourceBuilder.size(pageSize); searchSourceBuilder.size(pageSize);
searchSourceBuilder.from((pageNo - 1) * pageSize); searchSourceBuilder.from((pageNo - 1) * pageSize);
//去重 collapse只允许keywords或者numbers类型,字段xxx不是keywords或者numbers类型 //去重 collapse只允许keywords或者numbers类型
searchSourceBuilder.collapse(new CollapseBuilder("sourceAddress.keyword")); searchSourceBuilder.collapse(new CollapseBuilder("sourceAddress.keyword"));
//collapse 去重后 hits的total value不对,对应的还是未去重的数量,
// 想要的是去重后的总数,可以借助 Aggregation 中的 cardinality 来实现
AggregationBuilder aggregation = AggregationBuilders.cardinality("total").field("sourceAddress.keyword");
searchSourceBuilder.aggregation(aggregation);
//默认最大数量是10000,设置为true后,显示准确数量 //默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder.trackTotalHits(true); searchSourceBuilder.trackTotalHits(true);
searchRequest.source(searchSourceBuilder); searchRequest.source(searchSourceBuilder);
...@@ -910,7 +917,11 @@ public class EsUtil { ...@@ -910,7 +917,11 @@ public class EsUtil {
list.add(t); list.add(t);
}); });
} }
pageData.setTotal(searchResponse.getHits().getTotalHits().value);
Aggregations aggregations = searchResponse.getAggregations();
Cardinality cardinality = aggregations.get("total");
// pageData.setTotal(searchResponse.getHits().getTotalHits().value);
pageData.setTotal(cardinality.getValue());
pageData.setRecords(list); pageData.setRecords(list);
return pageData; return pageData;
......
...@@ -129,7 +129,7 @@ public class CharacterVo { ...@@ -129,7 +129,7 @@ public class CharacterVo {
private String originalId; private String originalId;
//审核信息 新人物id //审核信息 新人物id
private String newId; private String newId;
//合并结果 0手动新增 1合并人物 2作为新人物 3新增履历 -1取消操作 //合并结果 0手动新增 1合并人物 2作为新人物 3新增履历 4关联 -1取消操作
private Long mergeStatus; private Long mergeStatus;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论