From 8a452b84399ac9dd386a9525186aa61419168e76 Mon Sep 17 00:00:00 2001 From: yanglin Date: Tue, 30 Apr 2024 17:24:45 +0800 Subject: [PATCH] REQ-2405: fix bugs --- .../todo/mybatis/ReplaceInterceptor.java | 6 ++- .../service/todo/mybatis/Replacement.java | 8 +++ .../dal/mapper/MessageRecordMapper.java | 1 + .../resources/mapper/MessageRecordMapper.xml | 8 +++ .../dal/mapper/MessageRecordMapperTest.java | 50 +++++++++++++++++++ 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 start/src/test/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapperTest.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/ReplaceInterceptor.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/ReplaceInterceptor.java index 1f107b85..85a39e75 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/ReplaceInterceptor.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/ReplaceInterceptor.java @@ -42,11 +42,11 @@ public class ReplaceInterceptor implements Interceptor { private static final ThreadLocal LOCAL = new ThreadLocal<>(); - public static void enableReplacement(Replacement replacement) { + public static void enable(Replacement replacement) { LOCAL.set(replacement); } - public static void disableReplacement() { + public static void disable() { LOCAL.remove(); } @@ -67,6 +67,8 @@ public class ReplaceInterceptor implements Interceptor { stmt = parser.parseSelect(); } else if (commandType == SqlCommandType.INSERT) { stmt = parser.parseInsert(); + } else if (commandType == SqlCommandType.DELETE) { + stmt = parser.parseDeleteStatement(); } else { return invocation.proceed(); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/Replacement.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/Replacement.java index 856d68ae..bfc066bd 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/Replacement.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/mybatis/Replacement.java @@ -19,4 +19,12 @@ public enum Replacement { private final String destTable; private final boolean insertPreserveId; + public void run(Runnable runnable) { + ReplaceInterceptor.enable(this); + try { + runnable.run(); + } finally { + ReplaceInterceptor.disable(); + } + } } \ No newline at end of file diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java index 8835d2d0..f132d8e6 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java @@ -24,6 +24,7 @@ import java.util.List; /*@Mapper*/ public interface MessageRecordMapper extends IterableMapper { + void deleteRecordsPhysically(@Param("ids") List ids); List statisticsMsg(@Param("bizType") Integer bizType, @Param("personId") Long personId, diff --git a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml index 9f580563..96b89925 100644 --- a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml +++ b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml @@ -2,6 +2,14 @@ + + DELETE FROM message_record + WHERE id IN + + #{id} + + +