REQ-3581: 备份

This commit is contained in:
yanglin 2025-02-12 17:53:17 +08:00
parent 648964897e
commit a79f78aa9f
6 changed files with 38 additions and 36 deletions

View File

@ -57,13 +57,6 @@ public class CreateContractRequest {
@NotBlank(message = "fileBase64不能为空")
private String fileBase64;
@JsonIgnore
public Set<Long> getApproverPersonIds() {
return approvers.stream()
.map(ApproverInfo::getPersonId)
.collect(toSet());
}
@JsonIgnore
public Set<Long> getApproverOuIds() {
return approvers.stream()
@ -83,7 +76,7 @@ public class CreateContractRequest {
/**
* 发起方人员id
*/
@NotBlank(message = "personId不能为空")
@NotNull(message = "personId不能为空")
private Long personId;
}
@ -100,7 +93,7 @@ public class CreateContractRequest {
/**
* 签署人员id
*/
@NotBlank(message = "personId不能为空")
@NotNull(message = "personId不能为空")
private Long personId;
}

View File

@ -14,4 +14,9 @@ public class CreateContractResponse {
*/
private String essContractId;
/**
* 预览url, 会过期
*/
private String previewUrl;
}

View File

@ -44,7 +44,7 @@ public class ContractManager {
EssContract contract = saveContract(request);
try {
EssPerson superAdmin = orgManager.getSuperAdminOrThrow(request.getOperator().getOuId());
String essFileId = essClient.uploadContractFile(superAdmin, request.getFileBase64());
String essFileId = essClient.uploadFile(superAdmin, request.getFileBase64());
String essContractId = essClient.createContract(superAdmin,
request.getContractName(), essFileId, getApproverAsSealPersons(request));
essContractDao.setEssContractCreated(contract.getId(), essFileId, essContractId);

View File

@ -83,7 +83,8 @@ public class EssClient implements InitializingBean {
private final EssSupport essSupport;
@Resource(name = NEW_TRANSACTION)
private TransactionTemplate transactionTemplate;
private EssbasicClient ess;
private EssbasicClient api;
private EssbasicClient file;
public String createConsoleLoginUrl(EssOrg org, EssPerson person,
EssConsoleUrlEndpoint endpoint, boolean checkOperator) {
@ -104,7 +105,7 @@ public class EssClient implements InitializingBean {
.context("CreateConsoleLoginUrl")
.subject(person.getPersonId() + "")
.request(request)
.func(() -> ess.CreateConsoleLoginUrl(request)));
.func(() -> api.CreateConsoleLoginUrl(request)));
return response.getConsoleUrl();
}
@ -120,7 +121,7 @@ public class EssClient implements InitializingBean {
.context("ChannelCreateEmbedWebUrl")
.subject(businessId == null ? "" : businessId)
.request(request)
.func(() -> ess.ChannelCreateEmbedWebUrl(request)));
.func(() -> api.ChannelCreateEmbedWebUrl(request)));
return response.getWebUrl();
}
@ -135,7 +136,7 @@ public class EssClient implements InitializingBean {
.context("ChannelCreateSealPolicy")
.subject(seal.getEssSealId())
.request(request)
.func(() -> ess.ChannelCreateSealPolicy(request)));
.func(() -> api.ChannelCreateSealPolicy(request)));
}
public void removeSealAuthorization(EssPerson superAdmin, EssSeal seal, EssSealPerson sealPerson) {
@ -149,13 +150,10 @@ public class EssClient implements InitializingBean {
.context("ChannelDeleteSealPolicies")
.subject(seal.getEssSealId())
.request(request)
.func(() -> ess.ChannelDeleteSealPolicies(request)));
.func(() -> api.ChannelDeleteSealPolicies(request)));
}
String uploadContractFile(
EssPerson superAdmin,
String fileBase64
) throws TencentCloudSDKException {
String uploadFile(EssPerson superAdmin, String fileBase64) throws TencentCloudSDKException {
UploadFilesRequest request = new UploadFilesRequest();
request.setAgent(agent(superAdmin));
request.setFileInfos(new UploadFile[]{new UploadFile()});
@ -165,14 +163,15 @@ public class EssClient implements InitializingBean {
.context("UploadFiles")
.subject("")
.request(request)
.func(() -> ess.UploadFiles(request)));
.func(() -> file.UploadFiles(request)));
return response.getFileIds()[0];
}
String createContract(EssPerson superAdmin,
String contractName,
String contractFileId,
List<EssSealPerson> approvePersons
String createContract(
EssPerson superAdmin,
String contractName,
String contractFileId,
List<EssSealPerson> approvePersons
) throws TencentCloudSDKException {
Map<Long, OrganizationalUnitVO> orgProfiles = essSupport
.getOrgProfiles(approvePersons.stream()
@ -203,6 +202,7 @@ public class EssClient implements InitializingBean {
}
ChannelCreateFlowByFilesRequest request = new ChannelCreateFlowByFilesRequest();
request.setAgent(agent(superAdmin));
request.setSignBeanTag(1L);
request.setFlowName(contractName);
request.setFileIds(new String[]{contractFileId});
request.setFlowApprovers(approvers.toArray(new FlowApproverInfo[0]));
@ -210,7 +210,7 @@ public class EssClient implements InitializingBean {
.context("ChannelCreateFlowByFiles")
.subject(contractName)
.request(request)
.func(() -> ess.ChannelCreateFlowByFiles(request)));
.func(() -> api.ChannelCreateFlowByFiles(request)));
return response.getFlowId();
}
@ -222,7 +222,7 @@ public class EssClient implements InitializingBean {
.context("DescribeResourceUrlsByFlows")
.subject(essContractId)
.request(request)
.func(() -> ess.DescribeResourceUrlsByFlows(request)));
.func(() -> api.DescribeResourceUrlsByFlows(request)));
return response.getFlowResourceUrlInfos()[0].getResourceUrlInfos()[0].getUrl();
}
@ -235,7 +235,7 @@ public class EssClient implements InitializingBean {
.context("ChannelCreateOrganizationBatchSignUrl")
.subject(essContractId)
.request(request)
.func(() -> ess.ChannelCreateOrganizationBatchSignUrl(request)));
.func(() -> api.ChannelCreateOrganizationBatchSignUrl(request)));
return response.getSignUrl();
}
@ -248,7 +248,7 @@ public class EssClient implements InitializingBean {
.context("CreateSignUrls")
.subject(essContractId)
.request(request)
.func(() -> ess.CreateSignUrls(request)));
.func(() -> api.CreateSignUrls(request)));
return response.getSignUrlInfos()[0].getSignUrl();
}
@ -261,7 +261,7 @@ public class EssClient implements InitializingBean {
.context("ChannelDescribeEmployees")
.subject(org.getOuId() + "")
.request(request)
.func(() -> ess.ChannelDescribeEmployees(request)));
.func(() -> api.ChannelDescribeEmployees(request)));
}
private Agent agent(EssPerson person) {
@ -277,12 +277,17 @@ public class EssClient implements InitializingBean {
@Override
public void afterPropertiesSet() {
api = createEssbasicClient(props.getApiEndPoint());
file = createEssbasicClient(props.getFileEndPoint());
}
private EssbasicClient createEssbasicClient(String apiEndPoint) {
Credential cred = new Credential(props.getSecretId(), props.getSecretKey());
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint(props.getEndPoint());
httpProfile.setEndpoint(apiEndPoint);
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
ess = new EssbasicClient(cred, "", clientProfile);
return new EssbasicClient(cred, "", clientProfile);
}
private <T> T exec(Invocation.InvocationBuilder builder) {

View File

@ -34,8 +34,8 @@ import cn.axzo.nanopart.ess.server.entity.EssSeal;
import cn.axzo.nanopart.ess.server.entity.EssSealPerson;
import cn.axzo.nanopart.ess.server.ess.ContractManager;
import cn.axzo.nanopart.ess.server.ess.EssClient;
import cn.axzo.nanopart.ess.server.ess.QueryService;
import cn.axzo.nanopart.ess.server.ess.OrgManager;
import cn.axzo.nanopart.ess.server.ess.QueryService;
import cn.axzo.nanopart.ess.server.ess.domain.OrgAndPerson;
import cn.axzo.nanopart.ess.server.ess.domain.SealAndPerson;
import cn.axzo.nanopart.ess.server.utils.BizAssertions;

View File

@ -16,10 +16,9 @@ import org.springframework.context.annotation.Configuration;
@ConfigurationProperties(prefix = "ess")
public class EssProps {
/**
* 腾讯电子签调用地址(环境)
*/
private String endPoint;
private String apiEndPoint;
private String fileEndPoint;
private String appId;