提交 b862d807 作者: 洪东保

debug

父级 e0e7a93e
......@@ -142,7 +142,7 @@ public class CmeetingJob {
}
}
@Scheduled(fixedRate = 20 * 60 * 1000, initialDelay = 2 * 60 * 1000)
@Scheduled(fixedRate = 20 * 60 * 1000, initialDelay = 1 * 60 * 1000)
public void execute() {
if (isDev) {
return;
......@@ -188,7 +188,7 @@ public class CmeetingJob {
/**
* 定时扫描早于一小时之前的,所有未重试过的会议,重新生成纪要
*/
@Scheduled(fixedRate = 30 * 60 * 1000, initialDelay = 10 * 60 * 1000)
@Scheduled(fixedRate = 30 * 60 * 1000, initialDelay = 3 * 60 * 1000)
public void meetingMinutesRetry() {
if (isDev) {
return;
......
package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.constant.MeetingState;
import com.cmeeting.dto.UserDTO;
......@@ -176,6 +177,10 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,T
//查询会议详情
String meetingId = meeting.getMeetingId();
String meetingRecordId = meeting.getMeetingRecordId();
if (meetingRecordId == null) {
log.error("记录不存在!");
continue;
}
String subMeetingId = null;
LocalDateTime mediaStartTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(Long.valueOf(meeting.getMediaStartTime())), ZoneId.systemDefault());
try {
......@@ -210,12 +215,19 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,T
List<String> recordFileIdList = recordFiles.stream().sorted(Comparator.comparingLong(CorpRecordsVO.RecordFile::getRecordStartTime))
.map(CorpRecordsVO.RecordFile::getRecordFileId).collect(Collectors.toList());
Set<String> set1 = new HashSet<>(recordFileIdList);
boolean flag = true;
if (CollUtil.isNotEmpty(meetingIds)) {
for (TencentMeetingVO.SimpleMeetingInfo meetingInfo : meetingIds) {
if (meetingInfo.getMeetingRecordId().equals(meetingRecordId)) {
flag = false;
break;
}
}
}
//如果数据库中已有相同会议id的记录,跳过同步
if(meetingIds.stream().noneMatch(item->Objects.equals(item.getMeetingRecordId(), meetingRecordId))){
if(flag){
log.info("【会议检索】新的会议记录MeetingRecordId->:{}, meetingId->{}, recordIds: {}", meetingRecordId,meeting.getMeetingId(), String.join(",", recordFileIdList));
String hostId;
String hostName;
//优先使用会议列表中已有的主持人字段
......@@ -312,6 +324,12 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,T
.recordFileId(recordFileIdList.stream().collect(Collectors.joining(",")))
.email(email)
.build();
meetingFiles.add(TencentMeetingVO.RecordFile.builder()
.meetingId(meetingId)
.subMeetingId(subMeetingId)
.meetingRecordId(meetingRecordId)
.recordFileIdList(recordFileIdList).build());
meetingSaveList.add(meetingItem);
}
} catch (Exception e) {
......@@ -321,25 +339,7 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,T
}
}
if(meetingSaveList.size() > 0){
Map<String, List<MeetingInfo>> meetingSaveMap = meetingSaveList.stream().collect(Collectors.groupingBy(
item -> item.getMeetingId() + "_" +
(item.getSubMeetingId() != null ? item.getSubMeetingId() : "null")));
List<MeetingInfo> finalSaveList = new ArrayList<>();
for (Map.Entry<String, List<MeetingInfo>> entry : meetingSaveMap.entrySet()) {
MeetingInfo meetingInfo = entry.getValue().get(0);
List<String> recordFileIdList = entry.getValue().stream().flatMap(s -> Arrays.stream(s.getRecordFileId().split(","))).collect(Collectors.toList());
meetingInfo.setRecordFileId(recordFileIdList.stream().collect(Collectors.joining(",")));
finalSaveList.add(meetingInfo);
if (meetingInfo.getEmailPushAccess()) {
meetingFiles.add(TencentMeetingVO.RecordFile.builder()
.meetingId(meetingInfo.getMeetingId())
.subMeetingId(meetingInfo.getSubMeetingId())
.meetingRecordId(meetingInfo.getMeetingRecordId())
.recordFileIdList(recordFileIdList).build());
}
}
meetingInfoMapper.batchInsert(finalSaveList);
meetingInfoMapper.batchInsert(meetingSaveList);
}
} catch (Exception e) {
log.error(e.getMessage());
......
......@@ -39,7 +39,7 @@
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>
info
debug
</level>
</filter>
<encoder>
......
......@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmeeting.mapper.primary.MeetingInfoMapper">
<insert id="batchInsert" parameterType="list">
INSERT IGNORE INTO cmt_meeting_info (subject, meeting_id, meeting_code, host, host_uid, participant_users, start_time,
INSERT IGNORE INTO cmt_meeting_info (subject, meeting_id, meeting_record_id, meeting_code, host, host_uid, participant_users, start_time,
end_time, is_generated, email_push_access, is_pushed, sync_time, sub_meeting_id, record_content, record_xml, generate_retry,
push_retry, record_file_id, status, email)
VALUES
......@@ -10,6 +10,7 @@
(
#{meeting.subject},
#{meeting.meetingId},
#{meeting.meetingRecordId},
#{meeting.meetingCode},
#{meeting.host},
#{meeting.hostUid},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论