123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package com.ym.controller;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.ym.common.ETencentImCallbackCommand;
- import com.ym.mec.common.entity.ImRoomMessage;
- import com.ym.pojo.IMApiResultInfo;
- import com.ym.pojo.RecordNotify;
- import com.ym.pojo.TencentData;
- import com.ym.pojo.TencentImCallbackResult;
- import com.ym.service.LiveRoomService;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- /**
- * @author hgw
- * Created by 2022-02-21
- */
- @RestController
- @RequestMapping("/liveRoom")
- @Slf4j
- public class LiveRoomController {
- @Autowired
- private LiveRoomService liveRoomService;
- @ApiOperation("创建直播房间")
- @PostMapping(value = "/create")
- public IMApiResultInfo createLiveRoom(String roomId, String roomName) throws Exception {
- return liveRoomService.createLiveRoom(roomId, roomName);
- }
- @ApiOperation("销毁直播房间")
- @PostMapping(value = "/destroy")
- public IMApiResultInfo destroyLiveRoom(String roomId) throws Exception {
- return liveRoomService.destroyLiveRoom(roomId);
- }
- @ApiOperation("向房间发送消息")
- @PostMapping(value = "/publishRoomMsg")
- public IMApiResultInfo publishRoomTextMsg(@RequestBody ImRoomMessage message) {
- return liveRoomService.publishRoomMessage(message);
- }
- @ApiOperation("录制结果回调")
- @RequestMapping(value = "/recordSync")
- public void recordSync(@RequestBody String body) {
- log.info("recordSync body:{}", body);
- RecordNotify recordNotify = JSONObject.parseObject(body, RecordNotify.class);
- liveRoomService.recordSync(recordNotify);
- }
- @ApiOperation("录制直播")
- @RequestMapping(value = "/startRecord")
- public void startRecord(String roomId, String videoResolution) throws Exception {
- liveRoomService.startRecord(roomId, videoResolution);
- }
- @ApiOperation("结束录制直播")
- @RequestMapping(value = "/stopRecord")
- public void stopRecord(String roomId) throws Exception {
- liveRoomService.stopRecord(roomId);
- }
- @ApiOperation("查询用户是否在聊天室")
- @RequestMapping(value = "/userExistInRoom")
- public boolean userExistInRoom(String chatroomId, String userId) {
- return liveRoomService.userExistInRoom(chatroomId, userId);
- }
- @ApiOperation("查询用户是否在聊天室")
- @PostMapping(value = "/checkOnline")
- public boolean checkOnline(String userId) {
- return liveRoomService.checkOnline(userId);
- }
- @ApiOperation("添加禁言成员-默认禁言120分钟")
- @PostMapping(value = "/addUserUnableSpeak")
- public boolean addUserUnableSpeak(String roomUid, String userId) {
- return liveRoomService.addUserUnableSpeak(roomUid, userId);
- }
- @ApiOperation("移除禁言成员")
- @PostMapping(value = "/removeUserUnableSpeak")
- public boolean removeUserUnableSpeak(String roomUid, String userId) {
- return liveRoomService.removeUserUnableSpeak(roomUid, userId);
- }
- /**
- * https://doc.rongcloud.cn/imserver/server/v1/chatroom/status
- */
- @ApiOperation("聊天室状态同步")
- @RequestMapping(value = "/syncChatRoomStatus")
- public void syncChatRoomStatus(@RequestBody String body) {
- log.info("syncChatRoomStatus body:{}", body);
- }
- @ApiOperation("腾讯im 回调接口")
- @PostMapping(value = "/tencentImCallback")
- public TencentImCallbackResult tencentImCallback(@RequestBody String body, HttpServletRequest request) {
- log.info("tencentImCallback body:{}", body);
- log.info("tencentImCallback request param:{}", JSON.toJSONString(request.getParameterMap()));
- if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKONMEMBERSTATECHANGE.name())) {
- TencentData.CallbackOnMemberStateChange callbackOnMemberStateChange = TencentData.CallbackOnMemberStateChange.toObject(
- body);
- log.debug("callbackOnMemberStateChange: {}", callbackOnMemberStateChange);
- } else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERMEMBEREXIT.name())) {
- TencentData.CallbackAfterMemberExit callbackAfterMemberExit = TencentData.CallbackAfterMemberExit.toObject(
- body);
- log.debug("CallbackAfterMemberExit: {}", callbackAfterMemberExit);
- } else if(request.getParameter("CallbackCommand").equals(ETencentImCallbackCommand.GROUP_CALLBACKAFTERNEWMEMBERJOIN.name())) {
- TencentData.CallbackAfterNewMemberJoin callbackAfterNewMemberJoin = TencentData.CallbackAfterNewMemberJoin.toObject(
- body);
- log.debug("CallbackAfterNewMemberJoin: {}", callbackAfterNewMemberJoin);
- }
- return new TencentImCallbackResult();
- }
- }
|