package jnpf.dms;
|
|
import jnpf.base.ActionResult;
|
import jnpf.dmsEntity.center.DmsTicketLifecycleRequest;
|
import jnpf.dmsEntity.preview.model.DmsFilePreviewTicket;
|
import jnpf.dmsEntity.download.model.DmsFileDownloadTicket;
|
import jnpf.exception.DataException;
|
import java.util.UUID;
|
|
/** Recheck at consumption, including cached render and storage paths. Network failure fails closed. */
|
public final class DmsTicketLifecycleChecks {
|
private DmsTicketLifecycleChecks() { }
|
public static Object preview(Object raw, DmsTicketLifecycleApi api, String serviceId) {
|
DmsFilePreviewTicket ticket=DmsFilePreviewTicket.fromRaw(raw);
|
require(api,serviceId,ticket.getTenantId(),ticket.getFileVersionId(),ticket.isHistoricalAccess());
|
return raw;
|
}
|
public static Object download(Object raw, DmsTicketLifecycleApi api, String serviceId) {
|
DmsFileDownloadTicket ticket=DmsFileDownloadTicket.fromRaw(raw);
|
require(api,serviceId,ticket.getTenantId(),ticket.getFileVersionId(),ticket.isHistoricalAccess());
|
return raw;
|
}
|
public static void require(DmsTicketLifecycleApi api,String serviceId,String tenantId,UUID version,boolean historical) {
|
DmsTicketLifecycleRequest request=new DmsTicketLifecycleRequest();
|
request.setTenantId(tenantId);request.setFileVersionId(version);request.setHistoricalAccess(historical);
|
ActionResult<Boolean> result=api.readable(serviceId,request);
|
if(result==null || result.getCode()!=200 || !Boolean.TRUE.equals(result.getData()))
|
throw new DataException("文件状态已变化,请从文件中心重新打开并获取授权");
|
}
|
}
|