提交 7a2a5474 作者: ZhangJingKun

修改bug

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