Commit 4a0ff7ba by shenjunjie

Merge branch 'feature' into 'dev'

修复event信息

See merge request !116
parents a836731b c6f450c0
package com.zhiwei.brandkbs2.common;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.zhiwei.brandkbs2.pojo.ChannelTag;
import com.zhiwei.brandkbs2.pojo.Project;
import com.zhiwei.brandkbs2.service.EventService;
import com.zhiwei.brandkbs2.service.SystemInfoService;
import com.zhiwei.qbjc.bean.pojo.common.MessagePlatform;
import com.zhiwei.qbjc.bean.pojo.common.Tag;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
......@@ -17,6 +20,8 @@ import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.stream.Collectors;
/**
......@@ -61,10 +66,17 @@ public class GlobalPojo {
public static final String ELSE_PLATFORM_NAME = "其他自媒体";
private static final ScheduledExecutorService updateBoot = Executors.newScheduledThreadPool(1,
new ThreadFactoryBuilder().setDaemon(false).setNameFormat("event-info-update").build());
@Autowired
EventService eventService;
@PostConstruct
public void start() {
try {
updatePojo("启动获取");
updateBoot.execute(() -> eventService.updateAllEventInfo());
} catch (Exception e) {
log.info("启动获取-出错", e);
}
......
......@@ -25,4 +25,5 @@ public interface EventDataService {
*/
String deleteOneByIdAndEventId(String id, String eventId);
void updateEventInfo(Event event);
}
......@@ -291,4 +291,9 @@ public interface EventService {
*/
List<Event> findNotEndEventByProjectId(String projectId);
/**
* 更新所有事件快照属性
*/
void updateAllEventInfo();
}
......@@ -109,6 +109,17 @@ public class EventDataServiceImpl implements EventDataService {
log.info("analysisEvent-eventId:{},更新事件数据完毕,实际更新:{}条", event.getId(), eventDataList.size());
}
@Override
public void updateEventInfo(Event event) {
// 找到正确的事件数据
List<EventData> eventDataList = eventDataDao.findList(Query.query(Criteria.where("eventId").is(event.getId())), event.getCollectionName());
eventTopArticlesAnalysisDao.deleteByEventId(event.getId());
eventDisseminationTrendDao.deleteOneByQuery(Query.query(Criteria.where("eventId").is(event.getId())));
// 设置快照属性值
setEventStaticState(event, eventDataList);
log.info("updateEventInfo-eventId:{},更新事件数据完毕,实际更新:{}条", event.getId(), eventDataList.size());
}
private List<EventData> filterEventData(Event event, List<EventData> eventDataList) {
List<EventData> hitList = new ArrayList<>();
String keyword = event.getKeyword();
......
......@@ -44,6 +44,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
......@@ -683,6 +684,26 @@ public class EventServiceImpl implements EventService {
return eventDao.findList(query);
}
@Override
public void updateAllEventInfo() {
Query query = new Query();
query.with(Sort.by(Sort.Order.asc("cTime")));
query.addCriteria(Criteria.where("_id").is("6312e8004429d82397833cf0"));
List<Event> list = eventDao.findList(query);
log.info("updateAllEventInfo-发现事件共:{}个", list.size());
AtomicInteger total = new AtomicInteger();
AtomicInteger error = new AtomicInteger();
list.forEach(event -> {
try {
eventDataService.updateEventInfo(event);
log.info("updateAllEventInfo-已更新事件:{}个,错误:{}个", total.incrementAndGet(), error.get());
} catch (Exception e) {
error.incrementAndGet();
log.error("updateAllEventInfo-eventId:{}", event.getId(), e);
}
});
}
/**
* 获取时间筛选条件
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment