feat: bug-245 视频通话优化,多端登录时,有一个设备接听后,给其他设备推送取消接听事件
This commit is contained in:
parent
ecce586407
commit
3c7b780fc2
|
|
@ -1310,6 +1310,21 @@ public class TicketController extends ControllerBase {
|
||||||
VUtils.trueThrowBusinessError(ticketCallService.isInCall(AdminUserUtil.getUserId()))
|
VUtils.trueThrowBusinessError(ticketCallService.isInCall(AdminUserUtil.getUserId()))
|
||||||
.throwMessage("您已加入别的通话中");
|
.throwMessage("您已加入别的通话中");
|
||||||
ticketCallJoinService.join(ticketId, AdminUserUtil.getUserId(),Constant.FROM_ADMIN);
|
ticketCallJoinService.join(ticketId, AdminUserUtil.getUserId(),Constant.FROM_ADMIN);
|
||||||
|
ssePushService.sendTicketCallJoinedToAdmin(AdminUserUtil.getUserId(), ticketId);
|
||||||
|
uniPushService.send(new UniPushMessage()
|
||||||
|
.setSenderId("admin-uid-" + AdminUserUtil.getUserId())
|
||||||
|
.setReceiverId("admin-uid-" + AdminUserUtil.getUserId())
|
||||||
|
.setSendData(new UniPushMessageBody()
|
||||||
|
.setTitle("视频通话")
|
||||||
|
.setContent("您已加入别的通话中")
|
||||||
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setUserId(AdminUserUtil.getUserId())
|
||||||
|
.setCategory("ticketCallJoined")
|
||||||
|
.setFrom("admin")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -282,4 +282,26 @@ public class SsePushService {
|
||||||
log.error("发送消息出错", e);
|
log.error("发送消息出错", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendTicketCallJoinedToAdmin(Integer userId, @Valid @NotNull Integer ticketId) {
|
||||||
|
try {
|
||||||
|
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setMessage(new PushMessageDTO()
|
||||||
|
.setType("ticketCallJoined")
|
||||||
|
.setData(new PushMessageDataBody()
|
||||||
|
.setTargetId(ticketId)
|
||||||
|
.setType("ticketCallJoined")
|
||||||
|
.setData(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setFrom("admin")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
ApiResult<?> result = sendMessageByUser(request, "admin");
|
||||||
|
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("发送消息出错", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -527,6 +527,21 @@ public class TicketController extends ControllerBase {
|
||||||
VUtils.trueThrowBusinessError(ticketCallService.isInCall(AppUserUtil.getUserId()))
|
VUtils.trueThrowBusinessError(ticketCallService.isInCall(AppUserUtil.getUserId()))
|
||||||
.throwMessage("您已加入别的通话中");
|
.throwMessage("您已加入别的通话中");
|
||||||
ticketCallJoinService.join(ticketId, AppUserUtil.getUserId(), Constant.FROM_APP);
|
ticketCallJoinService.join(ticketId, AppUserUtil.getUserId(), Constant.FROM_APP);
|
||||||
|
ssePushService.sendTicketCallJoinedToApp(AppUserUtil.getUserId(), ticketId);
|
||||||
|
uniPushService.send(new UniPushMessage()
|
||||||
|
.setSenderId("app-uid-" + AppUserUtil.getUserId())
|
||||||
|
.setReceiverId("app-uid-" + AppUserUtil.getUserId())
|
||||||
|
.setSendData(new UniPushMessageBody()
|
||||||
|
.setTitle("视频通话")
|
||||||
|
.setContent("您已加入别的通话中")
|
||||||
|
.setPayload(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setUserId(AppUserUtil.getUserId())
|
||||||
|
.setCategory("ticketCallJoined")
|
||||||
|
.setFrom("app")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -222,4 +222,26 @@ public class SsePushService {
|
||||||
log.error("发送消息出错", e);
|
log.error("发送消息出错", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendTicketCallJoinedToApp(Integer userId,@NotNull Integer ticketId) {
|
||||||
|
try {
|
||||||
|
PushUserMessageRequest request = new PushUserMessageRequest()
|
||||||
|
.setUserId(userId)
|
||||||
|
.setMessage(new PushMessageDTO()
|
||||||
|
.setType("ticketCallJoined")
|
||||||
|
.setData(new PushMessageDataBody()
|
||||||
|
.setTargetId(ticketId)
|
||||||
|
.setType("ticketCallJoined")
|
||||||
|
.setData(new UniPushMessageCallPayload()
|
||||||
|
.setTicketId(ticketId)
|
||||||
|
.setFrom("app")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
ApiResult<?> result = sendMessageByUser(request, "app");
|
||||||
|
log.debug("发送消息结果:{}", JSONUtil.toJsonStr(result));
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("发送消息出错", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue