提交 0b5d1d04 作者: 925993793@qq.com

事件创建/编辑逻辑调整

上级 92eacf11
package com.zzsn.event.controller;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -16,6 +17,7 @@ import com.zzsn.event.service.IEventService;
import com.zzsn.event.service.IKeyWordsService;
import com.zzsn.event.service.ISubjectInfoSourceMapService;
import com.zzsn.event.service.LabelEntityService;
import com.zzsn.event.service.impl.CaiJiCenterHttpService;
import com.zzsn.event.service.impl.ConfigurationMessageService;
import com.zzsn.event.util.HttpUtil;
import com.zzsn.event.util.ObjectUtil;
......@@ -191,6 +193,9 @@ public class EventManageController {
}
}
@Autowired
private CaiJiCenterHttpService caiJiCenterHttpService;
/**
* 启用
*
......@@ -201,6 +206,25 @@ public class EventManageController {
@GetMapping("/enable")
public Result<?> enable(@RequestParam String eventId) {
eventService.updateStatus(eventId, 1);
CompletableFuture.runAsync(() -> {
Event event = eventService.getById(eventId);
kafkaTemplate.send(EVENT_MODEL_KAFKA_CHANNEL, event.getEventCode());
configurationMessageService.bindInfoSourceSend(event.getId());
configurationMessageService.bindKeyWordsSend(event.getId());
configurationMessageService.subjectEnterpriseSourceSync(event.getId());
configurationMessageService.subjectPolicySourceSync(event.getId());
try {
String res = caiJiCenterHttpService.subjectStatusEdit(event.getStatus(), event.getId());
cn.hutool.json.JSONObject entries = JSONUtil.parseObj(res);
//获取code状态码
Integer code = entries.getInt("code");
if (cn.hutool.core.util.ObjectUtil.isEmpty(code) || code != 200) {
log.error("专题状态同步采集失败{}", res);
}
} catch (Exception e) {
log.error("专题状态同步采集失败{}", e.getMessage(), e);
}
});
return Result.OK();
}
......
......@@ -3,6 +3,7 @@ package com.zzsn.event.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
......@@ -122,6 +123,9 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
@Value("${kafka.topic.event.run:}")
private String EVENT_MODEL_KAFKA_CHANNEL;
@Value("${clb.subject.default.processing.advanceMonth}")
private Integer defaultAdvanceMonth;
@Override
public List<SubjectKafkaVo> progressList(Date disableDate) {
return this.baseMapper.processList(disableDate);
......@@ -339,6 +343,7 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
Event event = new Event();
BeanUtils.copyProperties(addEventParam, event);
event.setStatus(1);
event.setFirstOpenTime(new Date());
Date endTime = event.getEndTime();
if (endTime == null) {
endTime = DateUtil.addDate(new Date(), 15);
......@@ -360,6 +365,7 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
baseMapper.insert(event);
String eventId = event.getId();
CompletableFuture.runAsync(() -> {
setRedisCache(eventId);
//插入专题-类别、项目的绑定关系
saveMapMain(event, addEventParam);
//事件标签
......@@ -399,6 +405,11 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
});
}
@Override
@Transactional
public void deleteMain(String id) {
......@@ -470,10 +481,6 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
CompletableFuture.runAsync(() -> {
iXxlJobInfoService.update(Wrappers.<XxlJobInfo>lambdaUpdate().eq(XxlJobInfo::getInfoSourceCode, event.getEventCode())
.set(XxlJobInfo::getTriggerStatus, status));
//关键词
// KeywordsVO keywordsVO = keyWordsService.keywordInfoByEventId(eventId);
// iXxlJobInfoService.update(Wrappers.<XxlJobInfo>lambdaUpdate().eq(XxlJobInfo::getInfoSourceCode, keywordsVO.getWordsCode())
// .set(XxlJobInfo::getTriggerStatus, status));
if (1 == status) {
kafkaTemplate.send(EVENT_MODEL_KAFKA_CHANNEL, event.getEventCode());
}
......@@ -882,6 +889,43 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event> implements
}
}
/**
* 将事件的时间范围存入redis缓存(事件第一次启用时生效)
*
* @param eventId 事件id
* @author lkg
* @date 2025/2/7
*/
private void setRedisCache(String eventId) {
Event event = this.getById(eventId);
Date timeEnable = event.getStartTime();
Date timeDisable = event.getEndTime();
//date 转 localdate
LocalDate start;
LocalDate end;
if (cn.hutool.core.util.ObjectUtil.isNull(timeEnable)) {
start = LocalDate.now().minusMonths(defaultAdvanceMonth);
} else {
start = timeEnable.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
if (cn.hutool.core.util.ObjectUtil.isNull(timeDisable)) {
end = LocalDate.now();
} else {
end = timeDisable.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
//循环 start 到 end 的每一天
List<String> dateList = new ArrayList<>();
for (LocalDate date = end; !date.isBefore(start); date = date.minusDays(1)) {
// 在这里处理每一天的逻辑
//格式化date成字符串
String format = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
dateList.add(format);
}
redisUtil.rpushMultipleValues(Constants.HISTORY_SUBJECT_DATE_QUEUE + event.getEventCode(), dateList.toArray(new String[0]));
}
/**
* 修改事件时间缓存,用于补充数据(只有启用过的事件才会起作用)
*
......
......@@ -153,7 +153,7 @@ python:
clearDuplicateHistoryUrl: http://1.95.13.40:8080/subject/delete_history_data
jeecg:
shiro:
excludeUrls: info/subjectPageListGroupByLabel,/subject/simple/queryInfoNoSign,/subject/manage/visiblePageListNoSign
excludeUrls: info/subjectPageListGroupByLabel,/subject/simple/**,/subject/manage/visiblePageListNoSign
kafka:
topic:
subject:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论