From 111e559e11137ba87db3ff978db933170b7cb158 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 05 七月 2025 15:58:06 +0800
Subject: [PATCH] no message
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/DataChangeInterceptor.java | 216 +++++++++++++++++++++++++++---------------------------
1 files changed, 108 insertions(+), 108 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/DataChangeInterceptor.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/DataChangeInterceptor.java
index da14f60..011a2dc 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/DataChangeInterceptor.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/interceptor/DataChangeInterceptor.java
@@ -1,108 +1,108 @@
-package com.zy.asrs.wms.common.interceptor;
-
-import com.zy.asrs.framework.common.SpringUtils;
-import com.zy.asrs.wms.common.constant.RedisConstants;
-import com.zy.asrs.wms.utils.RedisUtil;
-import org.apache.ibatis.executor.statement.StatementHandler;
-import org.apache.ibatis.plugin.*;
-import java.sql.Connection;
-import java.util.Properties;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-@Intercepts({
- @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
-})
-public class DataChangeInterceptor implements Interceptor {
-
- @Override
- public Object intercept(Invocation invocation) throws Throwable {
- StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
- String sql = statementHandler.getBoundSql().getSql();
- if (sql != null) {
- String trimmedSql = sql.trim().toUpperCase();
-// System.out.println("SQL: " + sql);
- if (trimmedSql.startsWith("INSERT")) {
- clearRedisCache(trimmedSql);
- } else if (trimmedSql.startsWith("UPDATE")) {
- clearRedisCache(trimmedSql);
- } else if (trimmedSql.startsWith("DELETE")) {
- clearRedisCache(trimmedSql);
- }
- }
-
- // 鏍规嵁闇�瑕佽繘琛孲QL瑙f瀽
- return invocation.proceed();
- }
-
- @Override
- public Object plugin(Object target) {
- return Plugin.wrap(target, this);
- }
-
- @Override
- public void setProperties(Properties properties) {}
-
- public static String extractTableName(String sql) {
- if (sql == null || sql.trim().isEmpty()) {
- return "鏃犳晥鐨凷QL璇彞";
- }
-
- String trimmedSql = sql.trim().toUpperCase();
- String tableName = "";
-
- // 瀹氫箟姝e垯琛ㄨ揪寮�
- Pattern insertPattern = Pattern.compile("INSERT INTO (\\S+)", Pattern.CASE_INSENSITIVE);
- Pattern updatePattern = Pattern.compile("UPDATE (\\S+)", Pattern.CASE_INSENSITIVE);
- Pattern deletePattern = Pattern.compile("DELETE FROM (\\S+)", Pattern.CASE_INSENSITIVE);
-
- Matcher matcher;
-
- // 妫�鏌NSERT璇彞
- matcher = insertPattern.matcher(trimmedSql);
- if (matcher.find()) {
- tableName = matcher.group(1);
- } else {
- // 妫�鏌PDATE璇彞
- matcher = updatePattern.matcher(trimmedSql);
- if (matcher.find()) {
- tableName = matcher.group(1);
- } else {
- // 妫�鏌ELETE璇彞
- matcher = deletePattern.matcher(trimmedSql);
- if (matcher.find()) {
- tableName = matcher.group(1);
- }
- }
- }
-
- if (tableName.isEmpty()) {
- return null;
- }
-
- return tableName;
- }
-
- private void clearRedisCache(String sql) {
- RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
- if (redisUtil == null) {
- return;
- }
-
- String tableName = extractTableName(sql);
- if (tableName == null) {
- return;
- }
-
- tableName = tableName.toLowerCase();
-
- Set<String> keys = redisUtil.searchRedisKeys(tableName);
- for (String key : keys) {
- if (!key.startsWith(RedisConstants.CACHE_DATA)) {
- continue;
- }
- redisUtil.del(key);
- }
- }
-}
+package com.zy.asrs.wms.common.interceptor;
+
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wms.common.constant.RedisConstants;
+import com.zy.asrs.wms.utils.RedisUtil;
+import org.apache.ibatis.executor.statement.StatementHandler;
+import org.apache.ibatis.plugin.*;
+import java.sql.Connection;
+import java.util.Properties;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Intercepts({
+ @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
+})
+public class DataChangeInterceptor implements Interceptor {
+
+ @Override
+ public Object intercept(Invocation invocation) throws Throwable {
+ StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
+ String sql = statementHandler.getBoundSql().getSql();
+ if (sql != null) {
+ String trimmedSql = sql.trim().toUpperCase();
+// System.out.println("SQL: " + sql);
+ if (trimmedSql.startsWith("INSERT")) {
+ clearRedisCache(trimmedSql);
+ } else if (trimmedSql.startsWith("UPDATE")) {
+ clearRedisCache(trimmedSql);
+ } else if (trimmedSql.startsWith("DELETE")) {
+ clearRedisCache(trimmedSql);
+ }
+ }
+
+ // 鏍规嵁闇�瑕佽繘琛孲QL瑙f瀽
+ return invocation.proceed();
+ }
+
+ @Override
+ public Object plugin(Object target) {
+ return Plugin.wrap(target, this);
+ }
+
+ @Override
+ public void setProperties(Properties properties) {}
+
+ public static String extractTableName(String sql) {
+ if (sql == null || sql.trim().isEmpty()) {
+ return "鏃犳晥鐨凷QL璇彞";
+ }
+
+ String trimmedSql = sql.trim().toUpperCase();
+ String tableName = "";
+
+ // 瀹氫箟姝e垯琛ㄨ揪寮�
+ Pattern insertPattern = Pattern.compile("INSERT INTO (\\S+)", Pattern.CASE_INSENSITIVE);
+ Pattern updatePattern = Pattern.compile("UPDATE (\\S+)", Pattern.CASE_INSENSITIVE);
+ Pattern deletePattern = Pattern.compile("DELETE FROM (\\S+)", Pattern.CASE_INSENSITIVE);
+
+ Matcher matcher;
+
+ // 妫�鏌NSERT璇彞
+ matcher = insertPattern.matcher(trimmedSql);
+ if (matcher.find()) {
+ tableName = matcher.group(1);
+ } else {
+ // 妫�鏌PDATE璇彞
+ matcher = updatePattern.matcher(trimmedSql);
+ if (matcher.find()) {
+ tableName = matcher.group(1);
+ } else {
+ // 妫�鏌ELETE璇彞
+ matcher = deletePattern.matcher(trimmedSql);
+ if (matcher.find()) {
+ tableName = matcher.group(1);
+ }
+ }
+ }
+
+ if (tableName.isEmpty()) {
+ return null;
+ }
+
+ return tableName;
+ }
+
+ private void clearRedisCache(String sql) {
+ RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
+ if (redisUtil == null) {
+ return;
+ }
+
+ String tableName = extractTableName(sql);
+ if (tableName == null) {
+ return;
+ }
+
+ tableName = tableName.toLowerCase();
+
+ Set<String> keys = redisUtil.searchRedisKeys(tableName);
+ for (String key : keys) {
+ if (!key.startsWith(RedisConstants.CACHE_DATA)) {
+ continue;
+ }
+ redisUtil.del(key);
+ }
+ }
+}
--
Gitblit v1.9.1