You've already forked FrameTour-BE
feat(basic): 添加模板片段更新状态缓存支持
- 在FaceStatusManager中新增按模板ID区分的人脸片段更新状态缓存键 - 更新TaskTaskServiceImpl以设置模板渲染状态 - 在任务回调逻辑中增加对模板渲染状态的更新操作 - 修改任务删除逻辑为更新状态加10的临时解决方案 - 移除旧有的切割任务状态更新逻辑,统一使用模板渲染状态管理
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package com.ycwl.basic.face.pipeline.stages;
|
||||
|
||||
import com.ycwl.basic.biz.TaskStatusBiz;
|
||||
import com.ycwl.basic.face.pipeline.core.FaceMatchingContext;
|
||||
import com.ycwl.basic.pipeline.core.StageResult;
|
||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||
@@ -28,8 +27,6 @@ class CreateTaskStageTest {
|
||||
@Mock
|
||||
private TaskService taskService;
|
||||
|
||||
@Mock
|
||||
private TaskStatusBiz taskStatusBiz;
|
||||
|
||||
@InjectMocks
|
||||
private CreateTaskStage stage;
|
||||
@@ -63,7 +60,7 @@ class CreateTaskStageTest {
|
||||
assertTrue(result.getMessage().contains("自动创建任务成功"));
|
||||
verify(scenicConfigFacade, times(1)).isFaceSelectFirst(10L);
|
||||
verify(taskService, times(1)).autoCreateTaskByFaceId(1L);
|
||||
verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
// verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -79,7 +76,7 @@ class CreateTaskStageTest {
|
||||
assertTrue(result.isSkipped());
|
||||
assertTrue(result.getMessage().contains("等待用户手动选择"));
|
||||
verify(scenicConfigFacade, times(1)).isFaceSelectFirst(10L);
|
||||
verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 2);
|
||||
// verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 2);
|
||||
verify(taskService, never()).autoCreateTaskByFaceId(anyLong());
|
||||
}
|
||||
|
||||
@@ -97,7 +94,7 @@ class CreateTaskStageTest {
|
||||
assertTrue(result.getMessage().contains("任务创建失败"));
|
||||
verify(scenicConfigFacade, times(1)).isFaceSelectFirst(10L);
|
||||
verify(taskService, never()).autoCreateTaskByFaceId(anyLong());
|
||||
verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
// verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -122,8 +119,8 @@ class CreateTaskStageTest {
|
||||
// Given: 设置状态失败
|
||||
when(scenicConfigFacade.isFaceSelectFirst(10L))
|
||||
.thenReturn(true);
|
||||
doThrow(new RuntimeException("Status set error"))
|
||||
.when(taskStatusBiz).setFaceCutStatus(1L, 2);
|
||||
// doThrow(new RuntimeException("Status set error"))
|
||||
// .when(taskStatusBiz).setFaceCutStatus(1L, 2);
|
||||
|
||||
// When
|
||||
StageResult<FaceMatchingContext> result = stage.execute(context);
|
||||
@@ -131,7 +128,7 @@ class CreateTaskStageTest {
|
||||
// Then
|
||||
assertTrue(result.isDegraded());
|
||||
assertTrue(result.getMessage().contains("任务创建失败"));
|
||||
verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 2);
|
||||
// verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,21 +1,16 @@
|
||||
package com.ycwl.basic.face.pipeline.stages;
|
||||
|
||||
import com.ycwl.basic.biz.TaskStatusBiz;
|
||||
import com.ycwl.basic.face.pipeline.core.FaceMatchingContext;
|
||||
import com.ycwl.basic.pipeline.core.StageResult;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* SetTaskStatusStage 单元测试
|
||||
@@ -23,9 +18,6 @@ import static org.mockito.Mockito.*;
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class SetTaskStatusStageTest {
|
||||
|
||||
@Mock
|
||||
private TaskStatusBiz taskStatusBiz;
|
||||
|
||||
@InjectMocks
|
||||
private SetTaskStatusStage stage;
|
||||
|
||||
@@ -41,7 +33,7 @@ class SetTaskStatusStageTest {
|
||||
// Given
|
||||
context = FaceMatchingContext.forAutoMatching(1L, true);
|
||||
|
||||
doNothing().when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
// doNothing().when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
|
||||
// When
|
||||
StageResult<FaceMatchingContext> result = stage.execute(context);
|
||||
@@ -49,7 +41,7 @@ class SetTaskStatusStageTest {
|
||||
// Then
|
||||
assertTrue(result.isSuccess());
|
||||
assertTrue(result.getMessage().contains("任务状态已设置"));
|
||||
verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 0);
|
||||
// verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,7 +55,7 @@ class SetTaskStatusStageTest {
|
||||
// Then
|
||||
assertTrue(result.isSkipped());
|
||||
assertTrue(result.getMessage().contains("非新用户"));
|
||||
verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
// verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -71,8 +63,8 @@ class SetTaskStatusStageTest {
|
||||
// Given
|
||||
context = FaceMatchingContext.forAutoMatching(1L, true);
|
||||
|
||||
doThrow(new RuntimeException("Database error"))
|
||||
.when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
// doThrow(new RuntimeException("Database error"))
|
||||
// .when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
|
||||
// When
|
||||
StageResult<FaceMatchingContext> result = stage.execute(context);
|
||||
@@ -80,7 +72,7 @@ class SetTaskStatusStageTest {
|
||||
// Then
|
||||
assertTrue(result.isDegraded()); // 降级处理,不影响主流程
|
||||
assertTrue(result.getMessage().contains("任务状态设置失败"));
|
||||
verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 0);
|
||||
// verify(taskStatusBiz, times(1)).setFaceCutStatus(1L, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -88,14 +80,14 @@ class SetTaskStatusStageTest {
|
||||
// Given: 不同的faceId
|
||||
context = FaceMatchingContext.forAutoMatching(999L, true);
|
||||
|
||||
doNothing().when(taskStatusBiz).setFaceCutStatus(999L, 0);
|
||||
// doNothing().when(taskStatusBiz).setFaceCutStatus(999L, 0);
|
||||
|
||||
// When
|
||||
StageResult<FaceMatchingContext> result = stage.execute(context);
|
||||
|
||||
// Then
|
||||
assertTrue(result.isSuccess());
|
||||
verify(taskStatusBiz, times(1)).setFaceCutStatus(999L, 0);
|
||||
// verify(taskStatusBiz, times(1)).setFaceCutStatus(999L, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -108,7 +100,7 @@ class SetTaskStatusStageTest {
|
||||
|
||||
// Then
|
||||
assertTrue(result.isSkipped());
|
||||
verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
// verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -122,7 +114,7 @@ class SetTaskStatusStageTest {
|
||||
|
||||
// Then
|
||||
assertTrue(result.isSkipped());
|
||||
verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
// verify(taskStatusBiz, never()).setFaceCutStatus(anyLong(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -130,8 +122,8 @@ class SetTaskStatusStageTest {
|
||||
// Given
|
||||
context = FaceMatchingContext.forAutoMatching(1L, true);
|
||||
|
||||
doThrow(new NullPointerException("Null task status"))
|
||||
.when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
// doThrow(new NullPointerException("Null task status"))
|
||||
// .when(taskStatusBiz).setFaceCutStatus(1L, 0);
|
||||
|
||||
// When
|
||||
StageResult<FaceMatchingContext> result = stage.execute(context);
|
||||
|
||||
@@ -14,8 +14,8 @@ public class AliFaceBodyAdapterTest {
|
||||
private AliFaceBodyAdapter getAdapter() {
|
||||
AliFaceBodyAdapter adapter = new AliFaceBodyAdapter();
|
||||
AliFaceBodyConfig config = new AliFaceBodyConfig();
|
||||
config.setAccessKeyId("LTAI5tMwrmxVcUEKoH5QzLHx");
|
||||
config.setAccessKeySecret("ZCIP8aKx1jwX1wkeYIPQEDZ8fPtN1c");
|
||||
config.setAccessKeyId("LTAI5tBr8gLs7oRVzwjmwy5s");
|
||||
config.setAccessKeySecret("ZMQcmY97tly9jypfoVqnlnPX2wqvYh");
|
||||
config.setRegion("cn-shanghai");
|
||||
adapter.setConfig(config);
|
||||
return adapter;
|
||||
|
||||
Reference in New Issue
Block a user