From f7485b90669d0d9f4f4c77628c5e37998e360c6f Mon Sep 17 00:00:00 2001 From: dute7liang <383200134@qq.com> Date: Thu, 11 Jan 2024 22:10:29 +0800 Subject: [PATCH] init --- .../java/com/ruoyi/cai/chat/ChatManager.java | 9 +++-- .../cai/controller/app/RoomController.java | 38 +++++++++++++++++++ .../cai/dto/app/vo/chat/GetRoomResp.java | 4 -- 3 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/RoomController.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java index 12850294..0a3c7bf7 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java @@ -52,10 +52,11 @@ public class ChatManager { @Autowired private StringRedisTemplate redisTemplate; - private String setWsToken(Long roomId,Long fromUid,Long toUid){ + private String setWsToken(Long roomId,Long fromUid,Long toUid,Long userId){ String token = IdManager.nextIdStr(); String tokenKey = String.format(RedisConstant.WS_TOKEN, token); Map map = new HashMap<>(); + map.put("userId",userId); map.put("roomId",roomId); map.put("fromUid",fromUid); map.put("toUid",toUid); @@ -84,7 +85,7 @@ public class ChatManager { roomId = webSocketManager.createRoom(call.getId()); } String wsSocketUrlFormat = systemConfigManager.getSystemConfig(SystemConfigEnum.WS_SOCKET_URL); - String token = setWsToken(roomId, fromUser.getId(), toUser.getId()); + String token = setWsToken(roomId, fromUser.getId(), toUser.getId(),userId); String weSocketUrl = String.format(wsSocketUrlFormat,token,roomId); Long guardPrice = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.GUARD_PRICE); // 获取鉴黄规则 TODO @@ -125,7 +126,9 @@ public class ChatManager { User fromUser = userMap.get(userCall.getFromUid()); User toUser = userMap.get(userCall.getToUid()); Anchor anchor = anchorService.getByUserId(toUser.getId()); - String weSocketUrl = String.format(properties.getWebSocketUrl(),"token",roomId); + String wsSocketUrlFormat = systemConfigManager.getSystemConfig(SystemConfigEnum.WS_SOCKET_URL); + String token = setWsToken(userCall.getId(), fromUser.getId(), toUser.getId(), userId); + String weSocketUrl = String.format(wsSocketUrlFormat,token,roomId); GetRoomResp getRoomResp = new GetRoomResp(); getRoomResp.setRoomId(userCall.getId()+""); getRoomResp.setFromUid(userCall.getFromUid()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/RoomController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/RoomController.java new file mode 100644 index 00000000..c2d30926 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/RoomController.java @@ -0,0 +1,38 @@ +package com.ruoyi.cai.controller.app; + +import com.ruoyi.cai.chat.ChatManager; +import com.ruoyi.cai.dto.app.query.CallReq; +import com.ruoyi.cai.dto.app.vo.chat.CallResp; +import com.ruoyi.cai.dto.app.vo.chat.GetRoomResp; +import com.ruoyi.common.core.domain.R; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; + +@RestController +@RequestMapping("/api/room") +@Tag(name = "直播相关接口") +@Validated +public class RoomController { + + @Autowired + private ChatManager chatManager; + + @PostMapping("/call") + @Operation(summary = "发起直播") + public R call(@RequestBody CallReq req){ + CallResp call = chatManager.call(req); + return R.ok(call); + } + + @GetMapping("/getRoom") + @Operation(summary = "获取房间信息") + public R getRoom(@NotEmpty(message = "房间不存在") String roomId){ + GetRoomResp room = chatManager.getRoom(roomId); + return R.ok(room); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/chat/GetRoomResp.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/chat/GetRoomResp.java index d55852d2..ca20a623 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/chat/GetRoomResp.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/chat/GetRoomResp.java @@ -23,10 +23,6 @@ public class GetRoomResp { private String toAvatar; @Schema(description = "wsUrl") private String socketUrl; - @Schema(description = "技能名称") - private String skillName; - @Schema(description = "技能头像") - private String skillIcon; @Schema(description = "价格") private Long price; @Schema(description = "评分")