This commit is contained in:
张良(004796)
2024-01-11 13:38:35 +08:00
parent acccdc9f79
commit fc2b6ef12d
17 changed files with 85 additions and 23 deletions

View File

@@ -1,5 +1,6 @@
package com.ruoyi.cai.chat;
import cn.hutool.core.map.MapUtil;
import com.ruoyi.cai.config.CaiProperties;
import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User;
@@ -9,19 +10,24 @@ 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.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.GuardTotalService;
import com.ruoyi.cai.service.UserCallService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.cai.ws.bean.Room;
import com.ruoyi.cai.ws.constant.RedisConstant;
import com.ruoyi.cai.ws.dto.WsToken;
import com.ruoyi.cai.ws.manager.WebSocketManager;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@@ -43,6 +49,19 @@ public class ChatManager {
private CaiProperties properties;
@Autowired
private GuardTotalService guardTotalService;
@Autowired
private StringRedisTemplate redisTemplate;
private String setWsToken(Long roomId,Long fromUid,Long toUid){
String token = IdManager.nextIdStr();
String tokenKey = String.format(RedisConstant.WS_TOKEN, token);
Map<String,Object> map = new HashMap<>();
map.put("roomId",roomId);
map.put("fromUid",fromUid);
map.put("toUid",toUid);
redisTemplate.opsForHash().putAll(tokenKey,map);
return token;
}
public CallResp call(CallReq callReq){
Long userId = LoginHelper.getUserId();
@@ -64,7 +83,9 @@ public class ChatManager {
UserCall call = userCallService.createCall(fromUser, toUser, anchor);
roomId = webSocketManager.createRoom(call.getId());
}
String weSocketUrl = String.format(properties.getWebSocketUrl(),"token",roomId);
String wsSocketUrlFormat = systemConfigManager.getSystemConfig(SystemConfigEnum.WS_SOCKET_URL);
String token = setWsToken(roomId, fromUser.getId(), toUser.getId());
String weSocketUrl = String.format(wsSocketUrlFormat,token,roomId);
Long guardPrice = systemConfigManager.getSystemConfigOfLong(SystemConfigEnum.GUARD_PRICE);
// 获取鉴黄规则 TODO
CallResp callResp = new CallResp();