提交 865db7a5 作者: 洪东保

debug

父级 3d7a8e12
...@@ -118,6 +118,7 @@ public class CmeetingJob { ...@@ -118,6 +118,7 @@ public class CmeetingJob {
if (isDev) { if (isDev) {
return; return;
} }
log.info("-------生成纪要定时任务开始-------");
//查出企微id和腾会id的关联关系 //查出企微id和腾会id的关联关系
List<UserId> userIdRelations = userIdMapper.selectList(null); List<UserId> userIdRelations = userIdMapper.selectList(null);
Map<String, String> widTidRelations = userIdRelations.stream().collect(Collectors.toMap(UserId::getWid, UserId::getTid)); Map<String, String> widTidRelations = userIdRelations.stream().collect(Collectors.toMap(UserId::getWid, UserId::getTid));
......
...@@ -123,7 +123,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -123,7 +123,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
@Override @Override
public List<TencentMeetingVO.RecordFile> getMeetingFiles(List<UserDTO> accessUserIds, Map<String, WeComUser> weComUserMap) { public List<TencentMeetingVO.RecordFile> getMeetingFiles(List<UserDTO> accessUserIds, Map<String, WeComUser> weComUserMap) {
List<TencentMeetingVO.RecordFile> meetingFiles = new ArrayList<>(); List<TencentMeetingVO.RecordFile> meetingFiles = new ArrayList<>();
// List<TencentMeetingVO.RecordFile> recordFileUrlList = new ArrayList<>();
List<MeetingInfo> meetingSaveList = new ArrayList<>(); List<MeetingInfo> meetingSaveList = new ArrayList<>();
// 查询近searchDays天的会议录制列表 // 查询近searchDays天的会议录制列表
try { try {
...@@ -152,7 +151,7 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -152,7 +151,7 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
if (meeting.getState() != 3) { if (meeting.getState() != 3) {
continue; continue;
} }
log.info("【会议检索】转录文件的meetingId->{},recordFileId->{}", meeting.getMeetingId(), meeting.getMeetingRecordId()); log.info("【会议定时检索】转录文件的meetingId->{},recordFileId->{}", meeting.getMeetingId(), meeting.getMeetingRecordId());
//查询会议详情 //查询会议详情
String meetingId = meeting.getMeetingId(); String meetingId = meeting.getMeetingId();
String subMeetingId = null; String subMeetingId = null;
...@@ -160,7 +159,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -160,7 +159,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
String hostId = ""; String hostId = "";
try { try {
String userid = meeting.getUserid(); String userid = meeting.getUserid();
// log.info("【周期会议扫描】:查询用户的已结束会议列表...meetingCode->{},userId->{}", meeting.getMeetingCode(), userid);
//获取子会议id //获取子会议id
V1HistoryMeetingsUseridGet200Response v1HistoryMeetingsUseridGet200Response = TencentMeetingApiUtil.ApiV1HistoryMeetingsUseridGetRequest(userid, meeting.getMeetingCode(), V1HistoryMeetingsUseridGet200Response v1HistoryMeetingsUseridGet200Response = TencentMeetingApiUtil.ApiV1HistoryMeetingsUseridGetRequest(userid, meeting.getMeetingCode(),
String.valueOf(mediaStartTime.toLocalDate().atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond()), String.valueOf(mediaStartTime.toLocalDate().atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond()),
...@@ -182,14 +180,10 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -182,14 +180,10 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
//如果数据库中已有相同会议id的记录,跳过同步 //如果数据库中已有相同会议id的记录,跳过同步
String finalSubMeetingId = subMeetingId; String finalSubMeetingId = subMeetingId;
if (meetingIds.stream().noneMatch(item -> item.getMeetingId().equals(meetingId) && Objects.equals(item.getSubMeetingId(), finalSubMeetingId))) { if (meetingIds.stream().noneMatch(item -> item.getMeetingId().equals(meetingId) && Objects.equals(item.getSubMeetingId(), finalSubMeetingId))) {
// log.info("【会议检索】新的会议meetingId->{}", meeting.getMeetingId());
List<CorpRecordsVO.RecordFile> recordFiles = meeting.getRecordFiles(); List<CorpRecordsVO.RecordFile> recordFiles = meeting.getRecordFiles();
//按转录文件时间升序,便于后续的内容拼接 //按转录文件时间升序,便于后续的内容拼接
List<String> recordFileIdList = recordFiles.stream().sorted(Comparator.comparingLong(CorpRecordsVO.RecordFile::getRecordStartTime)) List<String> recordFileIdList = recordFiles.stream().sorted(Comparator.comparingLong(CorpRecordsVO.RecordFile::getRecordStartTime))
.map(CorpRecordsVO.RecordFile::getRecordFileId).collect(Collectors.toList()); .map(CorpRecordsVO.RecordFile::getRecordFileId).collect(Collectors.toList());
// TencentMeetingVO.RecordFile recordFileItem = TencentMeetingVO.RecordFile.builder()
// .recordFileIdList(recordFileIdList).meetingId(meetingId).subMeetingId(subMeetingId).build();
String hostName; String hostName;
//优先使用会议列表中已有的主持人字段 //优先使用会议列表中已有的主持人字段
if (StringUtils.isNotEmpty(meeting.getHostUserId())) { if (StringUtils.isNotEmpty(meeting.getHostUserId())) {
...@@ -211,7 +205,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -211,7 +205,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
hostId = meetingInfo.getCurrentHosts().get(0).getUserid(); hostId = meetingInfo.getCurrentHosts().get(0).getUserid();
hostName = meetingMap.getOrDefault(hostId, null); hostName = meetingMap.getOrDefault(hostId, null);
} else { } else {
log.info("尝试从参会人员列表中获取主持人信息");
// 用户角色 // 用户角色
// 0:普通成员角色 1:创建者角色 2:主持人 3:创建者+主持人 4:游客 5:游客+主持人 6:联席主持人 7:创建者+联席主持人 // 0:普通成员角色 1:创建者角色 2:主持人 3:创建者+主持人 4:游客 5:游客+主持人 6:联席主持人 7:创建者+联席主持人
// 主持人角色 // 主持人角色
...@@ -247,17 +240,20 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -247,17 +240,20 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
// 3. 用户在超管授权了的人员里面 // 3. 用户在超管授权了的人员里面
// 3. 用户自己没有关闭会议纪要功能 // 3. 用户自己没有关闭会议纪要功能
// 满足以上所有则emailGenerateAccess为ture // 满足以上所有则emailGenerateAccess为ture
generateAccess = generateAccess && weComUserMap.containsKey(userDTO.getWid()); if (generateAccess) {
log.info("uid是否绑定企业微信: {}", generateAccess); generateAccess = generateAccess && weComUserMap.containsKey(userDTO.getWid());
log.info("uid是否绑定企业微信: {}", generateAccess);
List<SysUserSyncCategory> categoryList = sysUserSyncService.getCategoryListByUserId(userId); }
List<String> deptIds = categoryList.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList()); if (generateAccess) {
generateAccess = generateAccess && modulePermissionService.checkAdminPermission(deptIds, userId); List<SysUserSyncCategory> categoryList = sysUserSyncService.getCategoryListByUserId(userId);
log.info("超管是否授权给用户: {}", generateAccess); List<String> deptIds = categoryList.stream().map(SysUserSyncCategory::getDeptId).collect(Collectors.toList());
generateAccess = generateAccess && modulePermissionService.checkAdminPermission(deptIds, userId);
generateAccess = generateAccess && modulePermissionService.personalStatus(userId); log.info("超管是否授权给用户: {}", generateAccess);
log.info("个人是否开启纪要功能: {}", generateAccess); }
if (generateAccess) {
generateAccess = generateAccess && modulePermissionService.personalStatus(userId);
log.info("个人是否开启纪要功能: {}", generateAccess);
}
// 是否推送邮箱 // 是否推送邮箱
emailPushAccess = generateAccess && (weComUserMap.containsKey(userDTO.getWid()) ? weComUserMap.get(userDTO.getWid()).getEmailPushAccess() : Boolean.FALSE); emailPushAccess = generateAccess && (weComUserMap.containsKey(userDTO.getWid()) ? weComUserMap.get(userDTO.getWid()).getEmailPushAccess() : Boolean.FALSE);
log.info("是否推送邮箱: {}", emailPushAccess); log.info("是否推送邮箱: {}", emailPushAccess);
...@@ -278,12 +274,11 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -278,12 +274,11 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
.recordFileId(String.join(",", recordFileIdList)) .recordFileId(String.join(",", recordFileIdList))
.email(email) .email(email)
.build(); .build();
// recordFileUrlList.add(recordFileItem);
meetingSaveList.add(meetingItem); meetingSaveList.add(meetingItem);
} }
} catch (Exception e) { } catch (Exception e) {
if (e instanceof NoSuchElementException) { if (e instanceof NoSuchElementException) {
log.error("meetingId: {}, hostId: {}", meetingId, hostId); log.error("智能体没权限, meetingId: {}, hostId: {}", meetingId, hostId);
} else { } else {
log.error(e.getMessage()); log.error(e.getMessage());
} }
...@@ -328,9 +323,9 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -328,9 +323,9 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
@Override @Override
public List<UserDTO> getAccessUserIds(Map<String, String> userIdRelations) { public List<UserDTO> getAccessUserIds(Map<String, String> userIdRelations) {
try { try {
//权限控制 //权限控制-- 管理员和授权用户都包括
List<CoreModulePermissions> auths = authMapper.getAuthByTargetId(permissionApplicationId, permissionTenantId); List<CoreModulePermissions> auths = authMapper.getAuthByTargetId(permissionApplicationId, permissionTenantId);
//授权的部门,type为1的为人员,为0表示部门 //1. 授权的部门,type为1的为人员,为0表示部门
List<CoreModulePermissions> authDepts = auths.stream().filter(item -> item.getType().equals(0)).collect(Collectors.toList()); List<CoreModulePermissions> authDepts = auths.stream().filter(item -> item.getType().equals(0)).collect(Collectors.toList());
List<String> deptPath = new ArrayList<>(); List<String> deptPath = new ArrayList<>();
for (CoreModulePermissions authDept : authDepts) { for (CoreModulePermissions authDept : authDepts) {
...@@ -340,10 +335,11 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -340,10 +335,11 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
} }
//已被授权部门下的userid //已被授权部门下的userid
List<String> accessUserIds = !CollectionUtils.isEmpty(deptPath) ? sysUserSyncMapper.getUsersByDept(deptPath, permissionTenantId) : new ArrayList<>(); List<String> accessUserIds = !CollectionUtils.isEmpty(deptPath) ? sysUserSyncMapper.getUsersByDept(deptPath, permissionTenantId) : new ArrayList<>();
//已被直接授权的人员追加进去
//2. 已被直接授权的人员追加进去
accessUserIds.addAll(auths.stream().filter(item -> item.getType().equals(1)).map(CoreModulePermissions::getRelId).collect(Collectors.toList())); accessUserIds.addAll(auths.stream().filter(item -> item.getType().equals(1)).map(CoreModulePermissions::getRelId).collect(Collectors.toList()));
if (!CollectionUtils.isEmpty(accessUserIds)) { if (!CollectionUtils.isEmpty(accessUserIds)) {
//查出人员邮箱+邮件推送许可 //查出人员邮箱
List<UserDTO> userEmailList = sysUserSyncMapper.getUserEmail(permissionTenantId); List<UserDTO> userEmailList = sysUserSyncMapper.getUserEmail(permissionTenantId);
Map<String, UserDTO> userEmailMap = CollectionUtils.isEmpty(userEmailList) ? new HashMap<>() Map<String, UserDTO> userEmailMap = CollectionUtils.isEmpty(userEmailList) ? new HashMap<>()
: userEmailList.stream().collect(Collectors.toMap(UserDTO::getWid, Function.identity(), (existing, replacement) -> existing)); : userEmailList.stream().collect(Collectors.toMap(UserDTO::getWid, Function.identity(), (existing, replacement) -> existing));
...@@ -357,7 +353,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper, ...@@ -357,7 +353,6 @@ public class TencentMeetingServiceImpl extends ServiceImpl<TecentMeetingMapper,
if (userEmailMap.containsKey(accessUserId)) { if (userEmailMap.containsKey(accessUserId)) {
UserDTO emailMsg = userEmailMap.get(accessUserId); UserDTO emailMsg = userEmailMap.get(accessUserId);
accessUser.setEmail(emailMsg.getEmail()); accessUser.setEmail(emailMsg.getEmail());
accessUser.setEmailPushAccess(emailMsg.getEmailPushAccess());
} }
accessUsers.add(accessUser); accessUsers.add(accessUser);
} }
......
...@@ -100,6 +100,7 @@ public class TencentMeetingApiUtil { ...@@ -100,6 +100,7 @@ public class TencentMeetingApiUtil {
* @return * @return
*/ */
public static MeetingInfo getStartAndEndTimeByMeetingId(String meetingId) { public static MeetingInfo getStartAndEndTimeByMeetingId(String meetingId) {
log.info("查询会议开始结束时间,meetingId: {}", meetingId);
MeetingInfo info = new MeetingInfo(); MeetingInfo info = new MeetingInfo();
AuthenticatorBuilder<JWTAuthenticator> participantsAuthenticatorBuilder = AuthenticatorBuilder<JWTAuthenticator> participantsAuthenticatorBuilder =
new JWTAuthenticator.Builder() new JWTAuthenticator.Builder()
...@@ -139,6 +140,7 @@ public class TencentMeetingApiUtil { ...@@ -139,6 +140,7 @@ public class TencentMeetingApiUtil {
* @throws ClientException * @throws ClientException
*/ */
public static V1HistoryMeetingsUseridGet200Response ApiV1HistoryMeetingsUseridGetRequest(String userId, String meetingCode, String startTime, String endTime) { public static V1HistoryMeetingsUseridGet200Response ApiV1HistoryMeetingsUseridGetRequest(String userId, String meetingCode, String startTime, String endTime) {
log.info("查询用户已结束会议列表, userId: {}, meetingCode: {}", userId, meetingCode);
MeetingsApi.ApiV1HistoryMeetingsUseridGetRequest historyMeetingRequest = MeetingsApi.ApiV1HistoryMeetingsUseridGetRequest historyMeetingRequest =
new MeetingsApi.ApiV1HistoryMeetingsUseridGetRequest.Builder(userId) new MeetingsApi.ApiV1HistoryMeetingsUseridGetRequest.Builder(userId)
.pageSize("20") .pageSize("20")
...@@ -165,6 +167,7 @@ public class TencentMeetingApiUtil { ...@@ -165,6 +167,7 @@ public class TencentMeetingApiUtil {
* @return * @return
*/ */
public static V1MeetingsMeetingIdGet200Response ApiV1MeetingsMeetingIdGetRequest(String meetingId) { public static V1MeetingsMeetingIdGet200Response ApiV1MeetingsMeetingIdGetRequest(String meetingId) {
log.info("根据会议id查询会议详情, meetingId: {}", meetingId);
MeetingsApi.ApiV1MeetingsMeetingIdGetRequest meetingRequest = MeetingsApi.ApiV1MeetingsMeetingIdGetRequest meetingRequest =
new MeetingsApi.ApiV1MeetingsMeetingIdGetRequest.Builder(meetingId) new MeetingsApi.ApiV1MeetingsMeetingIdGetRequest.Builder(meetingId)
.operatorId(tencentAdminUserId) .operatorId(tencentAdminUserId)
...@@ -191,6 +194,7 @@ public class TencentMeetingApiUtil { ...@@ -191,6 +194,7 @@ public class TencentMeetingApiUtil {
* @return * @return
*/ */
public static V1MeetingsMeetingIdParticipantsGet200Response ApiV1MeetingsMeetingIdParticipantsGetRequest(String meetingId, String subMeetingId) { public static V1MeetingsMeetingIdParticipantsGet200Response ApiV1MeetingsMeetingIdParticipantsGetRequest(String meetingId, String subMeetingId) {
log.info("获取参会成员明细, meetingId: {}, subMeetingId: {}", meetingId, subMeetingId);
MeetingsApi.ApiV1MeetingsMeetingIdParticipantsGetRequest participantsRequest = MeetingsApi.ApiV1MeetingsMeetingIdParticipantsGetRequest participantsRequest =
new MeetingsApi.ApiV1MeetingsMeetingIdParticipantsGetRequest new MeetingsApi.ApiV1MeetingsMeetingIdParticipantsGetRequest
.Builder(meetingId).subMeetingId(subMeetingId).operatorId(tencentAdminUserId).operatorIdType("1").build(); .Builder(meetingId).subMeetingId(subMeetingId).operatorId(tencentAdminUserId).operatorIdType("1").build();
...@@ -215,6 +219,7 @@ public class TencentMeetingApiUtil { ...@@ -215,6 +219,7 @@ public class TencentMeetingApiUtil {
* @return * @return
*/ */
public static String ApiV1AddressesRecordFileIdGetRequest(String recordFileId) { public static String ApiV1AddressesRecordFileIdGetRequest(String recordFileId) {
log.info("获取转录文件内容, recordFileId: {}", recordFileId);
//查询录制转写详情 //查询录制转写详情
RecordsApi.ApiV1AddressesRecordFileIdGetRequest addressRequest = RecordsApi.ApiV1AddressesRecordFileIdGetRequest addressRequest =
new RecordsApi.ApiV1AddressesRecordFileIdGetRequest.Builder(recordFileId) new RecordsApi.ApiV1AddressesRecordFileIdGetRequest.Builder(recordFileId)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论