视频会议

This commit is contained in:
18792927508
2024-01-19 11:09:30 +08:00
parent 3164ff90a4
commit fd4a2e4c23
19 changed files with 1131 additions and 34 deletions
@@ -1,11 +1,13 @@
package com.ruoyi.web.controller.wisdomarbitrate.mscase;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.BookingVO;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationReq;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO;
import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService;
@@ -33,7 +35,7 @@ public class MsCaseApplicationController extends BaseController {
@GetMapping("/list")
public TableDataInfo page(MsCaseApplicationReq req)
{
startPage();
//startPage();
List<MsCaseApplicationVO> list = caseApplicationService.list(req);
return getDataTable(list);
}
@@ -150,5 +152,54 @@ public class MsCaseApplicationController extends BaseController {
public AjaxResult listMediator( ) {
return caseApplicationService.listMediator();
}
/**
* 保存预约
* @param
* @return
*/
@PostMapping("/updateBooking")
public AjaxResult updateBooking(@RequestBody BookingVO vo ) {
if(vo.getId()==null || CollectionUtil.isEmpty(vo.getHerDates())|| CollectionUtil.isEmpty(vo.getUserList())){
return error("参数校验失败");
}
return caseApplicationService.updateBooking(vo);
}
/**
* 核实调解员
* @param
* @return
*/
@PostMapping("/verifyMediator")
public AjaxResult verifyMediator(@RequestBody BookingVO vo ) {
if((vo.getId() == null && StrUtil.isEmpty(vo.getBatchNumber()))
|| vo.getCaseFlowId()==null
|| CollectionUtil.isEmpty(vo.getUserList())){
return error("参数校验失败");
}
return caseApplicationService.verifyMediator(vo);
}
/**
* 确认调解时间
* @param
* @return
*/
@PostMapping("/confirmDate")
public AjaxResult confirmDate(@RequestBody BookingVO vo ) {
if((vo.getId() == null && StrUtil.isEmpty(vo.getBatchNumber()))
|| vo.getCaseFlowId()==null
|| CollectionUtil.isEmpty(vo.getHerDates())){
return error("参数校验失败");
}
return caseApplicationService.verifyMediator(vo);
}
/**
* 查询预约信息
* @param
* @return
*/
@GetMapping("/selectReservation")
public AjaxResult selectReservation(@RequestParam("id") Long id ) {
return caseApplicationService.selectReservation(id);
}
}
@@ -0,0 +1,172 @@
package com.ruoyi.web.controller.wisdomarbitrate.mscase;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsReservedConferenceVO;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.SendRoomNoMessageVO;
import com.ruoyi.wisdomarbitrate.domain.vo.mscase.VideoCallBackVO;
import com.ruoyi.wisdomarbitrate.service.mscase.VideoConferenceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* 视频会议控制层
* @Author wangqiong
* @Date 2024/01/8
* @Version V1.0
*/
@RestController
@RequestMapping("/video")
public class MsVideoConferenceController extends BaseController {
@Autowired
private VideoConferenceService videoService;
/**
* 根据案件ID查询视频
* @param caseId 案件id
* @return
*/
@GetMapping("/videoList")
public AjaxResult videoList(@RequestParam("caseId") Long caseId) {
return videoService.videoList(caseId);
}
/**
* 获取userSign
* @param userId
* @return
*/
@Anonymous
@GetMapping("/generateUserSign")
public AjaxResult generateUserSign(@RequestParam(required = true) String userId){
if(StrUtil.isEmpty(userId)){
error("参数校验失败");
}
return AjaxResult.success(videoService.generateUserSign(userId));
}
/**
* 生成房间号
* @return
*/
@Anonymous
@GetMapping("/createRoomId")
public AjaxResult createRoomId(@RequestParam("caseId") Long caseId) {
return success(videoService.createRoomId(caseId));
}
/**
* 根据案件id查询已预约的会议
* @param caseId
* @return
*/
@Anonymous
@GetMapping("/reserveConferenceList")
public AjaxResult reserveConferenceList( @RequestParam("caseId") Long caseId) {
return success(videoService.reserveConferenceList(caseId));
}
/**
* 预约会议
* @param reservedConferenceVO
* @return
*/
@PostMapping("/reservedConference")
public AjaxResult reservedConference(@Validated @RequestBody MsReservedConferenceVO reservedConferenceVO) throws Exception {
return videoService.reservedConference(reservedConferenceVO);
}
/**
* 从腾讯云下载文件到本地
* @param
* @return
*/
@Anonymous
@PostMapping("/videoRollBack")
public AjaxResult videoRollBack( @RequestBody VideoCallBackVO vo) {
if(StrUtil.isNotEmpty(vo.getFileId()) && StrUtil.isNotEmpty(vo.getVideoUrl()) && StrUtil.isNotEmpty(vo.getRoomId())) {
videoService.videoRollBack(vo.getFileId(), vo.getVideoUrl(), vo.getRoomId());
}
return success();
}
/**
* 根据房间号绑定案件ID
* @param
* @return
*/
@Anonymous
@PostMapping("/bindCaseId")
public AjaxResult bindCaseId(@Valid @RequestBody SendRoomNoMessageVO vo) {
return videoService.bindCaseId(vo.getId(),vo.getRoomNo());
}
/**
* 开启腾讯云录制
* @param vo
* @return
* @throws Exception
*/
@Anonymous
@PostMapping("/openCloudRecording")
private AjaxResult openCloudRecording( @RequestBody MsReservedConferenceVO vo) {
if(vo.getCaseId()==null || vo.getRoomId()==null){
return AjaxResult.error("参数错误");
}
return videoService.openCloudRecording(vo.getCaseId(),vo.getRoomId());
}
/**
* 关闭腾讯云录制
* @param taskId 任务ID
* @return
*/
@Anonymous
@PostMapping("/closeDeleteCloudRecording")
public AjaxResult closeDeleteCloudRecording(@RequestParam("taskId") String taskId){
return videoService.closeDeleteCloudRecording(taskId);
}
/**
* 解散房间
* @param reservedConferenceVO
* @return
*/
@Anonymous
@PostMapping("/dissolveRoom")
public AjaxResult dissolveRoom( @RequestBody MsReservedConferenceVO reservedConferenceVO) {
if( reservedConferenceVO.getRoomId()==null){
return error("参数校验失败");
}
return videoService.dissolveRoom(reservedConferenceVO.getRoomId());
}
/**
* 根据userId查询该用户是否是秘书
* @param userId
* @return
*/
@Anonymous
@GetMapping("secretaryRoleByUserId")
public AjaxResult secretaryRoleByUserId( @RequestParam(value = "userId",required = true) Long userId) {
return videoService.secretaryRoleByUserId(userId);
}
/**
* 根据html字符串转pdf并和案件关联
* @param reservedConferenceVO
* @return
*/
@Anonymous
@PostMapping("htmlToPDF")
public AjaxResult secretaryRoleByUserId( @RequestBody MsReservedConferenceVO reservedConferenceVO) {
if( reservedConferenceVO.getCaseId()==null || StrUtil.isEmpty(reservedConferenceVO.getHtmlContent())){
return success();
}
return videoService.htmlToPDF(reservedConferenceVO);
}
}