fix: derive platform qualification file names

This commit is contained in:
2026-09-21 22:54:22 +08:00
parent cf09720beb
commit 74ed71bfc0
2 changed files with 13 additions and 3 deletions
@@ -58,7 +58,7 @@ public final class OnboardingDtos {
@NotNull Long tenantId, @NotNull Long tenantId,
@NotBlank @Pattern(regexp = "[0-9A-Za-z]{18}") String unifiedSocialCreditCode, @NotBlank @Pattern(regexp = "[0-9A-Za-z]{18}") String unifiedSocialCreditCode,
@NotBlank String businessLicenseDocumentUrl, @NotBlank String businessLicenseDocumentUrl,
@NotBlank @Size(max = 255) String businessLicenseOriginalFileName, @Size(max = 255) String businessLicenseOriginalFileName,
LocalDate businessLicenseValidTo, LocalDate businessLicenseValidTo,
boolean replaceBusinessLicense, boolean replaceBusinessLicense,
String legalPersonIdDocumentUrl, String legalPersonIdDocumentUrl,
@@ -212,14 +212,16 @@ public class ProfileResourceService {
String replacedBusinessLicenseUrl = supersede(businessLicenses, replacementComment); String replacedBusinessLicenseUrl = supersede(businessLicenses, replacementComment);
String replacedLegalPersonIdUrl = hasLegalPersonId ? supersede(legalPersonIds, replacementComment) : null; String replacedLegalPersonIdUrl = hasLegalPersonId ? supersede(legalPersonIds, replacementComment) : null;
IamTenantQualification businessLicense = createQualification(tenant.getId(), "BUSINESS_LICENSE", IamTenantQualification businessLicense = createQualification(tenant.getId(), "BUSINESS_LICENSE",
creditCode, request.businessLicenseDocumentUrl(), request.businessLicenseOriginalFileName()); creditCode, request.businessLicenseDocumentUrl(),
normalizeOriginalFileName(request.businessLicenseOriginalFileName(), request.businessLicenseDocumentUrl(), platformManaged));
businessLicense.setValidTo(request.businessLicenseValidTo()); businessLicense.setValidTo(request.businessLicenseValidTo());
if (platformManaged) markPlatformQualificationApproved(tenant, businessLicense); if (platformManaged) markPlatformQualificationApproved(tenant, businessLicense);
repository.saveQualification(businessLicense); repository.saveQualification(businessLicense);
IamTenantQualification legalPersonId = null; IamTenantQualification legalPersonId = null;
if (hasLegalPersonId) { if (hasLegalPersonId) {
legalPersonId = createQualification(tenant.getId(), "LEGAL_PERSON_ID", legalPersonId = createQualification(tenant.getId(), "LEGAL_PERSON_ID",
null, request.legalPersonIdDocumentUrl().trim(), request.legalPersonIdOriginalFileName()); null, request.legalPersonIdDocumentUrl().trim(),
normalizeOriginalFileName(request.legalPersonIdOriginalFileName(), request.legalPersonIdDocumentUrl(), platformManaged));
legalPersonId.setValidTo(request.legalPersonIdValidTo()); legalPersonId.setValidTo(request.legalPersonIdValidTo());
if (platformManaged) markPlatformQualificationApproved(tenant, legalPersonId); if (platformManaged) markPlatformQualificationApproved(tenant, legalPersonId);
repository.saveQualification(legalPersonId); repository.saveQualification(legalPersonId);
@@ -297,7 +299,15 @@ public class ProfileResourceService {
} }
private String normalizeOriginalFileName(String originalFileName) { private String normalizeOriginalFileName(String originalFileName) {
return normalizeOriginalFileName(originalFileName, null, false);
}
private String normalizeOriginalFileName(String originalFileName, String documentUrl, boolean platformManaged) {
if (!StringUtils.hasText(originalFileName)) { if (!StringUtils.hasText(originalFileName)) {
if (platformManaged && StringUtils.hasText(documentUrl)) {
String value = documentUrl.substring(documentUrl.lastIndexOf('/') + 1).trim();
if (StringUtils.hasText(value) && value.length() <= 255) return value;
}
throw new BizException(ResultCode.BAD_REQUEST, "Original file name is required / 必须提供上传时原始文件名"); throw new BizException(ResultCode.BAD_REQUEST, "Original file name is required / 必须提供上传时原始文件名");
} }
String normalized = originalFileName.trim(); String normalized = originalFileName.trim();