疯狂的狮子Li
2022-07-26 0c9398776a3338d7fe7f2194c19c22c7dcb0f0aa
fix 修复 幂等组件 逻辑问题导致线程变量未清除
已修改1个文件
14 ■■■■■ 文件已修改
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RepeatSubmitAspect.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        }
    }