From ce87db5b3e68d24810a49e36b6e557870bc52358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E6=95=8F?= Date: Fri, 23 Aug 2024 10:54:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-2649):=20=E5=A2=9E=E5=8A=A0=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E5=8E=86=E5=8F=B2=E8=A1=A8=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?job=E5=AE=9A=E6=9C=9F=E5=BD=92=E6=A1=A3=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=20step2=20=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=88=A0=E9=99=A4=E6=8F=92=E4=BB=B6=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E6=9F=A5=E8=AF=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/mapper/BlackAndWhiteListMapper.java | 19 ++++++++++ .../server/job/ArchiveBlackWhiteListJob.java | 18 +++------ .../mapper/BlackAndWhiteListMapper.xml | 38 +++++++++++++++++++ 3 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 black-list/black-list-service/src/main/resources/mapper/BlackAndWhiteListMapper.xml 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