refactor: JobServiceImpl wrapper简化
This commit is contained in:
parent
ed4ec0b340
commit
aa486ad9c4
@ -30,12 +30,6 @@ import com.aizuda.snailjob.template.datasource.access.AccessTemplate;
|
|||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig;
|
import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.Job;
|
import com.aizuda.snailjob.template.datasource.persistence.po.Job;
|
||||||
import com.aizuda.snailjob.server.job.task.dto.JobTaskPrepareDTO;
|
|
||||||
import com.aizuda.snailjob.server.job.task.support.JobPrePareHandler;
|
|
||||||
import com.aizuda.snailjob.server.job.task.support.JobTaskConverter;
|
|
||||||
import com.aizuda.snailjob.server.job.task.support.cache.ResidentTaskCache;
|
|
||||||
import com.aizuda.snailjob.server.web.service.convert.JobConverter;
|
|
||||||
import com.aizuda.snailjob.server.web.service.convert.JobResponseVOConverter;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -63,34 +57,33 @@ public class JobServiceImpl implements JobService {
|
|||||||
private final JobPrePareHandler terminalJobPrepareHandler;
|
private final JobPrePareHandler terminalJobPrepareHandler;
|
||||||
private final AccessTemplate accessTemplate;
|
private final AccessTemplate accessTemplate;
|
||||||
|
|
||||||
|
private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) {
|
||||||
|
if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) {
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
|
||||||
|
WaitStrategy waitStrategy = WaitStrategies.WaitStrategyEnum.getWaitStrategy(jobRequestVO.getTriggerType());
|
||||||
|
WaitStrategies.WaitStrategyContext waitStrategyContext = new WaitStrategies.WaitStrategyContext();
|
||||||
|
waitStrategyContext.setTriggerInterval(jobRequestVO.getTriggerInterval());
|
||||||
|
waitStrategyContext.setNextTriggerAt(time);
|
||||||
|
return waitStrategy.computeTriggerTime(waitStrategyContext);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<List<JobResponseVO>> getJobPage(JobQueryVO queryVO) {
|
public PageResult<List<JobResponseVO>> getJobPage(JobQueryVO queryVO) {
|
||||||
|
|
||||||
PageDTO<Job> pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
|
PageDTO<Job> pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
|
||||||
UserSessionVO userSessionVO = UserSessionUtils.currentUserSession();
|
UserSessionVO userSessionVO = UserSessionUtils.currentUserSession();
|
||||||
LambdaQueryWrapper<Job> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Job> wrapper = new LambdaQueryWrapper<Job>()
|
||||||
queryWrapper.eq(Job::getDeleted, StatusEnum.NO.getStatus());
|
.eq(Job::getDeleted, StatusEnum.NO.getStatus())
|
||||||
queryWrapper.eq(Job::getNamespaceId, userSessionVO.getNamespaceId());
|
.eq(Job::getNamespaceId, userSessionVO.getNamespaceId())
|
||||||
|
.in(userSessionVO.isUser(), Job::getGroupName, userSessionVO.getGroupNames())
|
||||||
if (userSessionVO.isUser()) {
|
.eq(StrUtil.isNotBlank(queryVO.getGroupName()), Job::getGroupName, queryVO.getGroupName())
|
||||||
queryWrapper.in(Job::getGroupName, userSessionVO.getGroupNames());
|
.likeRight(StrUtil.isNotBlank(queryVO.getJobName()), Job::getJobName, queryVO.getJobName().trim())
|
||||||
}
|
.eq(Objects.nonNull(queryVO.getJobStatus()), Job::getJobStatus, queryVO.getJobStatus())
|
||||||
|
.eq(Job::getDeleted, StatusEnum.NO.getStatus())
|
||||||
if (StrUtil.isNotBlank(queryVO.getGroupName())) {
|
.orderByDesc(Job::getId);
|
||||||
queryWrapper.eq(Job::getGroupName, queryVO.getGroupName());
|
PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO, wrapper);
|
||||||
}
|
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(queryVO.getJobName())) {
|
|
||||||
queryWrapper.like(Job::getJobName, queryVO.getJobName().trim() + "%");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Objects.nonNull(queryVO.getJobStatus())) {
|
|
||||||
queryWrapper.eq(Job::getJobStatus, queryVO.getJobStatus());
|
|
||||||
}
|
|
||||||
|
|
||||||
queryWrapper.eq(Job::getDeleted, StatusEnum.NO.getStatus());
|
|
||||||
queryWrapper.orderByDesc(Job::getId);
|
|
||||||
PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO, queryWrapper);
|
|
||||||
|
|
||||||
List<JobResponseVO> jobResponseList = JobResponseVOConverter.INSTANCE.toJobResponseVOs(selectPage.getRecords());
|
List<JobResponseVO> jobResponseList = JobResponseVOConverter.INSTANCE.toJobResponseVOs(selectPage.getRecords());
|
||||||
|
|
||||||
@ -99,7 +92,6 @@ public class JobServiceImpl implements JobService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JobResponseVO getJobDetail(Long id) {
|
public JobResponseVO getJobDetail(Long id) {
|
||||||
|
|
||||||
Job job = jobMapper.selectById(id);
|
Job job = jobMapper.selectById(id);
|
||||||
return JobResponseVOConverter.INSTANCE.toJobResponseVO(job);
|
return JobResponseVOConverter.INSTANCE.toJobResponseVO(job);
|
||||||
}
|
}
|
||||||
@ -114,21 +106,12 @@ public class JobServiceImpl implements JobService {
|
|||||||
|
|
||||||
UserSessionVO userSessionVO = UserSessionUtils.currentUserSession();
|
UserSessionVO userSessionVO = UserSessionUtils.currentUserSession();
|
||||||
LambdaQueryWrapper<Job> queryWrapper = new LambdaQueryWrapper<Job>()
|
LambdaQueryWrapper<Job> queryWrapper = new LambdaQueryWrapper<Job>()
|
||||||
.select(Job::getId, Job::getJobName);
|
.select(Job::getId, Job::getJobName)
|
||||||
queryWrapper.eq(Job::getNamespaceId, userSessionVO.getNamespaceId());
|
.eq(Job::getNamespaceId, userSessionVO.getNamespaceId())
|
||||||
if (StrUtil.isNotBlank(keywords)) {
|
.likeRight(StrUtil.isNotBlank(keywords.trim()), Job::getJobName, keywords.trim())
|
||||||
queryWrapper.like(Job::getJobName, keywords.trim() + "%");
|
.eq(StrUtil.isNotBlank(groupName), Job::getGroupName, groupName)
|
||||||
}
|
.eq(Objects.nonNull(jobId), Job::getId, jobId)
|
||||||
|
.eq(Job::getDeleted, StatusEnum.NO.getStatus())
|
||||||
if (StrUtil.isNotBlank(groupName)) {
|
|
||||||
queryWrapper.eq(Job::getGroupName, groupName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Objects.nonNull(jobId)) {
|
|
||||||
queryWrapper.eq(Job::getId, jobId);
|
|
||||||
}
|
|
||||||
|
|
||||||
queryWrapper.eq(Job::getDeleted, StatusEnum.NO.getStatus())
|
|
||||||
.orderByAsc(Job::getId); // SQLServer 分页必须 ORDER BY
|
.orderByAsc(Job::getId); // SQLServer 分页必须 ORDER BY
|
||||||
PageDTO<Job> pageDTO = new PageDTO<>(1, 20);
|
PageDTO<Job> pageDTO = new PageDTO<>(1, 20);
|
||||||
PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO, queryWrapper);
|
PageDTO<Job> selectPage = jobMapper.selectPage(pageDTO, queryWrapper);
|
||||||
@ -180,18 +163,6 @@ public class JobServiceImpl implements JobService {
|
|||||||
return 1 == jobMapper.updateById(updateJob);
|
return 1 == jobMapper.updateById(updateJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Long calculateNextTriggerAt(final JobRequestVO jobRequestVO, Long time) {
|
|
||||||
if (Objects.equals(jobRequestVO.getTriggerType(), SystemConstants.WORKFLOW_TRIGGER_TYPE)) {
|
|
||||||
return 0L;
|
|
||||||
}
|
|
||||||
|
|
||||||
WaitStrategy waitStrategy = WaitStrategies.WaitStrategyEnum.getWaitStrategy(jobRequestVO.getTriggerType());
|
|
||||||
WaitStrategies.WaitStrategyContext waitStrategyContext = new WaitStrategies.WaitStrategyContext();
|
|
||||||
waitStrategyContext.setTriggerInterval(jobRequestVO.getTriggerInterval());
|
|
||||||
waitStrategyContext.setNextTriggerAt(time);
|
|
||||||
return waitStrategy.computeTriggerTime(waitStrategyContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Job updateJobResident(JobRequestVO jobRequestVO) {
|
public Job updateJobResident(JobRequestVO jobRequestVO) {
|
||||||
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
Job job = JobConverter.INSTANCE.toJob(jobRequestVO);
|
||||||
|
Loading…
Reference in New Issue
Block a user