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 implements JobLogService { @Autowired private JobLogMapper jobLogMapper; @SneakyThrows @Override public PageResultDTO listJobLogs(JobLogSearchVO jobLogSearchVO) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .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 page = new Page<>(PageUtil.getCurrent(), PageUtil.getSize()); Page jobLogPage = jobLogMapper.selectPage(page, queryWrapper); List jobLogDTOs = BeanCopyUtil.copyList(jobLogPage.getRecords(), JobLogDTO.class); return new PageResultDTO<>(jobLogDTOs, (int)jobLogPage.getTotal()); } @Override public void deleteJobLogs(List ids) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().in(JobLog::getId, ids); jobLogMapper.delete(queryWrapper); } @Override public void cleanJobLogs() { jobLogMapper.delete(null); } @Override public List listJobLogGroups() { return jobLogMapper.listJobLogGroups(); } }