public Mono<GeoCoordinates> getUserLocation(
            @NotNull Long userId,
            @NotNull @ValidDeviceType DeviceType deviceType) {
        try {
            Validator.notNull(userId, "userId");
            Validator.notNull(deviceType, "deviceType");
            DeviceTypeUtil.validDeviceType(deviceType);
        } catch (ResponseException e) {
            return Mono.error(e);
        }
        if (!locationEnabled) {
            return Mono.error(ResponseException
                    .get(ResponseStatusCode.USER_LOCATION_RELATED_FEATURES_ARE_DISABLED));
        }
        Object member = treatUserIdAndDeviceTypeAsUniqueUser
                ? new UserSessionId(userId, deviceType)
                : userId;
        return locationRedisClientManager
                .geopos(userId, RedisEntryIdConst.KEY_LOCATION_BUFFER, member)
                .singleOrEmpty();
    }
@return GeoWithin<Long> or GeoWithin<UserSessionId>
turms-server-common/src/main/java/im/turms/server/common/domain/session/service/SessionLocationService.java