You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dsl3/service/impl/JobLogServiceImpl.java

64 lines
2.7 KiB

package com.aurora.service.impl;
import com.aurora.model.dto.JobLogDTO;
import com.aurora.entity.JobLog;
import com.aurora.mapper.JobLogMapper;
import com.aurora.service.JobLogService;
import com.aurora.util.BeanCopyUtil;
import com.aurora.util.PageUtil;
import com.aurora.model.vo.JobLogSearchVO;
import com.aurora.model.dto.PageResultDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
@Service
public class JobLogServiceImpl extends ServiceImpl<JobLogMapper, JobLog> implements JobLogService {
@Autowired
private JobLogMapper jobLogMapper;
@SneakyThrows
@Override
public PageResultDTO<JobLogDTO> listJobLogs(JobLogSearchVO jobLogSearchVO) {
LambdaQueryWrapper<JobLog> queryWrapper = new LambdaQueryWrapper<JobLog>()
.orderByDesc(JobLog::getCreateTime)
.eq(Objects.nonNull(jobLogSearchVO.getJobId()), JobLog::getJobId, jobLogSearchVO.getJobId())
.like(StringUtils.isNotBlank(jobLogSearchVO.getJobName()), JobLog::getJobName, jobLogSearchVO.getJobName())
.like(StringUtils.isNotBlank(jobLogSearchVO.getJobGroup()), JobLog::getJobGroup, jobLogSearchVO.getJobGroup())
.eq(Objects.nonNull(jobLogSearchVO.getStatus()), JobLog::getStatus, jobLogSearchVO.getStatus())
.between(Objects.nonNull(jobLogSearchVO.getStartTime()) && Objects.nonNull(jobLogSearchVO.getEndTime()),
JobLog::getCreateTime,
jobLogSearchVO.getStartTime(),
jobLogSearchVO.getEndTime());
Page<JobLog> page = new Page<>(PageUtil.getCurrent(), PageUtil.getSize());
Page<JobLog> jobLogPage = jobLogMapper.selectPage(page, queryWrapper);
List<JobLogDTO> jobLogDTOs = BeanCopyUtil.copyList(jobLogPage.getRecords(), JobLogDTO.class);
return new PageResultDTO<>(jobLogDTOs, (int)jobLogPage.getTotal());
}
@Override
public void deleteJobLogs(List<Integer> ids) {
LambdaQueryWrapper<JobLog> queryWrapper = new LambdaQueryWrapper<JobLog>().in(JobLog::getId, ids);
jobLogMapper.delete(queryWrapper);
}
@Override
public void cleanJobLogs() {
jobLogMapper.delete(null);
}
@Override
public List<String> listJobLogGroups() {
return jobLogMapper.listJobLogGroups();
}
}