提交 1995c4d9 作者: ZhangJingKun

百度百科人物采集

上级 a83aad48
......@@ -114,6 +114,16 @@
<version>1.5.24</version>
</dependency>
<!-- kafka-->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
<build>
......
......@@ -5,11 +5,13 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.kafka.annotation.EnableKafka;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableAsync
@MapperScan(value = {"com.zzsn.leaderbase.mapper*"})
@EnableKafka
public class LeaderBaseApplication {
public static void main(String[] args) {
......
package com.zzsn.leaderbase.config;
import com.zzsn.leaderbase.service.UserInfoExecutorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/15 11:49
* @Content:
*/
@Slf4j
@Component
public class UserInfoExecutor implements CommandLineRunner {
@Autowired
UserInfoExecutorService userInfoExecutorService;
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
private final Integer PERIOD=60;
@Override
public void run(String... args) {
scheduledExecutorService.scheduleAtFixedRate(()->{
userInfoExecutorService.run();
},5,PERIOD, TimeUnit.SECONDS);
log.info("发送人物名称到redis定时任务启动成功!{}---{}执行一次",PERIOD,TimeUnit.SECONDS);
}
}
......@@ -63,22 +63,28 @@ public class CharacterDetailsController {
}
/**
* ES查询
* 根据关联咨询索引和id查询咨询详情
* @param index 关联咨询所在es索引
* @param index 关联咨询所在es索引getInformation
* @param id 关联咨询es id
* @return
*/
@GetMapping("/getInformation")
public Result<?> getInformation(
@RequestParam(name="index",required=true) String index,
@RequestParam(name="index",required=false) String index,
@RequestParam(name="id",required=true) String id
){
if(index == null || "".equals(index))
return Result.error("索引名称不能为空");
if(id == null || "".equals(id))
return Result.error("id不能为空!");
if(index == null || "".equals(index)){
String[] arr = id.split(",");
if(arr.length == 2){
index = arr[0];
id = arr[1];
} else {
return Result.error("索引有误!");
}
}
return characterDetailsService.getInformation(index, id);
}
......@@ -143,4 +149,20 @@ public class CharacterDetailsController {
return correlationEnterpriseService.getCorrelationEnterpriseList(detailsListVo);
}
/**
* ES查询
* 根据uid和人物名称从es库中查询从百度采集的人物信息
* @param uid
* @param name
* @return
*/
@GetMapping("/getCharacterBaike")
public Result<?> getCharacterBaike(
@RequestParam(name="uid",required=true) String uid,
@RequestParam(name="name",required=true) String name
) {
return characterDetailsService.getCharacterBaike(uid, name);
}
}
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -62,12 +60,14 @@ public class CharacterBasicInfo extends Model<CharacterBasicInfo> {
//创建人
private String createBy;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -62,12 +60,14 @@ public class CharacterBasicInfoHistory extends Model<CharacterBasicInfoHistory>
//创建人
private String createBy;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -56,7 +53,8 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("create_time")
//@TableField("create_time")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
......@@ -68,7 +66,8 @@ public class CharacterCategoryStructure extends Model<CharacterCategoryStructure
/**
* 更新时间
*/
@TableField("update_time")
@TableField(fill = FieldFill.INSERT_UPDATE)
//@TableField("update_time")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -12,7 +10,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 人物变更信息表
* 职务变更信息表
*/
@Data
@EqualsAndHashCode(callSuper = false)
......@@ -70,12 +68,14 @@ public class CharacterChangeInfo extends Model<CharacterChangeInfo> {
//创建人
private String createBy;
//创建时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 人物变更历史记录表
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("character_change_info_history")
public class CharacterChangeInfoHistory extends Model<CharacterChangeInfoHistory> {
private static final long serialVersionUID = 1L;
//主键
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
//关联人物id
private String uid;
//人物名称
private String name;
//原单位
private String companyOriginal;
//原部门 原单位 原企业
private String departmentOriginal;
//原职务
private String dutyOriginal;
//单位(现)
private String company;
//部门 单位 企业(现)
private String department;
//职务(现)
private String duty;
//任职时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date takeOfficeTime;
//任职状态
private String takeOfficeStatus;
//变更链接
private String changeUrl;
//职务变更时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date dutiesUpdateTime;
//职务变更原因
private String dutiesUpdateReason;
//是否审核 1是 0否
private Long checkStatus;
//是否审核通过 0未通过 1通过 2待定
private Long checkResult;
//关联资讯id
private String articleId;
//关联资讯标题
private String articleTitle;
//变更描述
private String updateDesc;
//创建人
private String createBy;
//创建时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//更新人
private String updateBy;
//更新时间
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
//启停状态 1启 0停
private Long status;
}
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -77,12 +75,14 @@ public class CisXgraPaper extends Model<CisXgraPaper> {
//'创建人'
private String createBy;
//'创建时间'
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//'更新人'
private String updateBy;
//'更新时间'
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -34,12 +32,14 @@ public class CorrelationEnterprise extends Model<CorrelationEnterprise> {
//'创建人'
private String createBy;
//'创建时间'
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//'更新人'
private String updateBy;
//'更新时间'
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
......@@ -36,10 +38,12 @@ public class CorrelationInformation extends Model<CorrelationInformation> {
//资讯来源
private String articleSource;
//资讯发布时间
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date articlePublishDate;
//创建时间
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
......
package com.zzsn.leaderbase.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......@@ -56,12 +54,14 @@ public class LearningAchievement extends Model<LearningAchievement> {
//'创建人'
private String createBy;
//'创建时间'
@TableField(fill = FieldFill.INSERT)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//'更新人'
private String updateBy;
//'更新时间'
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
......
package com.zzsn.leaderbase.kafka;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;
@Service
public class KafkaProducer {
@Autowired
private KafkaTemplate<String, String> kafkaTemplate;
public void sendMessage(String topic, String message) {
kafkaTemplate.send(topic, message);
}
}
\ No newline at end of file
package com.zzsn.leaderbase.kafka;
import com.zzsn.leaderbase.service.UserInfoRedisExecutorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;
/**
* 从kafka中拉取从百度采集到的任务信息
*/
@Component
@Slf4j
public class UserServerCharacterInfoKafkaConsumer {
@Autowired
UserInfoRedisExecutorService userInfoRedisExecutorService;
@KafkaListener(topics = "userserver_character_info", groupId = "group04")
public void listen(String message) {
log.info("kafka pull userserver_character_info: {} ......", message.substring(0,300));
userInfoRedisExecutorService.run(message);
}
}
\ No newline at end of file
package com.zzsn.leaderbase.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzsn.leaderbase.entity.CharacterChangeInfoHistory;
import org.apache.ibatis.annotations.Mapper;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:13
* @Content:
*/
@Mapper
public interface CharacterChangeInfoHistoryMapper extends BaseMapper<CharacterChangeInfoHistory> {
}
......@@ -28,4 +28,7 @@ public interface CharacterBasicInfoService extends IService<CharacterBasicInfo>
List<CharacterVo> getListByName(String id, String name, String articleId);
Integer deduplication(String duty, String company, String name);
List<CharacterBasicInfo> getData(String time);
}
package com.zzsn.leaderbase.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zzsn.leaderbase.entity.CharacterChangeInfoHistory;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:07
* @Content:
*/
public interface CharacterChangeInfoHistoryService extends IService<CharacterChangeInfoHistory> {
}
......@@ -17,4 +17,5 @@ public interface CharacterDetailsService extends IService<CorrelationInformation
Result<?> getInformation(String articleIndex, String articleId);
Result<?> getCharacterBaike(String uid, String name);
}
package com.zzsn.leaderbase.service;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zzsn.leaderbase.constant.CommonConstant;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.entity.SysBaseDomesticRegion;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundListOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/15 15:40
* @Content:
*/
@Service
@Slf4j
public class UserInfoExecutorService {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
CharacterBasicInfoService characterBasicInfoService;
private final static String USER_INFO_TIME = "USER_INFO_TIME"; //"2024-03-15 10:16:45"
private final static String USER_INFO_LIST = "USER_INFO_LIST";
public void run(){
Object object = redisTemplate.opsForValue().get(USER_INFO_TIME);
redisTemplate.opsForValue().set(USER_INFO_TIME, DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
String time = "";
if (object != null) {
time = object.toString();
}
log.info("USER_INFO_TIME time:{}", time);
List<CharacterBasicInfo> list = characterBasicInfoService.getData(time);
log.info("查询需要采集的人物数量:{}", list.size());
for (CharacterBasicInfo characterBasicInfo : list) {
String uid = characterBasicInfo.getUid();
String name = characterBasicInfo.getName();
BoundListOperations listOps = redisTemplate.boundListOps(USER_INFO_LIST);
String value = uid + "|" + name + "|";
listOps.rightPush(uid + "|" + name + "|");
log.info("To Redis USER_INFO_LIST value:{}", value);
}
}
}
package com.zzsn.leaderbase.service;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSONObject;
import com.zzsn.leaderbase.util.EsDateUtil;
import com.zzsn.leaderbase.util.EsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalTime;
import java.util.Date;
import java.util.Map;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/16 9:45
* @Content:
*/
@Service
@Slf4j
public class UserInfoRedisExecutorService {
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private EsUtil esUtil;
@Autowired
IGeneratorIdService generatorIdService;
private final static String index = "userserver_character";
public void run(String message){
JSONObject jsonObject = JSONObject.parseObject(message);
//System.out.println(jsonObject);
Map<String, String> map = jsonObject.toJavaObject(Map.class);
String id = Long.toString(generatorIdService.getOrderId());
map.put("id", id);
map.put("createDate", EsDateUtil.esFieldDateFormat(DateUtil.format(new Date(), "yyyy-MM-dd hh:mm:ss")));
esUtil.docSaveByMap(index, id, map);
log.info("数据保存到es成功:{}---{}---{}",index, id, map.get("name"));
//esUtil.docSaveByEntity(index, uid, vo);
}
}
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterBasicInfo;
import com.zzsn.leaderbase.mapper.CharacterBasicInfoMapper;
......@@ -60,4 +62,16 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
Integer count = characterBasicInfoMapper.deduplication(duty, company, name);
return count;
}
@Override
public List<CharacterBasicInfo> getData(String time) {
LambdaQueryWrapper<CharacterBasicInfo> lambdaQuery = Wrappers.lambdaQuery();
if(!"".equals(time)){
lambdaQuery.ge(CharacterBasicInfo::getCreateTime, time);
}
lambdaQuery.orderByAsc(CharacterBasicInfo::getCreateTime);
lambdaQuery.select(CharacterBasicInfo::getUid,CharacterBasicInfo::getName);
List<CharacterBasicInfo> list = characterBasicInfoMapper.selectList(lambdaQuery);
return list;
}
}
package com.zzsn.leaderbase.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zzsn.leaderbase.entity.CharacterChangeInfoHistory;
import com.zzsn.leaderbase.mapper.CharacterChangeInfoHistoryMapper;
import com.zzsn.leaderbase.service.CharacterChangeInfoHistoryService;
import org.springframework.stereotype.Service;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/2/29 17:07
* @Content: 任务职务变更信息历史记录表
* 仅在审核 更新任务信息时记录
*/
@Service
public class CharacterChangeInfoHistorySerivceImpl extends ServiceImpl<CharacterChangeInfoHistoryMapper, CharacterChangeInfoHistory> implements CharacterChangeInfoHistoryService {
}
......@@ -12,6 +12,7 @@ import com.zzsn.leaderbase.util.EsUtil;
import com.zzsn.leaderbase.vo.DetailsListVo;
import com.zzsn.leaderbase.vo.Result;
import com.zzsn.leaderbase.vo.SubjectInfoVo;
import com.zzsn.leaderbase.vo.UserServerCharacterVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -32,6 +33,8 @@ public class CharacterDetailsServiceImpl extends ServiceImpl<CharacterDetailsMap
@Autowired
private EsUtil esUtil;
private final static String USERSERVER_CHARACTER = "userserver_character";
@Override
public Result<?> informationList(DetailsListVo detailsListVo) {
......@@ -69,4 +72,12 @@ public class CharacterDetailsServiceImpl extends ServiceImpl<CharacterDetailsMap
return Result.OK(subjectInfo);
}
@Override
public Result<?> getCharacterBaike(String uid, String name) {
UserServerCharacterVo vo = esUtil.getCharacterBaike(USERSERVER_CHARACTER, uid, name, UserServerCharacterVo.class);
if(vo == null)
return Result.OK("该人物没有详情信息", null);
return Result.OK(vo);
}
}
......@@ -35,8 +35,6 @@ public class CharacterInfoServiceImpl implements CharacterInfoService {
@Autowired
CharacterChangeInfoService characterChangeInfoService;
@Autowired
CharacterChangeInfoHistoryService characterChangeInfoHistoryService;
//生成id
@Autowired
......
......@@ -212,7 +212,7 @@ public class EsUtil {
}
public String docSaveByMap(String index, String id, Map<String, Object> map) {
public String docSaveByMap(String index, String id, Map<String, String> map) {
try {
IndexRequest request = new IndexRequest(index).id(id)
.source(map);
......@@ -710,6 +710,34 @@ public class EsUtil {
}
return res;
}
public <T> T getCharacterBaike(String index, String uid, String name, Class<T> entry){
try {
SearchRequest searchRequest = new SearchRequest(index);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
//查询到多条时只取最新的
searchSourceBuilder.size(1);
searchSourceBuilder.sort("createDate", SortOrder.DESC);
TermQueryBuilder termUid = QueryBuilders.termQuery("uid", uid);
TermQueryBuilder termName = QueryBuilders.termQuery("name", name);
searchSourceBuilder.query(termUid).query(termName);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHit[] hits = searchResponse.getHits().getHits();
T res = null;
if (hits.length>0){
res = JSON.parseObject(hits[0].getSourceAsString(), entry);
}
return res;
} catch (IOException e) {
log.info("查询异常{}",e.getMessage(),e);
return null;
}
}
/**
* 根据id查询各类资讯详情
* */
......@@ -731,7 +759,6 @@ public class EsUtil {
log.info("查询异常{}",e.getMessage(),e);
return null;
}
}
/**
* 通用查询,
......
package com.zzsn.leaderbase.vo;
import lombok.Data;
/**
* @Version 1.0
* @Author: ZhangJingKun
* @Date: 2024/3/16 14:05
* @Content:
*/
@Data
public class UserServerCharacterVo {
//唯一主键
private String id;
//人物uid
private String uid;
//人物姓名
private String name;
//职务
private String lemmaDesc;
//简介
private String introduction;
//个人信息 栏目 如中文名 国籍 民族
private String basicInfoList;
//个人信息 内容
private String basicInfo;
//目录 栏目名称
private String directoryList;
//目录 内容
private String directory;
//头像 base64格式
private String avatar;
//采集链接
private String sourceAddress;
//采集百度id
private String baiduId;
//创建时间
private String createDate;
}
......@@ -17,14 +17,22 @@ spring:
password: qwer@9988&zzsn
elasticsearch:
rest:
uris: ["114.116.90.53:9200"]
uris: ["114.115.215.250"]
username: elastic
password: elastic
password: zzsn9988
redis:
database: 0
host: 114.116.90.53
password: clbzzsn
port: 6380
kafka:
bootstrap-servers: 114.115.159.144:9092
consumer:
group-id: groupName
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
python:
getInfoUrl: http://114.115.130.239:1818/update_extraction/
# getInfoUrl: http://192.168.1.116:1818/update_extraction/
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论