temp jitsi
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package org.xyzh.api.workcase.service;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
|
||||
/**
|
||||
* @description Jitsi Meet JWT Token服务接口
|
||||
* @filename JitsiTokenService.java
|
||||
* @author claude
|
||||
* @copyright xyzh
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
public interface JitsiTokenService {
|
||||
|
||||
/**
|
||||
* @description 生成Jitsi Meet JWT Token
|
||||
* @param roomName Jitsi房间名
|
||||
* @param userId 用户ID
|
||||
* @param userName 用户名称
|
||||
* @param isModerator 是否为主持人
|
||||
* @return JWT Token字符串
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
String generateJwtToken(String roomName, String userId, String userName, boolean isModerator);
|
||||
|
||||
/**
|
||||
* @description 验证JWT Token是否有效
|
||||
* @param token JWT Token
|
||||
* @return boolean
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
boolean validateJwtToken(String token);
|
||||
|
||||
/**
|
||||
* @description 构建Jitsi Meet iframe URL
|
||||
* @param roomName Jitsi房间名
|
||||
* @param jwtToken JWT Token
|
||||
* @param config Jitsi配置项(可选)
|
||||
* @return iframe URL字符串
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
String buildIframeUrl(String roomName, String jwtToken, JSONObject config);
|
||||
|
||||
/**
|
||||
* @description 生成唯一的Jitsi房间名
|
||||
* @param workcaseId 工单ID
|
||||
* @return 房间名字符串
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
String generateRoomName(String workcaseId);
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package org.xyzh.api.workcase.service;
|
||||
|
||||
import org.xyzh.api.workcase.dto.TbVideoMeetingDTO;
|
||||
import org.xyzh.api.workcase.vo.VideoMeetingVO;
|
||||
import org.xyzh.common.core.domain.ResultDomain;
|
||||
|
||||
/**
|
||||
* @description 视频会议服务接口,管理Jitsi Meet视频会议
|
||||
* @filename VideoMeetingService.java
|
||||
* @author claude
|
||||
* @copyright xyzh
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
public interface VideoMeetingService {
|
||||
|
||||
/**
|
||||
* @description 创建视频会议
|
||||
* @param meetingDTO 会议信息
|
||||
* @param userId 创建者用户ID
|
||||
* @return ResultDomain<VideoMeetingVO>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<VideoMeetingVO> createMeeting(TbVideoMeetingDTO meetingDTO);
|
||||
|
||||
/**
|
||||
* @description 获取会议信息
|
||||
* @param meetingId 会议ID
|
||||
* @param userId 请求用户ID(用于权限验证)
|
||||
* @return ResultDomain<VideoMeetingVO>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<VideoMeetingVO> getMeetingInfo(String meetingId, String userId);
|
||||
|
||||
/**
|
||||
* @description 验证用户是否有权访问会议
|
||||
* @param meetingId 会议ID
|
||||
* @param userId 用户ID
|
||||
* @return ResultDomain<Boolean>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<Boolean> validateMeetingAccess(String meetingId, String userId);
|
||||
|
||||
/**
|
||||
* @description 生成用户专属的会议访问URL(包含用户专属JWT Token)
|
||||
* @param meetingId 会议ID
|
||||
* @param userId 用户ID
|
||||
* @return ResultDomain<VideoMeetingVO>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<VideoMeetingVO> generateUserMeetingUrl(String meetingId, String userId);
|
||||
|
||||
/**
|
||||
* @description 开始会议(更新状态为ongoing)
|
||||
* @param meetingId 会议ID
|
||||
* @return ResultDomain<Boolean>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<Boolean> startMeeting(String meetingId);
|
||||
|
||||
/**
|
||||
* @description 结束会议(更新状态为ended)
|
||||
* @param meetingId 会议ID
|
||||
* @return ResultDomain<VideoMeetingVO>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<VideoMeetingVO> endMeeting(String meetingId);
|
||||
|
||||
/**
|
||||
* @description 获取聊天室当前活跃的会议
|
||||
* @param roomId 聊天室ID
|
||||
* @return ResultDomain<VideoMeetingVO>
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
ResultDomain<VideoMeetingVO> getActiveMeetingByRoom(String roomId);
|
||||
|
||||
/**
|
||||
* @description 检查用户是否为聊天室成员(内部方法)
|
||||
* @param roomId 聊天室ID
|
||||
* @param userId 用户ID
|
||||
* @return boolean
|
||||
* @author claude
|
||||
* @since 2025-12-25
|
||||
*/
|
||||
boolean isMemberOfRoom(String roomId, String userId);
|
||||
}
|
||||
Reference in New Issue
Block a user