package jnpf.base.util;
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
import jnpf.base.model.uploadedit.UploadEditContext;
|
import jnpf.base.model.uploadedit.UploadEditDraft;
|
import jnpf.util.JsonUtil;
|
import java.util.Arrays;
|
import java.util.Objects;
|
|
/** 独立命名空间,不将旧个人工作稿误当成流程共享稿。 */
|
public final class UploadEditWorkingCopy {
|
private UploadEditWorkingCopy() { }
|
public static String id(String tenant, UploadEditContext c) {
|
return DigestUtil.sha256Hex(JsonUtil.getObjectToString(Arrays.asList("workflow-working-file-v1", tenant,
|
c.getTaskId(), c.getModelId(), c.getRecordId(), text(c.getParentField()), text(c.getRowId()), c.getField())));
|
}
|
public static boolean shared(UploadEditDraft d) {
|
if (d == null || text(d.getTaskId()).isEmpty()) return false;
|
UploadEditContext c = new UploadEditContext();
|
c.setTaskId(d.getTaskId()); c.setModelId(d.getModelId()); c.setRecordId(d.getRecordId());
|
c.setParentField(d.getParentField()); c.setRowId(d.getRowId()); c.setField(d.getField());
|
return Objects.equals(d.getId(), id(d.getTenantId(), c));
|
}
|
public static boolean active(UploadEditDraft d) {
|
return d.getLeaseId() != null && d.getUpdatedAt() != null
|
&& System.currentTimeMillis() - d.getUpdatedAt().getTime() < 120_000L;
|
}
|
private static String text(String s) { return s == null ? "" : s; }
|
}
|