Commit 88f7a151 by shenjunjie

Merge branch 'feature' into 'release'

Feature

See merge request !68
parents 2d47d1c1 cee7d4fa
......@@ -218,7 +218,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
Calendar date = Calendar.getInstance();
int year = date.get(Calendar.YEAR);
for (int i = 0; i < years; i++) {
res.add(COLLECTION_PREFIX + (year - i));
res.add(COLLECTION_PREFIX + "_" + (year - i));
}
return res;
}
......
......@@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture;
@Component("eventDataDao")
public class EventDataDaoImpl extends BaseMongoDaoImpl<EventData> implements EventDataDao {
protected static final String COLLECTION_PREFIX = "brandkbs_event_data_";
protected static final String COLLECTION_PREFIX = "brandkbs_event_data";
private static final String TIME_PATTERN = "yyyy";
public EventDataDaoImpl() {
......
......@@ -93,6 +93,7 @@ public class EventDataServiceImpl implements EventDataService {
private void updateEventData(Event event, List<EventData> eventDataList) {
// 根据配置筛选目标数据
eventDataList = filterEventData(event, eventDataList);
log.info("analysisEvent-eventId:{},关键词筛选后剩余:{}条", event.getId(), eventDataList.size());
// 删除历史数据
deleteEventRelated(event);
// 数据入库
......@@ -107,7 +108,7 @@ public class EventDataServiceImpl implements EventDataService {
String keyword = event.getKeyword();
for (EventData data : eventDataList) {
// 关键词筛选
if (Tools.isContains(Arrays.asList(keyword.split(keyword.contains(",") ? "," : "\\|")), (data.getTitle() + data.getContent()))) {
if (Tools.isContains(keyword, (data.getTitle() + data.getContent()))) {
hitList.add(data);
}
}
......
......@@ -38,7 +38,7 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
warnCriteriaAdd(res, "contends", nameList, idList);
warnCriteriaAdd(res, "keyword", null);
warnCriteriaAdd(res, "duplicate", Arrays.asList("去重", "不去重"), Arrays.asList(true, false));
warnCriteriaAdd(res, "pushInterval", Arrays.asList("10", "30min", "60min"), Arrays.asList(10 * ONE_MINUTE, 30 * ONE_MINUTE, 60 * ONE_MINUTE));
warnCriteriaAdd(res, "pushInterval", Arrays.asList("10min", "30min", "60min"), Arrays.asList(10 * ONE_MINUTE, 30 * ONE_MINUTE, 60 * ONE_MINUTE));
break;
case "渠道参与":
warnCriteriaAdd(res, "friendlyChannel", Arrays.asList("友好渠道", "敏感渠道", "自定义渠道"), Arrays.asList(true, false, null));
......@@ -54,31 +54,31 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
warnCriteriaAdd(res, "primary", Arrays.asList("原创", "转发"), Arrays.asList(false, true), "说明:仅对微博平台数据生效");
warnCriteriaAddSimple(res, "markerTags", Arrays.asList("正面", "中性", "负面"));
warnCriteriaAdd(res, "duplicate", Arrays.asList("去重", "不去重"), Arrays.asList(true, false));
warnCriteriaAdd(res, "pushInterval", Arrays.asList("实时", "30min", "60min", "180min"), Arrays.asList(null, 30 * ONE_MINUTE, 60 * ONE_MINUTE, 180 * ONE_MINUTE));
warnCriteriaAdd(res, "pushInterval", Arrays.asList("10min", "30min", "60min"), Arrays.asList(10 * ONE_MINUTE, 30 * ONE_MINUTE, 60 * ONE_MINUTE));
break;
case "热点事件":
warnCriteriaAddSimple(res, "wonEvent", Arrays.asList("正面", "中性", "负面"));
warnCriteriaAddSimple(res, "ownEvent", Arrays.asList("正面", "中性", "负面"));
List<JSONObject> brands2 = projectService.getBrands(projectId, false);
List<String> nameList2 = brands2.stream().map(json -> json.getString("brandName")).collect(Collectors.toList());
List<String> idList2 = brands2.stream().map(json -> json.getString("contendId")).collect(Collectors.toList());
warnCriteriaAdd(res, "contendsEvent", nameList2, idList2);
warnCriteriaAddSimple(res, "zhiWeiEvent", Arrays.asList("社会", "互联网", "政务", "财经", "企业", "娱乐", "灾难", "违法犯罪", "国际", "体育", "谣言"), "说明:知微事见支持选择事件的领域");
warnCriteriaAdd(res, "eventTop", Arrays.asList("TOP5", "TOP10"), Arrays.asList(5, 10), "说明:按影响力选取;若事件数不足,以实际为准");
warnCriteriaAdd(res, "timeCycles", Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"), Arrays.asList(1, 2, 3, 4, 5, 6, 7), "说明:系统推送时间为08:00");
warnCriteriaAdd(res, "timeCycles", Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"), Arrays.asList(2, 3, 4, 5, 6, 7, 1), "说明:系统推送时间为08" + ":00");
break;
case "上榜热搜":
warnCriteriaAddSimple(res, "warnKeyword", null);
warnCriteriaAddSimple(res, "filterKeyword", null);
warnCriteriaAddSimple(res, "listType", Arrays.asList("微博热搜", "微博话题", "微博预热", "头条热搜", "抖音热搜", "知乎热搜", "B站热搜", "快手热榜"));
List<Map<String, Object>> topList = new ArrayList<>();
List<Map<String, Object>> topNewHeight = new ArrayList<>();
for (int i : Arrays.asList(3, 5, 10, 20, 50)) {
Map<String, Object> map = new HashMap<>();
map.put("name", "前" + i);
map.put("id", i);
topList.add(map);
topNewHeight.add(map);
}
warnCriteriaAddSimple(res, "warnType", Arrays.asList("首次上榜", "排名新高", "掉榜和再次上榜", "导语(仅支持微博平台)"));
res.put("topList", topList);
res.put("topNewHeight", topNewHeight);
warnCriteriaAdd(res, "warnType", Arrays.asList("首次上榜", "排名新高", "掉榜和再次上榜", "导语(仅支持微博平台)"), Arrays.asList("firstTop", "newHeight", "topOnceAgain", "introduction"));
warnCriteriaAdd(res, "pushInterval", Collections.singletonList("5min"), Collections.singletonList(5 * ONE_MINUTE));
break;
case "案例上新":
......
......@@ -851,6 +851,10 @@ public class Tools {
return dayList;
}
public static boolean isContains(String keyword, String content) {
return isContains(Arrays.asList(keyword.split("\\|")), content);
}
/**
* 是否包含关键字
*
......@@ -859,20 +863,25 @@ public class Tools {
* @return 是否包含关键字
*/
public static boolean isContains(List<String> keywords, String content) {
boolean contains = true;
if (null != keywords) {
if (null == keywords || keywords.isEmpty()) {
return false;
}
content = content.toLowerCase();
// 按空格分割必须全部命中
// 有一组命中即可
for (String keyword : keywords) {
boolean contains = true;
for (String word : keyword.split(" ")) {
if (!content.contains(word.toLowerCase())) {
//一个不命中,直接返回false
return false;
//一个不命中,跳转至下一组
contains = false;
break;
}
}
if (contains) {
return true;
}
}
return contains;
return false;
}
public static JSONObject getBrandkbsHitMap(Map<String, Object> esMap, String hitKey) {
......
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