From 0c9398776a3338d7fe7f2194c19c22c7dcb0f0aa Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 26 七月 2022 20:20:20 +0800
Subject: [PATCH] fix 修复 幂等组件 逻辑问题导致线程变量未清除

---
 ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 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 66827cb..7c2fa2a 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
@@ -85,12 +85,16 @@
     @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;
+            try {
+                R<?> r = (R<?>) jsonResult;
+                // 鎴愬姛鍒欎笉鍒犻櫎redis鏁版嵁 淇濊瘉鍦ㄦ湁鏁堟椂闂村唴鏃犳硶閲嶅鎻愪氦
+                if (r.getCode() == R.SUCCESS) {
+                    return;
+                }
+                RedisUtils.deleteObject(KEY_CACHE.get());
+            } finally {
+                KEY_CACHE.remove();
             }
-            RedisUtils.deleteObject(KEY_CACHE.get());
-            KEY_CACHE.remove();
         }
     }
 

--
Gitblit v1.9.3