刘光辉
5 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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("文件状态已变化,请从文件中心重新打开并获取授权");
    }
}