diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java index de3b9bd6..fa069de8 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/dao/mapper/BlackAndWhiteListMapper.java @@ -3,6 +3,10 @@ package cn.axzo.nanopart.server.dao.mapper; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; /** * @author: chenwenjian @@ -14,4 +18,19 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BlackAndWhiteListMapper extends BaseMapper { + /** + * 查询已经删除的记录 + * + * @param startId + * @param limit + * @return + */ + List listDeleted(@Param("startId") Long startId, @Param("limit") Long limit); + + /** + * 物理删除已经删除的记录 + * + * @param ids + */ + void absoluteDeletedByIds(@Param("ids") Collection ids); } diff --git a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/ArchiveBlackWhiteListJob.java b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/ArchiveBlackWhiteListJob.java index 7fbef498..c76a654f 100644 --- a/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/ArchiveBlackWhiteListJob.java +++ b/black-list/black-list-service/src/main/java/cn/axzo/nanopart/server/job/ArchiveBlackWhiteListJob.java @@ -1,10 +1,9 @@ package cn.axzo.nanopart.server.job; -import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteList; import cn.axzo.nanopart.server.dao.entity.SaasBlackWhiteListHistory; +import cn.axzo.nanopart.server.dao.mapper.BlackAndWhiteListMapper; import cn.axzo.nanopart.server.dao.repository.BlackAndWhiteListHistoryRepository; -import cn.axzo.nanopart.server.dao.repository.BlackAndWhiteListRepository; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.XxlJob; @@ -25,7 +24,7 @@ import java.util.stream.Collectors; public class ArchiveBlackWhiteListJob extends IJobHandler { private static final String LIMIT_SUFFIX = " limit 200 "; @Autowired - private BlackAndWhiteListRepository repository; + private BlackAndWhiteListMapper mapper; @Autowired private BlackAndWhiteListHistoryRepository historyRepository; @@ -40,15 +39,10 @@ public class ArchiveBlackWhiteListJob extends IJobHandler { public ReturnT execute(String param) throws Exception { log.info("archiveBlackWhiteListJob start."); XxlJobLogger.log("archiveBlackWhiteListJob start."); - long offset = 0L; + long startId = 0L; long totalCount = 0L; while (true) { - List list = repository.lambdaQuery() - .ne(SaasBlackWhiteList::getIsDelete, TableIsDeleteEnum.NORMAL.value) - .gt(SaasBlackWhiteList::getId, offset) - .orderByAsc(SaasBlackWhiteList::getId) - .last(LIMIT_SUFFIX) - .list(); + List list = mapper.listDeleted(startId, 200L); if (list.isEmpty()) { break; } @@ -63,10 +57,10 @@ public class ArchiveBlackWhiteListJob extends IJobHandler { .updateBy(e.getUpdateBy()) .build()) .collect(Collectors.toList()); - repository.deleteByIds(list.stream().map(SaasBlackWhiteList::getId).collect(Collectors.toSet())); + mapper.absoluteDeletedByIds(list.stream().map(SaasBlackWhiteList::getId).collect(Collectors.toSet())); historyRepository.saveBatch(histories); totalCount += list.size(); - offset = list.get(list.size() - 1).getId(); + startId = list.get(list.size() - 1).getId(); } log.info("archiveBlackWhiteListJob end. totalCount = {}", totalCount); XxlJobLogger.log("archiveBlackWhiteListJob end. totalCount = " + totalCount); diff --git a/black-list/black-list-service/src/main/resources/mapper/BlackAndWhiteListMapper.xml b/black-list/black-list-service/src/main/resources/mapper/BlackAndWhiteListMapper.xml new file mode 100644 index 00000000..85a2f106 --- /dev/null +++ b/black-list/black-list-service/src/main/resources/mapper/BlackAndWhiteListMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + DELETE + FROM + `saas_black_white_list` + WHERE + `id` in + + #{id} + + AND `is_delete` > 0 + + + \ No newline at end of file