提交 865db7a5 作者: 洪东保

debug

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