fix(sj_1.1.0): 新增任务项列表查询接口
1. 任务项列表以树形方式展示任务列表
This commit is contained in:
parent
a50ce8a8fc
commit
e7abb949e9
@ -1,11 +1,12 @@
|
||||
package com.aizuda.snailjob.server.web.controller;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import com.aizuda.snailjob.server.web.annotation.LoginRequired;
|
||||
import com.aizuda.snailjob.server.web.model.base.PageResult;
|
||||
import com.aizuda.snailjob.server.web.model.request.JobTaskQueryVO;
|
||||
import com.aizuda.snailjob.server.web.model.response.JobTaskResponseVO;
|
||||
import com.aizuda.snailjob.server.web.service.JobTaskService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -19,10 +20,9 @@ import java.util.List;
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/job/task")
|
||||
@RequiredArgsConstructor
|
||||
public class JobTaskController {
|
||||
|
||||
@Autowired
|
||||
private JobTaskService jobTaskService;
|
||||
private final JobTaskService jobTaskService;
|
||||
|
||||
@GetMapping("/list")
|
||||
@LoginRequired
|
||||
@ -30,4 +30,10 @@ public class JobTaskController {
|
||||
return jobTaskService.getJobTaskPage(jobTaskQueryVO);
|
||||
}
|
||||
|
||||
@GetMapping("/tree/list")
|
||||
@LoginRequired
|
||||
public List<Tree<Long>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO) {
|
||||
return jobTaskService.getTreeJobTask(jobTaskQueryVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,4 +14,5 @@ import lombok.EqualsAndHashCode;
|
||||
public class JobTaskQueryVO extends BaseQueryVO {
|
||||
private Long jobId;
|
||||
private Long taskBatchId;
|
||||
private Long parentId;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.aizuda.snailjob.server.web.service;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import com.aizuda.snailjob.server.web.model.base.PageResult;
|
||||
import com.aizuda.snailjob.server.web.model.request.JobTaskQueryVO;
|
||||
import com.aizuda.snailjob.server.web.model.response.JobTaskResponseVO;
|
||||
@ -14,4 +15,6 @@ import java.util.List;
|
||||
public interface JobTaskService {
|
||||
|
||||
PageResult<List<JobTaskResponseVO>> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO);
|
||||
|
||||
List<Tree<Long>> getTreeJobTask(JobTaskQueryVO jobTaskQueryVO);
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
package com.aizuda.snailjob.server.web.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNode;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import com.aizuda.snailjob.common.core.util.JsonUtil;
|
||||
import com.aizuda.snailjob.server.web.model.base.PageResult;
|
||||
import com.aizuda.snailjob.server.web.model.request.JobTaskQueryVO;
|
||||
import com.aizuda.snailjob.server.web.model.response.JobTaskResponseVO;
|
||||
@ -12,6 +16,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@ -46,4 +51,26 @@ public class JobTaskServiceImpl implements JobTaskService {
|
||||
|
||||
return new PageResult<>(pageDTO, jobTaskResponseVOs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tree<Long>> getTreeJobTask(final JobTaskQueryVO queryVO) {
|
||||
List<JobTask> jobTasks = jobTaskMapper.selectList(
|
||||
new LambdaQueryWrapper<JobTask>()
|
||||
.eq(JobTask::getParentId, queryVO.getParentId())
|
||||
.eq(Objects.nonNull(queryVO.getJobId()), JobTask::getJobId, queryVO.getJobId())
|
||||
.eq(Objects.nonNull(queryVO.getTaskBatchId()), JobTask::getTaskBatchId, queryVO.getTaskBatchId())
|
||||
// SQLServer 分页必须 ORDER BY
|
||||
.orderByAsc(JobTask::getJobId));
|
||||
|
||||
List<TreeNode<Long>> treeNodes = new ArrayList<>();
|
||||
for (final JobTask jobTask : jobTasks) {
|
||||
TreeNode<Long> treeNode = new TreeNode<>();
|
||||
treeNode.setId(jobTask.getId());
|
||||
treeNode.setName(jobTask.getTaskName());
|
||||
treeNode.setExtra(JsonUtil.parseHashMap(JsonUtil.toJsonString(jobTask), Object.class));
|
||||
treeNodes.add(treeNode);
|
||||
}
|
||||
|
||||
return TreeUtil.build(treeNodes, 0L);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user