feat: bug-528 app端添加管理功能

调整视频通话逻辑
This commit is contained in:
曹鹏飞 2025-08-07 10:56:54 +08:00
parent e0c62ae8f2
commit 7c1281a689
1 changed files with 22 additions and 22 deletions

View File

@ -1249,33 +1249,33 @@ public class TicketController extends ControllerBase {
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState()))
.throwMessage("当前工单状态不允许请求通话");
Integer handlerUserId = Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).findFirst().get();
if (StrUtil.equals(Constant.FROM_APP,ticket.getUserPlatform())) {
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
VUtils.trueThrowBusinessError(!Objects.equals(AdminUserUtil.getUserId(), handlerUserId))
.throwMessage("不是工单主负责人无权限呼叫");
}else {
} else {
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AdminUserUtil.getUserId()) && !Objects.equals(AdminUserUtil.getUserId(), handlerUserId))
.throwMessage("无权限呼叫");
}
VUtils.trueThrowBusinessError(ticketCallService.isInCall(ticket.getUserId())).throwMessage("对方正在通话中");
boolean userIdCreate=StrUtil.equals(ticket.getUserPlatform(),Constant.FROM_ADMIN) && Objects.equals(ticket.getUserId(), AdminUserUtil.getUserId());
Integer sendUserId=0,receiveUserId=0;
String sendUserFrom,receiveUserFrom;
if (userIdCreate){
sendUserId=ticket.getUserId();
receiveUserId=handlerUserId;
sendUserFrom=Constant.FROM_ADMIN;
receiveUserFrom=Constant.FROM_ADMIN;
}else {
sendUserId=handlerUserId;
receiveUserId=ticket.getUserId();
sendUserFrom=Constant.FROM_ADMIN;
receiveUserFrom=Constant.FROM_APP;
boolean userIdCreate = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_ADMIN) && Objects.equals(ticket.getUserId(), AdminUserUtil.getUserId());
Integer sendUserId = 0, receiveUserId = 0;
String sendUserFrom, receiveUserFrom;
if (userIdCreate) {
sendUserId = ticket.getUserId();
receiveUserId = handlerUserId;
sendUserFrom = Constant.FROM_ADMIN;
receiveUserFrom = Constant.FROM_ADMIN;
} else {
sendUserId = handlerUserId;
receiveUserId = ticket.getUserId();
sendUserFrom = Constant.FROM_ADMIN;
receiveUserFrom = Constant.FROM_APP;
}
ticketCallService.add(ticketId, sendUserId,sendUserFrom, receiveUserId, receiveUserFrom);
AdminUser adminUser = adminUserService.getById(handlerUserId);
ticketCallService.add(ticketId, sendUserId, sendUserFrom, receiveUserId, receiveUserFrom);
AdminUser adminUser = adminUserService.getById(sendUserId);
uniPushService.send(new UniPushMessage()
.setSenderId("admin-uid-" + handlerUserId)
.setReceiverId(ticket.getUserPlatform()+"-uid-" + ticket.getUserId())
.setSenderId("admin-uid-" + sendUserId)
.setReceiverId(receiveUserFrom + "-uid-" + receiveUserId)
.setSendData(new UniPushMessageBody()
.setTitle("视频通话")
.setContent(adminUser.getUserName() + "请求与您视频通话")
@ -1289,10 +1289,10 @@ public class TicketController extends ControllerBase {
)
)
);
if (StrUtil.equals(Constant.FROM_APP,ticket.getUserPlatform())) {
if (StrUtil.equals(Constant.FROM_APP, ticket.getUserPlatform())) {
ssePushService.sendTicketCallToApp(adminUser, ticket.getUserId(), ticketId);
}else {
ssePushService.sendTicketCallToAdmin(adminUser, ticket.getUserId(), ticketId);
} else {
ssePushService.sendTicketCallToAdmin(adminUser, receiveUserId, ticketId);
}
ticketEventPublisher.publishTicketCallBeginEvent(ticketId, adminUser.getUserName());
return ApiResult.success();