package com.nanjing.water.repository.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nanjing.water.common.PagerResult; import com.nanjing.water.common.enums.EYesOrNo; import com.nanjing.water.common.util.ListUtil; import com.nanjing.water.common.util.NumericUtil; import com.nanjing.water.common.util.StringUtil; import com.nanjing.water.entity.dto.OrderByDTO; import com.nanjing.water.entity.dto.SearchBasicDTO; import com.nanjing.water.entity.enums.EOrderBy; import com.nanjing.water.entity.search.SearchQuartzTaskRecord; import com.nanjing.water.repository.BasicMapperImpl; import com.nanjing.water.repository.mapper.QuartzTaskRecordMapper; import com.nanjing.water.repository.po.QuartzTaskRecordPO; import org.springframework.stereotype.Repository; /** * 定时任务执行情况记录表 * @author lin.liu * @description 定时任务执行情况记录表 */ @Repository public class QuartzTaskRecordMapperImpl extends BasicMapperImpl<QuartzTaskRecordPO, QuartzTaskRecordMapper> { public QuartzTaskRecordMapperImpl(QuartzTaskRecordMapper mapper) { super(mapper); } /** * 分页查询 * * @param request è¯·æ±‚å‚æ•° */ @Override public PagerResult<QuartzTaskRecordPO> search(SearchBasicDTO request) { // 查询æ¡ä»¶ç±»åž‹è¿˜åŽŸ SearchQuartzTaskRecord search = (SearchQuartzTaskRecord)request; LambdaQueryWrapper<QuartzTaskRecordPO> queryWrapper = this.query(); // 状æ€éžé€»è¾‘åˆ é™¤ queryWrapper.eq(QuartzTaskRecordPO::getIsDelete, EYesOrNo.NO.getValue()); // çŠ¶æ€ queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, QuartzTaskRecordPO::getTaskStatus, search.getStatus()); // 状æ€åˆ—表 queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), QuartzTaskRecordPO::getTaskStatus, search.getListStatus()); // æ•°æ®åˆ›å»ºæ—¶é—´-èµ·å§‹ queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, QuartzTaskRecordPO::getCreateTime, search.getCreateTimeStart()); // æ•°æ®åˆ›å»ºæ—¶é—´-æˆªæ¢ queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, QuartzTaskRecordPO::getCreateTime, search.getCreateTimeEnd()); // ä»»åŠ¡ç¼–å· queryWrapper.eq(StringUtil.isNotNullOrEmpty(search.getTaskNo()), QuartzTaskRecordPO::getTaskNo, search.getTaskNo()); // 执行时间-èµ·å§‹ queryWrapper.ge(NumericUtil.tryParseLong(search.getExecuteTimeStart()).compareTo(0L) > 0, QuartzTaskRecordPO::getStartTime, search.getExecuteTimeStart()); // 执行时间-æˆªæ¢ queryWrapper.le(NumericUtil.tryParseLong(search.getExecuteTimeEnd()).compareTo(0L) > 0, QuartzTaskRecordPO::getStartTime, search.getExecuteTimeEnd()); // å…³é”®å— //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) { // queryWrapper.and(q -> // q.like(QuartzTaskRecordPO::getRealName, search.getKeywords()) // .or().like(QuartzTaskRecordPO::getContactPhone, search.getKeywords()) // ); //} // 排åºå¤„ç† if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) { for (OrderByDTO item : search.getOrderBy()) { EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy()); // é¡ºåºæŽ’åº if (item.getIsAsc()) { switch (orderBy) { // 主键 case ID: queryWrapper.orderByAsc(QuartzTaskRecordPO::getId); break; // æ•°æ®åˆ›å»ºæ—¶é—´ case CREATE_TIME: queryWrapper.orderByAsc(QuartzTaskRecordPO::getCreateTime); break; // æœ€åŽæ›´æ–°æ—¶é—´ case UPDATE_TIME: queryWrapper.orderByAsc(QuartzTaskRecordPO::getUpdateTime); break; } } else { // å€’å™æŽ’åº switch (orderBy) { // 主键 case ID: queryWrapper.orderByAsc(QuartzTaskRecordPO::getId); break; // æ•°æ®åˆ›å»ºæ—¶é—´ case CREATE_TIME: queryWrapper.orderByAsc(QuartzTaskRecordPO::getCreateTime); break; // æœ€åŽæ›´æ–°æ—¶é—´ case UPDATE_TIME: queryWrapper.orderByAsc(QuartzTaskRecordPO::getUpdateTime); break; } } } } else { queryWrapper.orderByDesc(QuartzTaskRecordPO::getId); } Page<QuartzTaskRecordPO> pageResult = DB.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper); return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords()); } public int clear4DateTime(long time) { LambdaQueryWrapper<QuartzTaskRecordPO> query = this.query(); query.lt(QuartzTaskRecordPO::getCreateTime, time); return DB.delete(query); } }