Commit 63e13557 by zhangxingmin

push

parent e00f6e6d
...@@ -31,16 +31,17 @@ public class ApiCoSessionController implements ApiCoSessionFeignClient { ...@@ -31,16 +31,17 @@ public class ApiCoSessionController implements ApiCoSessionFeignClient {
private ApiCoSessionService apiCoSessionService; private ApiCoSessionService apiCoSessionService;
/** /**
* 客户创建会话(生成共享码) * 创建协同会话
* @param request * @param request 创建会话请求
* @return * @return
*/ */
@Override
public Result<CreateResponse> create(CreateRequest request) { public Result<CreateResponse> create(CreateRequest request) {
return apiCoSessionService.create(request); return apiCoSessionService.create(request);
} }
/** /**
* 顾问加入会话(输入共享码加入房间,可以多次加入) * 加入协同会话
* @param request * @param request
* @return * @return
*/ */
......
...@@ -14,6 +14,7 @@ import com.yd.communication.service.model.CoSession; ...@@ -14,6 +14,7 @@ import com.yd.communication.service.model.CoSession;
public interface ApiCoSessionService { public interface ApiCoSessionService {
Result<CreateResponse> create(CreateRequest request); Result<CreateResponse> create(CreateRequest request);
Result<JoinResponse> join(JoinRequest request); Result<JoinResponse> join(JoinRequest request);
......
package com.yd.communication.api.utils;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class QRCodeUtils {
/**
* 生成二维码图片的字节数组(PNG格式)
*
* @param content 二维码内容(如URL)
* @param width 图片宽度(像素)
* @param height 图片高度(像素)
* @return PNG图片的字节数组
*/
public static byte[] generateQRCode(String content, int width, int height) {
try {
Map<EncodeHintType, Object> hints = new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
hints.put(EncodeHintType.MARGIN, 1); // 边距
QRCodeWriter writer = new QRCodeWriter();
BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "PNG", baos);
return baos.toByteArray();
} catch (Exception e) {
log.error("生成二维码失败,content={}, width={}, height={}", content, width, height, e);
throw new RuntimeException("生成二维码失败", e);
}
}
}
\ No newline at end of file
...@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.*;
public interface ApiCoSessionFeignClient { public interface ApiCoSessionFeignClient {
/** /**
* 客户创建协同会话(生成共享码) * 创建协同会话
* *
* @param request 创建会话请求 * @param request 创建会话请求
* @return 会话信息 * @return 会话信息
......
...@@ -10,4 +10,6 @@ public class RedisConstants { ...@@ -10,4 +10,6 @@ public class RedisConstants {
*/ */
public static final String ROOM_KEY_PREFIX = "room:"; public static final String ROOM_KEY_PREFIX = "room:";
public static final String ROOM_LINK_KEY_PREFIX = "room:link:";
} }
...@@ -13,6 +13,16 @@ public class RoomRedisInfoDTO implements Serializable { ...@@ -13,6 +13,16 @@ public class RoomRedisInfoDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 协同房间号(房间ID)
*/
private String roomId;
/**
* 协同房间密码(输入密码进入房间,协同共享码,进入这个协同房间号的密码)
*/
private String roomPwd;
/**
* 控制权持有者类型:owner(资源所有者类型)/participant(参与者类型) * 控制权持有者类型:owner(资源所有者类型)/participant(参与者类型)
*/ */
private String controlHolderType; private String controlHolderType;
......
...@@ -10,7 +10,9 @@ import java.util.concurrent.TimeUnit; ...@@ -10,7 +10,9 @@ import java.util.concurrent.TimeUnit;
public enum RedisEnum { public enum RedisEnum {
//协同房间缓存信息redis参数 //协同房间缓存信息redis参数
ROOM(RedisConstants.ROOM_KEY_PREFIX,600000000,TimeUnit.MINUTES), ROOM(RedisConstants.ROOM_KEY_PREFIX,120,TimeUnit.MINUTES),
//房间链接缓存信息redis参数
ROOM_LINK(RedisConstants.ROOM_KEY_PREFIX,120,TimeUnit.MINUTES),
; ;
//缓存key前缀 //缓存key前缀
......
...@@ -11,12 +11,12 @@ import javax.validation.constraints.NotBlank; ...@@ -11,12 +11,12 @@ import javax.validation.constraints.NotBlank;
@Data @Data
public class JoinRequest { public class JoinRequest {
// /** /**
// * 协同房间号(房间ID) * 协同房间号(房间ID)
// * 客户创建会话时生成的唯一房间标识 * 客户创建会话时生成的唯一房间标识
// * 示例:room_abc12345 * 示例:room_abc12345
// */ */
// private String roomId; private String roomId;
/** /**
* 协同房间密码(共享码) * 协同房间密码(共享码)
......
...@@ -27,4 +27,14 @@ public class CreateResponse { ...@@ -27,4 +27,14 @@ public class CreateResponse {
* 会话状态:0-进行中,1-已结束,2-已超时 * 会话状态:0-进行中,1-已结束,2-已超时
*/ */
private String status; private String status;
/**
* 协同房间二维码(扫码进入房间)
*/
private String roomQrCode;
/**
* 协同房间链接(访问链接进入房间)
*/
private String roomLink;
} }
\ No newline at end of file
...@@ -74,6 +74,15 @@ ...@@ -74,6 +74,15 @@
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
</dependency>
<!-- &lt;!&ndash; 阿里云 Java SDK 核心库 &ndash;&gt;--> <!-- &lt;!&ndash; 阿里云 Java SDK 核心库 &ndash;&gt;-->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>com.aliyun</groupId>--> <!-- <groupId>com.aliyun</groupId>-->
......
...@@ -97,12 +97,24 @@ public class CoSession implements Serializable { ...@@ -97,12 +97,24 @@ public class CoSession implements Serializable {
private String roomId; private String roomId;
/** /**
* 协同房间密码(协同共享码,进入这个协同房间号的密码) * 协同房间密码(输入密码进入房间,协同共享码,进入这个协同房间号的密码)
*/ */
@TableField("room_pwd") @TableField("room_pwd")
private String roomPwd; private String roomPwd;
/** /**
* 协同房间二维码(扫码进入房间)
*/
@TableField("room_qr_code")
private String roomQrCode;
/**
* 协同房间链接(访问链接进入房间)
*/
@TableField("room_link")
private String roomLink;
/**
* RTC频道前缀,便于区分业务 * RTC频道前缀,便于区分业务
*/ */
@TableField("channel_prefix") @TableField("channel_prefix")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment