From 8cab92fd5c92db6defc45ff8a8c43034bfe53571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 27 Aug 2025 18:12:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bug-632=20=E8=A7=86=E9=A2=91=E9=80=9A?= =?UTF-8?q?=E8=AF=9D=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/TicketController.java | 27 ++++++++++++++++--- .../cfs/controller/TicketController.java | 26 ++++++++++++++++-- 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index 61b1011c..40415826 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -1465,8 +1465,29 @@ public class TicketController extends ControllerBase { //// if (ticketCallJoinService.hangUp(ticketCall.getId(), AdminUserUtil.getUserId(), Constant.FROM_ADMIN, request.getReject())) { // ticketEventPublisher.publishTicketCallEndEvent(request.getTicketId()); //// } - - stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-" + AdminUserUtil.getUserId()); + if (StrUtil.equals(request.getFrom(), Constant.FROM_ADMIN) && Objects.equals(request.getFromUserId(), AdminUserUtil.getUserId())) { + Set userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()); + if (CollectionUtil.isNotEmpty(userIds)) { + userIds.forEach(uid -> { + uniPushService.send(new UniPushMessage() + .setSenderId(uid)//不重要 + .setReceiverId(uid) + .setSendData(new UniPushMessageBody() + .setTitle("视频通话结束") + .setPayload(new UniPushMessageCallPayload() + .setTicketId(request.getTicketId()) + .setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1))) + .setCategory("ticketCallEnd") + .setFrom("admin") + ) + ) + ); + }); + } + stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()); + } else { + stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-" + AdminUserUtil.getUserId()); + } if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()))) { ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + request.getTicketId()); if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) { @@ -1476,7 +1497,7 @@ public class TicketController extends ControllerBase { String from = userId.toString().startsWith("1") ? "app" : "admin"; userId = Integer.valueOf(userId.toString().substring(1)); uniPushService.send(new UniPushMessage() - .setSenderId(from + "-uid-" + userId)//不重要 + .setSenderId(from + "-uid-0")//不重要 .setReceiverId(from + "-uid-" + userId) .setSendData(new UniPushMessageBody() .setTitle("视频通话结束") diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java index 76e6be60..f90e659f 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TicketController.java @@ -641,7 +641,29 @@ public class TicketController extends ControllerBase { //// if (ticketCallJoinService.hangUp(ticketCall.getId(), AppUserUtil.getUserId(), Constant.FROM_APP, request.getReject())) { // ticketEventPublisher.publishTicketCallEndEvent(request.getTicketId()); //// } - stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_ADMIN + "-" + AdminUserUtil.getUserId()); + if (StrUtil.equals(request.getFrom(), AppUserUtil.getFrom()) && Objects.equals(request.getFromUserId(), AppUserUtil.getUserId())) { + Set userIds = stringRedisTemplate.opsForSet().members(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()); + if (CollectionUtil.isNotEmpty(userIds)) { + userIds.forEach(uid -> { + uniPushService.send(new UniPushMessage() + .setSenderId(uid)//不重要 + .setReceiverId(uid) + .setSendData(new UniPushMessageBody() + .setTitle("视频通话结束") + .setPayload(new UniPushMessageCallPayload() + .setTicketId(request.getTicketId()) + .setUserId(Integer.valueOf(StrUtil.split(uid, "-").get(1))) + .setCategory("ticketCallEnd") + .setFrom("app") + ) + ) + ); + }); + } + stringRedisTemplate.delete(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()); + } else { + stringRedisTemplate.opsForSet().remove(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId(), Constant.FROM_APP + "-" + AppUserUtil.getUserId()); + } if (Objects.equals(0L, stringRedisTemplate.opsForSet().size(Constant.REDIS_KEY_TICKET_CALL_WAIT + request.getTicketId()))) { ShengWangChannelUserListDTO channelUserListDTO = shengWangService.getChannelUsers("ticket" + request.getTicketId()); if (!channelUserListDTO.isChannelEexist() || channelUserListDTO.getUsers().size() <= 1) { @@ -651,7 +673,7 @@ public class TicketController extends ControllerBase { String from = userId.toString().startsWith("1") ? "app" : "admin"; userId = Integer.valueOf(userId.toString().substring(1)); uniPushService.send(new UniPushMessage() - .setSenderId(from + "-uid-" + userId)//不重要 + .setSenderId(from + "-uid-0")//不重要 .setReceiverId(from + "-uid-" + userId) .setSendData(new UniPushMessageBody() .setTitle("视频通话结束")