From 746599f462f3c776732cb277355ffe5eb1124564 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期一, 24 八月 2026 11:07:50 +0800
Subject: [PATCH] fix: finalize merchant and family card changes

---
 talent-card-server/src/test/java/com/talentcard/server/service/DependentCardApplyServiceTests.java |   38 +++++++++++++++++---------------------
 1 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/talent-card-server/src/test/java/com/talentcard/server/service/DependentCardApplyServiceTests.java b/talent-card-server/src/test/java/com/talentcard/server/service/DependentCardApplyServiceTests.java
index 495db5e..f8e8ab2 100644
--- a/talent-card-server/src/test/java/com/talentcard/server/service/DependentCardApplyServiceTests.java
+++ b/talent-card-server/src/test/java/com/talentcard/server/service/DependentCardApplyServiceTests.java
@@ -59,7 +59,7 @@
 	}
 
 	@Test
-	void resubmitCreatesANewApplicationAndKeepsRejectedApplicationUnchanged() {
+	void resubmitUpdatesTheRejectedApplicationInsteadOfCreatingADuplicate() {
 		DependentCardApply rejected = new DependentCardApply(
 				"DCA-OLD",
 				12L,
@@ -73,12 +73,18 @@
 				"510105199001011234",
 				"配偶"
 		);
+		setId(rejected, 99L);
 		setStatus(rejected, DependentCardApply.STATUS_REJECTED);
 		when(mapper.selectByIdForUpdate(99L)).thenReturn(rejected);
-		when(mapper.insert(any(DependentCardApply.class))).thenAnswer(invocation -> {
-			setId(invocation.getArgument(0), 100L);
+		when(mapper.update(any(), any(Wrapper.class))).thenAnswer(invocation -> {
+			setStatus(rejected, DependentCardApply.STATUS_PENDING_REVIEW);
+			setField(rejected, "dependentName", "新家属");
+			setField(rejected, "dependentIdCardNo", "51010519900101123X");
+			setField(rejected, "dependentMobile", "13700000000");
+			setField(rejected, "relation", "子女");
 			return 1;
 		});
+		when(mapper.selectById(99L)).thenReturn(rejected);
 		when(statusLogMapper.insert(any(DependentCardApplyStatusLog.class))).thenReturn(1);
 
 		DependentCardApplyItemResponse result = service.resubmit(
@@ -92,28 +98,18 @@
 				)
 		);
 
-		ArgumentCaptor<DependentCardApply> applicationCaptor = ArgumentCaptor.forClass(DependentCardApply.class);
-		verify(mapper).insert(applicationCaptor.capture());
-		DependentCardApply created = applicationCaptor.getValue();
-		assertThat(created.getId()).isEqualTo(100L);
-		assertThat(created.getApplyNo()).startsWith("DCA").isNotEqualTo(rejected.getApplyNo());
-		assertThat(created.getTalentId()).isEqualTo(rejected.getTalentId());
-		assertThat(created.getTalentCardId()).isEqualTo(rejected.getTalentCardId());
-		assertThat(created.getDependentName()).isEqualTo("新家属");
-		assertThat(created.getDependentIdCardNo()).isEqualTo("51010519900101123X");
-		assertThat(created.getDependentMobile()).isEqualTo("13700000000");
-		assertThat(created.getRelation()).isEqualTo("子女");
-		assertThat(created.getStatus()).isEqualTo(DependentCardApply.STATUS_PENDING_REVIEW);
-		assertThat(result.id()).isEqualTo(100L);
+		verify(mapper, never()).insert(any(DependentCardApply.class));
+		verify(mapper).update(any(), any(Wrapper.class));
+		assertThat(result.id()).isEqualTo(99L);
 		assertThat(result.status()).isEqualTo(DependentCardApply.STATUS_PENDING_REVIEW);
-		assertThat(rejected.getStatus()).isEqualTo(DependentCardApply.STATUS_REJECTED);
-		verify(mapper, never()).update(any(), any(Wrapper.class));
+		assertThat(result.statusText()).isEqualTo("待审核");
+		assertThat(rejected.getApplyNo()).isEqualTo("DCA-OLD");
 
 		ArgumentCaptor<DependentCardApplyStatusLog> logCaptor = ArgumentCaptor.forClass(DependentCardApplyStatusLog.class);
 		verify(statusLogMapper).insert(logCaptor.capture());
-		assertThat(logCaptor.getValue().getApplyId()).isEqualTo(100L);
-		assertThat(logCaptor.getValue().getApplyNo()).isEqualTo(created.getApplyNo());
-		assertThat(logCaptor.getValue().getFromStatus()).isNull();
+		assertThat(logCaptor.getValue().getApplyId()).isEqualTo(99L);
+		assertThat(logCaptor.getValue().getApplyNo()).isEqualTo(rejected.getApplyNo());
+		assertThat(logCaptor.getValue().getFromStatus()).isEqualTo(DependentCardApply.STATUS_REJECTED);
 		assertThat(logCaptor.getValue().getToStatus()).isEqualTo(DependentCardApply.STATUS_PENDING_REVIEW);
 	}
 

--
Gitblit v1.7.1