LiveRoomController.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.ym.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.ym.mec.common.entity.ImRoomMessage;
  4. import com.ym.pojo.IMApiResultInfo;
  5. import com.ym.pojo.RecordNotify;
  6. import com.ym.service.LiveRoomService;
  7. import io.swagger.annotations.ApiOperation;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestBody;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. /**
  15. * @author hgw
  16. * Created by 2022-02-21
  17. */
  18. @RestController
  19. @RequestMapping("/liveRoom")
  20. @Slf4j
  21. public class LiveRoomController {
  22. @Autowired
  23. private LiveRoomService liveRoomService;
  24. @ApiOperation("创建直播房间")
  25. @PostMapping(value = "/create")
  26. public IMApiResultInfo createLiveRoom(String roomId, String roomName) throws Exception {
  27. return liveRoomService.createLiveRoom(roomId, roomName);
  28. }
  29. @ApiOperation("销毁直播房间")
  30. @PostMapping(value = "/destroy")
  31. public IMApiResultInfo destroyLiveRoom(String roomId) throws Exception {
  32. return liveRoomService.destroyLiveRoom(roomId);
  33. }
  34. @ApiOperation("向房间发送消息")
  35. @PostMapping(value = "/publishRoomMsg")
  36. public IMApiResultInfo publishRoomTextMsg(@RequestBody ImRoomMessage message) {
  37. return liveRoomService.publishRoomMessage(message);
  38. }
  39. @ApiOperation("录制结果回调")
  40. @RequestMapping(value = "/recordSync")
  41. public void recordSync(@RequestBody String body) {
  42. log.info("recordSync body:{}", body);
  43. RecordNotify recordNotify = JSONObject.parseObject(body, RecordNotify.class);
  44. liveRoomService.recordSync(recordNotify);
  45. }
  46. @ApiOperation("录制直播")
  47. @RequestMapping(value = "/startRecord")
  48. public void startRecord(String roomId) throws Exception {
  49. liveRoomService.startRecord(roomId);
  50. }
  51. @ApiOperation("结束录制直播")
  52. @RequestMapping(value = "/stopRecord")
  53. public void stopRecord(String roomId) throws Exception {
  54. liveRoomService.stopRecord(roomId);
  55. }
  56. @ApiOperation("查询用户是否在聊天室")
  57. @RequestMapping(value = "/userExistInRoom")
  58. public boolean userExistInRoom(String chatroomId, String userId) {
  59. return liveRoomService.userExistInRoom(chatroomId, userId);
  60. }
  61. @ApiOperation("查询用户是否在聊天室")
  62. @PostMapping(value = "/checkOnline")
  63. public boolean checkOnline(String userId) {
  64. return liveRoomService.checkOnline(userId);
  65. }
  66. }