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