From 3341eb5f2c6070d108d3fec0677e2ae00458c4d5 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 15 三月 2022 13:18:24 +0800
Subject: [PATCH] update 优化 TreeEntity 树实体 去除未知泛型
---
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java | 47 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 44 insertions(+), 3 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
index fb593ae..d0422e9 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java
@@ -1,11 +1,14 @@
package com.ruoyi.framework.aspectj;
import cn.dev33.satoken.SaManager;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.JsonUtils;
+import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.redis.RedisUtils;
@@ -13,6 +16,8 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@@ -26,7 +31,7 @@
import java.util.concurrent.TimeUnit;
/**
- * 闃叉閲嶅鎻愪氦
+ * 闃叉閲嶅鎻愪氦(鍙傝�冪編鍥TIS闃查噸绯荤粺)
*
* @author Lion Li
*/
@@ -35,6 +40,8 @@
@Aspect
@Component
public class RepeatSubmitAspect {
+
+ private static final ThreadLocal<String> KEY_CACHE = new ThreadLocal<>();
private final RepeatSubmitProperties repeatSubmitProperties;
@@ -63,9 +70,43 @@
String key = RedisUtils.getCacheObject(cacheRepeatKey);
if (key == null) {
RedisUtils.setCacheObject(cacheRepeatKey, "", interval, TimeUnit.MILLISECONDS);
+ KEY_CACHE.set(cacheRepeatKey);
} else {
- throw new ServiceException(repeatSubmit.message());
+ String message = repeatSubmit.message();
+ if (StringUtils.startsWith(message, "{") && StringUtils.endsWith(message, "}")) {
+ message = MessageUtils.message(StringUtils.substring(message, 1, message.length() - 1));
+ }
+ throw new ServiceException(message);
}
+ }
+
+ /**
+ * 澶勭悊瀹岃姹傚悗鎵ц
+ *
+ * @param joinPoint 鍒囩偣
+ */
+ @AfterReturning(pointcut = "@annotation(repeatSubmit)", returning = "jsonResult")
+ public void doAfterReturning(JoinPoint joinPoint, RepeatSubmit repeatSubmit, Object jsonResult) {
+ if (jsonResult instanceof R) {
+ R<?> r = (R<?>) jsonResult;
+ if (r.getCode() == R.SUCCESS) {
+ return;
+ }
+ RedisUtils.deleteObject(KEY_CACHE.get());
+ KEY_CACHE.remove();
+ }
+ }
+
+ /**
+ * 鎷︽埅寮傚父鎿嶄綔
+ *
+ * @param joinPoint 鍒囩偣
+ * @param e 寮傚父
+ */
+ @AfterThrowing(value = "@annotation(repeatSubmit)", throwing = "e")
+ public void doAfterThrowing(JoinPoint joinPoint, RepeatSubmit repeatSubmit, Exception e) {
+ RedisUtils.deleteObject(KEY_CACHE.get());
+ KEY_CACHE.remove();
}
/**
@@ -75,7 +116,7 @@
StringBuilder params = new StringBuilder();
if (paramsArray != null && paramsArray.length > 0) {
for (Object o : paramsArray) {
- if (StringUtils.isNotNull(o) && !isFilterObject(o)) {
+ if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) {
try {
params.append(JsonUtils.toJsonString(o)).append(" ");
} catch (Exception e) {
--
Gitblit v1.9.3