package cn.lihu.jh.module.infra.dal.mysql.job; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.lihu.jh.module.infra.controller.admin.job.vo.log.JobLogPageReqVO; import cn.lihu.jh.module.infra.dal.dataobject.job.JobLogDO; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.time.LocalDateTime; /** * 任务日志 Mapper * * @author 芋道源码 */ @Mapper public interface JobLogMapper extends BaseMapperX { default PageResult selectPage(JobLogPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(JobLogDO::getJobId, reqVO.getJobId()) .likeIfPresent(JobLogDO::getHandlerName, reqVO.getHandlerName()) .geIfPresent(JobLogDO::getBeginTime, reqVO.getBeginTime()) .leIfPresent(JobLogDO::getEndTime, reqVO.getEndTime()) .eqIfPresent(JobLogDO::getStatus, reqVO.getStatus()) .orderByDesc(JobLogDO::getId) // ID 倒序 ); } /** * 物理删除指定时间之前的日志 * * @param createTime 最大时间 * @param limit 删除条数,防止一次删除太多 * @return 删除条数 */ @Delete("DELETE FROM infra_job_log WHERE create_time < #{createTime} LIMIT #{limit}") Integer deleteByCreateTimeLt(@Param("createTime") LocalDateTime createTime, @Param("limit") Integer limit); }