From ebbcbbd990ffa500a753ee1fd4c28644ecd0fa5b Mon Sep 17 00:00:00 2001 From: xlsea Date: Mon, 24 Jun 2024 10:31:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(sj=5Fmap=5Freduce):=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=A1=B9=E6=A0=91=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=94=AF=E6=8C=81=E5=A4=9A=E5=B1=82=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/JobTaskController.java | 2 +- .../web/model/response/JobTaskResponseVO.java | 7 ++- .../server/web/service/JobTaskService.java | 2 +- .../web/service/impl/JobTaskServiceImpl.java | 46 +++++++++---------- 4 files changed, 28 insertions(+), 29 deletions(-) diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobTaskController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobTaskController.java index b1aa0c712..f6ae40e6c 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobTaskController.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/JobTaskController.java @@ -32,7 +32,7 @@ public class JobTaskController { @GetMapping("/tree/list") @LoginRequired - public PageResult>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO) { + public List getTreeJobTask(JobTaskQueryVO jobTaskQueryVO) { return jobTaskService.getTreeJobTask(jobTaskQueryVO); } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java index 291a16b72..c977861fd 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/JobTaskResponseVO.java @@ -15,13 +15,16 @@ public class JobTaskResponseVO { private Long id; - private Long key; - /** * 组名称 */ private String groupName; + /** + * 任务名称 + */ + private String taskName; + /** * 任务信息id */ diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobTaskService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobTaskService.java index 95f75c581..c35bc1085 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobTaskService.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/JobTaskService.java @@ -16,5 +16,5 @@ public interface JobTaskService { PageResult> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO); - PageResult>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO); + List getTreeJobTask(JobTaskQueryVO jobTaskQueryVO); } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java index 8730b4431..56cc6f398 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/JobTaskServiceImpl.java @@ -48,24 +48,11 @@ public class JobTaskServiceImpl implements JobTaskService { List records = selectPage.getRecords(); - if (CollUtil.isEmpty(records)) { - return new PageResult<>(pageDTO, new ArrayList<>()); - } - - List jobTaskResponseVOs = JobTaskResponseVOConverter.INSTANCE.convertList( - records); - - Set parentIds = StreamUtils.toSet(jobTaskResponseVOs, JobTaskResponseVO::getId); - List jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper() - .select(JobTask::getParentId).in(JobTask::getParentId, parentIds)); - Set jobTaskParentIds = StreamUtils.toSet(jobTasks, JobTask::getParentId); - jobTaskResponseVOs.forEach(jobTask -> jobTask.setChildNode(!jobTaskParentIds.contains(jobTask.getId()))); - - return new PageResult<>(pageDTO, jobTaskResponseVOs); + return new PageResult<>(pageDTO, convertJobTaskList(records)); } @Override - public PageResult>> getTreeJobTask(final JobTaskQueryVO queryVO) { + public List getTreeJobTask(final JobTaskQueryVO queryVO) { List taskList = jobTaskMapper.selectList( new LambdaQueryWrapper() .eq(Objects.nonNull(queryVO.getParentId()), JobTask::getParentId, queryVO.getParentId()) @@ -74,15 +61,24 @@ public class JobTaskServiceImpl implements JobTaskService { // SQLServer 分页必须 ORDER BY .orderByAsc(JobTask::getJobId)); - TreeNodeConfig config = new TreeNodeConfig(); - config.setNameKey("taskName"); - config.setChildrenKey("children"); - List> treeList = TreeUtil.build(taskList, Objects.nonNull(queryVO.getParentId()) ? queryVO.getParentId() : 0L, config, (jobTask, tree) -> { - tree.putAll(JsonUtil.parseHashMap(JsonUtil.toJsonString(jobTask), Object.class)); - tree.setId(jobTask.getId()); - tree.setParentId(jobTask.getParentId()); - }); - - return new PageResult<>(new PageDTO<>(queryVO.getPage(), queryVO.getSize(), treeList.size()), treeList); + return convertJobTaskList(taskList); } + + private List convertJobTaskList(List taskList) { + if (CollUtil.isEmpty(taskList)) { + return new ArrayList<>(); + } + + List jobTaskResponseVOs = JobTaskResponseVOConverter.INSTANCE.convertList( + taskList); + + Set parentIds = StreamUtils.toSet(jobTaskResponseVOs, JobTaskResponseVO::getId); + List jobTasks = jobTaskMapper.selectList(new LambdaQueryWrapper() + .select(JobTask::getParentId).in(JobTask::getParentId, parentIds)); + Set jobTaskParentIds = StreamUtils.toSet(jobTasks, JobTask::getParentId); + jobTaskResponseVOs.forEach(jobTask -> jobTask.setChildNode(!jobTaskParentIds.contains(jobTask.getId()))); + + return jobTaskResponseVOs; + } + }