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("视频通话结束")