This commit is contained in:
wujinliang
2026-09-17 15:05:02 +08:00
parent 66c68cdc89
commit 522afd0185
2 changed files with 25 additions and 1 deletions
@@ -62,7 +62,10 @@ public class ProfileResourceService {
public List<QualificationResponse> platformQualifications(long tenantId) {
requireMerchant(tenantId);
return qualifications(tenantId);
return repository.findQualifications(tenantId).stream()
.filter(item -> !"SUPERSEDED".equals(item.getStatus()))
.map(this::toQualificationResponse)
.toList();
}
public QualificationResponse platformQualification(long tenantId, long qualificationId) {
@@ -169,6 +169,27 @@ class MerchantQualificationUploadTest {
assertEquals(LocalDateTime.of(2026, 9, 11, 10, 30), response.get(0).updatedAt());
}
@Test
void platformQualificationListHidesSupersededFilesButMerchantHistoryRetainsThem() {
IamTenant tenant = new IamTenant();
tenant.setId(10001L);
tenant.setTenantType("MERCHANT");
IamTenantQualification current = qualification(
"BUSINESS_LICENSE", "/files/qualification/current-license.png");
current.setId(2L);
IamTenantQualification superseded = qualification(
"BUSINESS_LICENSE", "/files/qualification/replaced-license.png");
superseded.setStatus("SUPERSEDED");
when(tenantRepository.findTenant(10001L)).thenReturn(tenant);
when(profileRepository.findQualifications(10001L)).thenReturn(List.of(current, superseded));
assertEquals(2, service.qualifications(10001L).size());
var platformQualifications = service.platformQualifications(10001L);
assertEquals(1, platformQualifications.size());
assertEquals(2L, platformQualifications.get(0).id());
}
@Test
void deletesDraftQualificationWithTenantLock() {
IamTenant tenant = new IamTenant();