Commit 63e13557 by zhangxingmin

push

parent e00f6e6d
......@@ -31,16 +31,17 @@ public class ApiCoSessionController implements ApiCoSessionFeignClient {
private ApiCoSessionService apiCoSessionService;
/**
* 客户创建会话(生成共享码)
* @param request
* 创建协同会话
* @param request 创建会话请求
* @return
*/
@Override
public Result<CreateResponse> create(CreateRequest request) {
return apiCoSessionService.create(request);
}
/**
* 顾问加入会话(输入共享码加入房间,可以多次加入)
* 加入协同会话
* @param request
* @return
*/
......
......@@ -14,6 +14,7 @@ import com.yd.communication.service.model.CoSession;
public interface ApiCoSessionService {
Result<CreateResponse> create(CreateRequest 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.*;
public interface ApiCoSessionFeignClient {
/**
* 客户创建协同会话(生成共享码)
* 创建协同会话
*
* @param request 创建会话请求
* @return 会话信息
......
......@@ -10,4 +10,6 @@ public class RedisConstants {
*/
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 {
private static final long serialVersionUID = 1L;
/**
* 协同房间号(房间ID)
*/
private String roomId;
/**
* 协同房间密码(输入密码进入房间,协同共享码,进入这个协同房间号的密码)
*/
private String roomPwd;
/**
* 控制权持有者类型:owner(资源所有者类型)/participant(参与者类型)
*/
private String controlHolderType;
......
......@@ -10,7 +10,9 @@ import java.util.concurrent.TimeUnit;
public enum RedisEnum {
//协同房间缓存信息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前缀
......
......@@ -11,12 +11,12 @@ import javax.validation.constraints.NotBlank;
@Data
public class JoinRequest {
// /**
// * 协同房间号(房间ID)
// * 客户创建会话时生成的唯一房间标识
// * 示例:room_abc12345
// */
// private String roomId;
/**
* 协同房间号(房间ID)
* 客户创建会话时生成的唯一房间标识
* 示例:room_abc12345
*/
private String roomId;
/**
* 协同房间密码(共享码)
......
......@@ -27,4 +27,14 @@ public class CreateResponse {
* 会话状态:0-进行中,1-已结束,2-已超时
*/
private String status;
/**
* 协同房间二维码(扫码进入房间)
*/
private String roomQrCode;
/**
* 协同房间链接(访问链接进入房间)
*/
private String roomLink;
}
\ No newline at end of file
......@@ -74,6 +74,15 @@
<version>${project.version}</version>
</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;-->
<!-- <dependency>-->
<!-- <groupId>com.aliyun</groupId>-->
......
......@@ -97,12 +97,24 @@ public class CoSession implements Serializable {
private String roomId;
/**
* 协同房间密码(协同共享码,进入这个协同房间号的密码)
* 协同房间密码(输入密码进入房间,协同共享码,进入这个协同房间号的密码)
*/
@TableField("room_pwd")
private String roomPwd;
/**
* 协同房间二维码(扫码进入房间)
*/
@TableField("room_qr_code")
private String roomQrCode;
/**
* 协同房间链接(访问链接进入房间)
*/
@TableField("room_link")
private String roomLink;
/**
* RTC频道前缀,便于区分业务
*/
@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