Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-communication
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-communication
Commits
d48feaf4
Commit
d48feaf4
authored
Aug 31, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
f95f20db
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
19 deletions
+31
-19
yd-communication-api/src/main/java/com/yd/communication/api/service/impl/ApiCoSessionServiceImpl.java
+16
-12
yd-communication-feign/src/main/java/com/yd/communication/feign/enums/RedisEnum.java
+3
-2
yd-communication-feign/src/main/java/com/yd/communication/feign/response/CreateResponse.java
+6
-5
yd-communication-feign/src/main/java/com/yd/communication/feign/response/JoinResponse.java
+6
-0
No files found.
yd-communication-api/src/main/java/com/yd/communication/api/service/impl/ApiCoSessionServiceImpl.java
View file @
d48feaf4
...
@@ -290,11 +290,15 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
...
@@ -290,11 +290,15 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
}
}
// 2. 构建房间链接
// 2. 构建房间链接
String
roomLink
=
roomBaseUrl
+
"&roomId="
+
session
.
getRoomId
()
+
"&pwd="
+
session
.
getRoomPwd
();
//纯链接
log
.
info
(
"【创建会话】生成房间链接: {}"
,
roomLink
);
String
roomLink
=
roomBaseUrl
+
"&accessMethod=2&roomId="
+
session
.
getRoomId
()
+
"&pwd="
+
session
.
getRoomPwd
();
//二维码里面的链接
String
qrCodeRoomLink
=
roomBaseUrl
+
"&accessMethod=1&roomId="
+
session
.
getRoomId
()
+
"&pwd="
+
session
.
getRoomPwd
();
log
.
info
(
"【创建会话】生成房间纯链接: {}"
,
roomLink
);
log
.
info
(
"【创建会话】生成房间二维码里面的链接: {}"
,
qrCodeRoomLink
);
// 3. 生成二维码图片字节数组
// 3. 生成二维码图片字节数组
byte
[]
qrCodeBytes
=
QRCodeUtils
.
generateQRCode
(
r
oomLink
,
300
,
300
);
byte
[]
qrCodeBytes
=
QRCodeUtils
.
generateQRCode
(
qrCodeR
oomLink
,
300
,
300
);
// 4. 将字节数组转换为 MultipartFile
// 4. 将字节数组转换为 MultipartFile
String
fileName
=
session
.
getCoSessionBizId
()
+
".png"
;
String
fileName
=
session
.
getCoSessionBizId
()
+
".png"
;
...
@@ -332,10 +336,10 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
...
@@ -332,10 +336,10 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
iCoSessionService
.
saveOrUpdate
(
session
);
iCoSessionService
.
saveOrUpdate
(
session
);
// 设置房间链接失效时间(用于扫码和链接直接访问)
// 设置房间链接失效时间(用于扫码和链接直接访问)
redisUtil
.
setCacheObject
(
RedisEnum
.
ROOM_LINK
.
getPrefix
()
+
session
.
getRoomId
()
+
":"
+
session
.
getRoomPwd
(),
//
redisUtil.setCacheObject(RedisEnum.ROOM_LINK.getPrefix() + session.getRoomId() + ":" + session.getRoomPwd(),
session
.
getRoomLink
(),
//
session.getRoomLink(),
RedisEnum
.
ROOM_LINK
.
getTimeout
(),
//
RedisEnum.ROOM_LINK.getTimeout(),
RedisEnum
.
ROOM_LINK
.
getTimeUnit
());
//
RedisEnum.ROOM_LINK.getTimeUnit());
// 计算链接失效时间点
// 计算链接失效时间点
long
expireMillis
=
RedisEnum
.
ROOM_LINK
.
getTimeUnit
().
toMillis
(
RedisEnum
.
ROOM_LINK
.
getTimeout
());
long
expireMillis
=
RedisEnum
.
ROOM_LINK
.
getTimeUnit
().
toMillis
(
RedisEnum
.
ROOM_LINK
.
getTimeout
());
...
@@ -349,7 +353,7 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
...
@@ -349,7 +353,7 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
response
.
setStatus
(
session
.
getStatus
());
response
.
setStatus
(
session
.
getStatus
());
response
.
setRoomLink
(
roomLink
);
response
.
setRoomLink
(
roomLink
);
response
.
setRoomQrCode
(
roomQrCodeUrl
);
response
.
setRoomQrCode
(
roomQrCodeUrl
);
response
.
setExpirationTime
(
expirationDate
);
//
response.setExpirationTime(expirationDate);
log
.
info
(
"【创建会话】成功,roomId={}, sessionBizId={}"
,
session
.
getRoomId
(),
session
.
getCoSessionBizId
());
log
.
info
(
"【创建会话】成功,roomId={}, sessionBizId={}"
,
session
.
getRoomId
(),
session
.
getCoSessionBizId
());
return
Result
.
success
(
response
);
return
Result
.
success
(
response
);
...
@@ -417,10 +421,10 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
...
@@ -417,10 +421,10 @@ public class ApiCoSessionServiceImpl implements ApiCoSessionService {
log
.
info
(
"【加入会话-内部】开始, roomId={}, roomPwd={}, participantId={}, participantType={}"
,
roomId
,
roomPwd
,
participantId
,
participantType
);
log
.
info
(
"【加入会话-内部】开始, roomId={}, roomPwd={}, participantId={}, participantType={}"
,
roomId
,
roomPwd
,
participantId
,
participantType
);
try
{
try
{
// 校验房间链接是否失效
// 校验房间链接是否失效
String
roomLink
=
redisUtil
.
getCacheObject
(
RedisEnum
.
ROOM_LINK
.
getPrefix
()
+
roomId
+
":"
+
roomPwd
);
//
String roomLink = redisUtil.getCacheObject(RedisEnum.ROOM_LINK.getPrefix() + roomId + ":" + roomPwd);
if
(
StringUtils
.
isBlank
(
roomLink
))
{
//
if (StringUtils.isBlank(roomLink)) {
throw
new
BusinessException
(
ResultCode
.
LINK_INVALID
.
getCode
(),
"访问链接已失效,请重新生成"
);
//
throw new BusinessException(ResultCode.LINK_INVALID.getCode(), "访问链接已失效,请重新生成");
}
//
}
LambdaQueryWrapper
<
CoSession
>
wrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
CoSession
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
CoSession:
:
getRoomId
,
roomId
)
wrapper
.
eq
(
CoSession:
:
getRoomId
,
roomId
)
.
eq
(
CoSession:
:
getRoomPwd
,
roomPwd
)
.
eq
(
CoSession:
:
getRoomPwd
,
roomPwd
)
...
...
yd-communication-feign/src/main/java/com/yd/communication/feign/enums/RedisEnum.java
View file @
d48feaf4
...
@@ -10,9 +10,10 @@ import java.util.concurrent.TimeUnit;
...
@@ -10,9 +10,10 @@ import java.util.concurrent.TimeUnit;
public
enum
RedisEnum
{
public
enum
RedisEnum
{
//协同房间缓存信息redis参数
//协同房间缓存信息redis参数
ROOM
(
RedisConstants
.
ROOM_KEY_PREFIX
,
1
20
,
TimeUnit
.
MINUTE
S
),
ROOM
(
RedisConstants
.
ROOM_KEY_PREFIX
,
1
,
TimeUnit
.
DAY
S
),
//房间链接缓存信息redis参数
//房间链接缓存信息redis参数
ROOM_LINK
(
RedisConstants
.
ROOM_LINK_KEY_PREFIX
,
120
,
TimeUnit
.
MINUTES
),
ROOM_LINK
(
RedisConstants
.
ROOM_LINK_KEY_PREFIX
,
120
,
TimeUnit
.
DAYS
),
//code置换资源创建者token的缓存信息
;
;
//缓存key前缀
//缓存key前缀
...
...
yd-communication-feign/src/main/java/com/yd/communication/feign/response/CreateResponse.java
View file @
d48feaf4
...
@@ -41,9 +41,9 @@ public class CreateResponse {
...
@@ -41,9 +41,9 @@ public class CreateResponse {
*/
*/
private
String
roomLink
;
private
String
roomLink
;
/**
//
/**
* 链接失效时间
//
* 链接失效时间
*/
//
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm"
,
timezone
=
"GMT+8"
)
//
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private
Date
expirationTime
;
//
private Date expirationTime;
}
}
\ No newline at end of file
yd-communication-feign/src/main/java/com/yd/communication/feign/response/JoinResponse.java
View file @
d48feaf4
...
@@ -57,4 +57,9 @@ public class JoinResponse {
...
@@ -57,4 +57,9 @@ public class JoinResponse {
* 手机号
* 手机号
*/
*/
private
String
mobile
;
private
String
mobile
;
/**
* 置换资源所有者token信息
*/
private
String
code
;
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment