Skip to content

Commit 68d93be

Browse files
committed
fix #82
1 parent d7f88a0 commit 68d93be

9 files changed

Lines changed: 29 additions & 41 deletions

File tree

flow-engine-framework/src/main/java/com/codingapi/flow/mock/MockInstanceFactory.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@
22

33
import com.codingapi.flow.gateway.FlowOperatorGateway;
44
import com.codingapi.flow.mock.service.FlowRecordQueryMockService;
5+
import com.codingapi.flow.repository.WorkflowRepository;
56
import com.codingapi.flow.service.FlowService;
67
import com.codingapi.flow.utils.RandomUtils;
78
import lombok.Getter;
9+
import lombok.extern.slf4j.Slf4j;
810

911
import java.util.Map;
1012
import java.util.concurrent.ConcurrentHashMap;
1113

1214
/**
1315
* 模拟示例构建工厂
1416
*/
17+
@Slf4j
1518
public class MockInstanceFactory {
1619

1720
private final Map<String, MockInstance> cache;
@@ -23,13 +26,14 @@ private MockInstanceFactory() {
2326
this.cache = new ConcurrentHashMap<>();
2427
}
2528

26-
public MockInstance create(FlowOperatorGateway flowOperatorGateway) {
29+
public MockInstance create(FlowOperatorGateway flowOperatorGateway, WorkflowRepository workflowRepository ) {
2730
String key = RandomUtils.generateStringId();
28-
MockRepositoryHolder mockRepositoryHolder = new MockRepositoryHolder(flowOperatorGateway);
31+
MockRepositoryHolder mockRepositoryHolder = new MockRepositoryHolder(flowOperatorGateway,workflowRepository);
2932
FlowService flowService = new FlowService(mockRepositoryHolder);
3033
FlowRecordQueryMockService flowRecordQueryMockService = new FlowRecordQueryMockService(mockRepositoryHolder);
3134
MockInstance mockInstance = new MockInstance(key, mockRepositoryHolder, flowService, flowRecordQueryMockService);
3235
this.cache.put(key, mockInstance);
36+
log.info("create mock:{}",key);
3337
return mockInstance;
3438
}
3539

@@ -44,6 +48,7 @@ public MockInstance getMockInstance(String key) {
4448

4549
public void clear(String key) {
4650
this.cache.remove(key);
51+
log.info("clear mock:{}",key);
4752
}
4853

4954
}

flow-engine-framework/src/main/java/com/codingapi/flow/mock/MockRepositoryHolder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,16 @@ public class MockRepositoryHolder implements IRepositoryHolder {
3737
private final WorkflowService workflowService;
3838
private final FlowOperatorGateway flowOperatorGateway;
3939

40-
public MockRepositoryHolder(FlowOperatorGateway flowOperatorGateway) {
40+
public MockRepositoryHolder(FlowOperatorGateway flowOperatorGateway,
41+
WorkflowRepository workflowRepository) {
4142
this.flowOperatorGateway = flowOperatorGateway;
4243
this.delayTaskRepository = new DelayTaskRepositoryMockImpl();
4344
this.flowRecordRepository = new FlowRecordRepositoryMockImpl();
4445
this.flowTodoMergeRepository = new FlowTodoMergeRepositoryMockImpl();
4546
this.flowTodoRecordRepository = new FlowTodoRecordRepositoryMockImpl();
4647
this.parallelBranchRepository = new ParallelBranchRepositoryMockImpl();
4748
this.urgeIntervalRepository = new UrgeIntervalRepositoryMockImpl();
48-
this.workflowRepository = new WorkflowRepositoryMockImpl();
49+
this.workflowRepository = workflowRepository;
4950
this.workflowRuntimeRepository = new WorkflowRuntimeRepositoryMockImpl();
5051
this.workflowVersionRepository = new WorkflowVersionRepositoryMockImpl();
5152
this.flowRecordService = new FlowRecordService(flowTodoRecordRepository, flowTodoMergeRepository, flowRecordRepository);

flow-engine-framework/src/main/java/com/codingapi/flow/mock/repository/WorkflowRepositoryMockImpl.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

flow-engine-framework/src/main/java/com/codingapi/flow/mock/service/FlowRecordQueryMockService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
@AllArgsConstructor
1818
public class FlowRecordQueryMockService implements FlowRecordQueryService {
1919

20-
private final static int CURRENT_OFFSET = -1;
20+
private final static int CURRENT_OFFSET = 0;
2121

2222
private final MockRepositoryHolder mockRepositoryHolder;
2323

flow-engine-framework/src/test/java/com/codingapi/flow/factory/MyFlowServiceMockFactory.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.codingapi.flow.mock.MockRepositoryHolder;
77
import com.codingapi.flow.mock.repository.*;
88
import com.codingapi.flow.query.FlowRecordQueryService;
9+
import com.codingapi.flow.repository.WorkflowRepositoryImpl;
910
import com.codingapi.flow.service.FlowRecordService;
1011
import com.codingapi.flow.service.FlowService;
1112
import com.codingapi.flow.service.WorkflowService;
@@ -17,7 +18,7 @@ public class MyFlowServiceMockFactory {
1718
public FlowRecordRepositoryMockImpl flowRecordRepository;
1819
public WorkflowRuntimeRepositoryMockImpl workflowRuntimeRepository;
1920
public WorkflowVersionRepositoryMockImpl workflowVersionRepository;
20-
public WorkflowRepositoryMockImpl workflowRepository;
21+
public WorkflowRepositoryImpl workflowRepository;
2122
public ParallelBranchRepositoryMockImpl parallelBranchRepository;
2223
public DelayTaskRepositoryMockImpl delayTaskRepository;
2324
public UrgeIntervalRepositoryMockImpl urgeIntervalRepository;
@@ -30,15 +31,15 @@ public class MyFlowServiceMockFactory {
3031

3132
public MyFlowServiceMockFactory() {
3233
userGateway = new UserGateway();
33-
MockInstance mockInstance = MockInstanceFactory.getInstance().create(userGateway);
34+
workflowRepository = new WorkflowRepositoryImpl();
35+
MockInstance mockInstance = MockInstanceFactory.getInstance().create(userGateway,workflowRepository);
3436
flowService = mockInstance.getFlowService();
3537
repositoryHolder = (MockRepositoryHolder)flowService.getRepositoryHolder();
3638
flowTodoRecordRepository = (FlowTodoRecordRepositoryMockImpl)repositoryHolder.getFlowTodoRecordRepository();
3739
flowTodoMergeRepository = (FlowTodoMergeRepositoryMockImpl)repositoryHolder.getFlowTodoMergeRepository();
3840
flowRecordRepository = (FlowRecordRepositoryMockImpl) repositoryHolder.getFlowRecordRepository();
3941
workflowRuntimeRepository = (WorkflowRuntimeRepositoryMockImpl) repositoryHolder.getWorkflowRuntimeRepository();
4042
workflowVersionRepository = (WorkflowVersionRepositoryMockImpl)repositoryHolder.getWorkflowVersionRepository();
41-
workflowRepository = (WorkflowRepositoryMockImpl) repositoryHolder.getWorkflowRepository();
4243
parallelBranchRepository = (ParallelBranchRepositoryMockImpl) repositoryHolder.getParallelBranchRepository();
4344
delayTaskRepository = (DelayTaskRepositoryMockImpl) repositoryHolder.getDelayTaskRepository();
4445
urgeIntervalRepository = (UrgeIntervalRepositoryMockImpl) repositoryHolder.getUrgeIntervalRepository();

flow-engine-framework/src/test/java/com/codingapi/flow/service/FlowMockSampleServiceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,19 +211,19 @@ void pass() {
211211
assertEquals(2, records.stream().filter(FlowRecord::isFinish).toList().size());
212212

213213

214-
Page<FlowRecordContent> page = factory.flowRecordQueryMockService.findAll(PageRequest.of(1, 10));
214+
Page<FlowRecordContent> page = factory.flowRecordQueryMockService.findAll(PageRequest.of(0, 10));
215215
assertEquals(2, page.getTotalElements());
216216
assertEquals(2, page.getContent().size());
217217

218-
page = factory.flowRecordQueryMockService.findDoneRecordPage(user.getUserId(), PageRequest.of(1, 10));
218+
page = factory.flowRecordQueryMockService.findDoneRecordPage(user.getUserId(), PageRequest.of(0, 10));
219219
assertEquals(1, page.getTotalElements());
220220
assertEquals(1, page.getContent().size());
221221

222-
page = factory.flowRecordQueryMockService.findNotifyRecordPage(user.getUserId(),PageRequest.of(1, 10));
222+
page = factory.flowRecordQueryMockService.findNotifyRecordPage(user.getUserId(),PageRequest.of(0, 10));
223223
assertEquals(0, page.getTotalElements());
224224
assertEquals(0, page.getContent().size());
225225

226-
page = factory.flowRecordQueryMockService.findTodoRecordPage(user.getUserId(),PageRequest.of(1, 10));
226+
page = factory.flowRecordQueryMockService.findTodoRecordPage(user.getUserId(),PageRequest.of(0, 10));
227227
assertEquals(0, page.getTotalElements());
228228
assertEquals(0, page.getContent().size());
229229

flow-engine-starter-api/src/main/java/com/codingapi/flow/api/controller/WorkflowController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import com.codingapi.flow.api.pojo.NodeCreateRequest;
55
import com.codingapi.flow.api.pojo.WorkflowUpdateVersionNameRequest;
66
import com.codingapi.flow.context.GatewayContext;
7+
import com.codingapi.flow.context.RepositoryHolderContext;
8+
import com.codingapi.flow.gateway.FlowOperatorGateway;
79
import com.codingapi.flow.mock.MockInstance;
810
import com.codingapi.flow.mock.MockInstanceFactory;
911
import com.codingapi.flow.node.IBlockNode;
1012
import com.codingapi.flow.node.IFlowNode;
1113
import com.codingapi.flow.node.NodeType;
1214
import com.codingapi.flow.node.factory.NodeFactory;
1315
import com.codingapi.flow.operator.IFlowOperator;
16+
import com.codingapi.flow.repository.WorkflowRepository;
1417
import com.codingapi.flow.service.WorkflowService;
1518
import com.codingapi.flow.workflow.Workflow;
1619
import com.codingapi.flow.workflow.WorkflowBuilder;
@@ -32,6 +35,8 @@
3235
public class WorkflowController {
3336

3437
private final WorkflowService workflowService;
38+
private final WorkflowRepository workflowRepository;
39+
private final FlowOperatorGateway flowOperatorGateway;
3540

3641
@PostMapping("/remove")
3742
public Response remove(@RequestBody IdRequest request) {
@@ -74,7 +79,7 @@ public Response changeState(@RequestBody IdRequest request) {
7479

7580
@PostMapping("/mock")
7681
public SingleResponse<String> mock() {
77-
MockInstance mockInstance = MockInstanceFactory.getInstance().create(GatewayContext.getInstance().getFlowOperatorGateway());
82+
MockInstance mockInstance = MockInstanceFactory.getInstance().create(flowOperatorGateway,workflowRepository);
7883
return SingleResponse.of(mockInstance.getMockKey());
7984
}
8085

flow-engine-starter-query/src/main/java/com/codingapi/flow/query/controller/FlowRecordQueryController.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public MultiResponse<FlowRecordContent> list(SearchRequest request) {
6969
@GetMapping("/todo")
7070
public MultiResponse<FlowRecordContent> todo(SearchRequest request) {
7171
long operatorId = loadCurrentOperatorId();
72+
FlowRecordQueryService flowRecordQueryService = loadFlowService();
7273
PageRequest pageRequest = PageRequest.of(request.getCurrent(), request.getPageSize()).withSort(Sort.by("id").descending());
7374
return MultiResponse.of(flowRecordQueryService.findTodoRecordPage(operatorId,pageRequest));
7475
}
@@ -79,6 +80,7 @@ public MultiResponse<FlowRecordContent> todo(SearchRequest request) {
7980
@GetMapping("/notify")
8081
public MultiResponse<FlowRecordContent> notify(SearchRequest request) {
8182
long operatorId = loadCurrentOperatorId();
83+
FlowRecordQueryService flowRecordQueryService = loadFlowService();
8284
PageRequest pageRequest = PageRequest.of(request.getCurrent(), request.getPageSize()).withSort(Sort.by("id").descending());
8385
return MultiResponse.of(flowRecordQueryService.findNotifyRecordPage(operatorId,pageRequest));
8486
}
@@ -90,6 +92,7 @@ public MultiResponse<FlowRecordContent> notify(SearchRequest request) {
9092
@GetMapping("/done")
9193
public MultiResponse<FlowRecordContent> done(SearchRequest request) {
9294
long operatorId = loadCurrentOperatorId();
95+
FlowRecordQueryService flowRecordQueryService = loadFlowService();
9396
PageRequest pageRequest = PageRequest.of(request.getCurrent(), request.getPageSize()).withSort(Sort.by("id").descending());
9497
return MultiResponse.of(flowRecordQueryService.findDoneRecordPage(operatorId,pageRequest));
9598
}

flow-frontend

Submodule flow-frontend updated 33 files

0 commit comments

Comments
 (0)