package jnpf.bizcommon.onlyoffice.service.impl;
|
|
import jnpf.bizcommon.onlyoffice.entity.OnlyOfficeConfigParam;
|
import jnpf.bizcommon.onlyoffice.entity.OnlyOfficeSessionEntity;
|
|
public interface OnlyOfficeSceneConfigBuilder {
|
|
String scene();
|
|
String bizModule();
|
|
OnlyOfficeSceneBuildPlan build(OnlyOfficeSceneBuildContext context);
|
|
default boolean guardsBusinessContext() {
|
return true;
|
}
|
|
default boolean matchesSession(OnlyOfficeSessionEntity session, OnlyOfficeConfigParam param,
|
String tenantId) {
|
return java.util.Objects.equals(tenantId, session.getTenantId())
|
&& java.util.Objects.equals(bizModule(), session.getBizModule())
|
&& java.util.Objects.equals(bizModule(), param.getBizModule())
|
&& java.util.Objects.equals(session.getBizDataId(), param.getBizDataId())
|
&& java.util.Objects.equals(session.getFileId(), param.getFileId())
|
&& java.util.Objects.equals(session.getFileType(), param.getFileType());
|
}
|
|
/**
|
* 允许场景接管未绑定业务上下文的空闲旧会话。
|
* 已绑定会话始终必须通过 {@link #matchesSession(OnlyOfficeSessionEntity, OnlyOfficeConfigParam, String)}。
|
*/
|
default boolean canAdoptUnboundSession(OnlyOfficeSessionEntity session, OnlyOfficeConfigParam param,
|
String tenantId) {
|
return false;
|
}
|
|
default boolean acceptsFencedStatus(Integer status) {
|
return false;
|
}
|
}
|