update 优化 !pr93

This commit is contained in:
疯狂的狮子Li
2023-06-26 23:19:32 +08:00
parent 0cfd6f8eba
commit 6ff6ced462
2 changed files with 29 additions and 37 deletions

View File

@@ -1,6 +1,7 @@
package com.ruoyi.common.idempotent.aspectj; package com.ruoyi.common.idempotent.aspectj;
import cn.dev33.satoken.SaManager; import cn.dev33.satoken.SaManager;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.Constants;
@@ -17,8 +18,6 @@ import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@@ -59,9 +58,7 @@ public class RepeatSubmitAspect {
submitKey = SecureUtil.md5(submitKey + ":" + nowParams); submitKey = SecureUtil.md5(submitKey + ":" + nowParams);
// 唯一标识指定key + url + 消息头) // 唯一标识指定key + url + 消息头)
String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + url + submitKey; String cacheRepeatKey = Constants.REPEAT_SUBMIT_KEY + url + submitKey;
RedissonClient client = RedisUtils.getClient(); if (RedisUtils.setObjectIfAbsent(cacheRepeatKey, "", Duration.ofMillis(interval))) {
RBucket<String> bucket = client.getBucket(cacheRepeatKey);
if (bucket.setIfAbsent(cacheRepeatKey,Duration.ofMillis(interval))) {
KEY_CACHE.set(cacheRepeatKey); KEY_CACHE.set(cacheRepeatKey);
} else { } else {
String message = repeatSubmit.message(); String message = repeatSubmit.message();
@@ -109,16 +106,13 @@ public class RepeatSubmitAspect {
* 参数拼装 * 参数拼装
*/ */
private String argsArrayToString(Object[] paramsArray) { private String argsArrayToString(Object[] paramsArray) {
StringJoiner params = new StringJoiner( " "); StringJoiner params = new StringJoiner(" ");
if (paramsArray != null && paramsArray.length > 0) { if (ArrayUtil.isEmpty(paramsArray)) {
for (Object o : paramsArray) { return params.toString();
if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) { }
try { for (Object o : paramsArray) {
params.add(JsonUtils.toJsonString(o)); if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) {
} catch (Exception e) { params.add(JsonUtils.toJsonString(o));
e.printStackTrace();
}
}
} }
} }
return params.toString(); return params.toString();
@@ -150,4 +144,4 @@ public class RepeatSubmitAspect {
|| o instanceof BindingResult; || o instanceof BindingResult;
} }
} }

View File

@@ -2,6 +2,7 @@ package com.ruoyi.common.log.aspect;
import cn.hutool.core.lang.Dict; import cn.hutool.core.lang.Dict;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.utils.JsonUtils; import com.ruoyi.common.core.utils.JsonUtils;
import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.ServletUtils;
@@ -26,6 +27,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.StringJoiner;
/** /**
* 操作日志记录处理 * 操作日志记录处理
@@ -40,7 +42,7 @@ public class LogAspect {
/** /**
* 排除敏感属性字段 * 排除敏感属性字段
*/ */
public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; public static final String[] EXCLUDE_PROPERTIES = {"password", "oldPassword", "newPassword", "confirmPassword"};
/** /**
* 处理完请求后执行 * 处理完请求后执行
@@ -145,26 +147,23 @@ public class LogAspect {
* 参数拼装 * 参数拼装
*/ */
private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) { private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) {
StringBuilder params = new StringBuilder(); StringJoiner params = new StringJoiner(" ");
if (paramsArray != null && paramsArray.length > 0) { if (ArrayUtil.isEmpty(paramsArray)) {
for (Object o : paramsArray) { return params.toString();
if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) { }
try { for (Object o : paramsArray) {
String str = JsonUtils.toJsonString(o); if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) {
Dict dict = JsonUtils.parseMap(str); String str = JsonUtils.toJsonString(o);
if (MapUtil.isNotEmpty(dict)) { Dict dict = JsonUtils.parseMap(str);
MapUtil.removeAny(dict, EXCLUDE_PROPERTIES); if (MapUtil.isNotEmpty(dict)) {
MapUtil.removeAny(dict, excludeParamNames); MapUtil.removeAny(dict, EXCLUDE_PROPERTIES);
str = JsonUtils.toJsonString(dict); MapUtil.removeAny(dict, excludeParamNames);
} str = JsonUtils.toJsonString(dict);
params.append(str).append(" ");
} catch (Exception e) {
e.printStackTrace();
}
} }
params.add(str);
} }
} }
return params.toString().trim(); return params.toString();
} }
/** /**
@@ -185,9 +184,8 @@ public class LogAspect {
} }
} else if (Map.class.isAssignableFrom(clazz)) { } else if (Map.class.isAssignableFrom(clazz)) {
Map map = (Map) o; Map map = (Map) o;
for (Object value : map.entrySet()) { for (Object value : map.values()) {
Map.Entry entry = (Map.Entry) value; return value instanceof MultipartFile;
return entry.getValue() instanceof MultipartFile;
} }
} }
return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse