diff --git a/nladmin-system/nlsso-server/pom.xml b/nladmin-system/nlsso-server/pom.xml
index ba501cc..feaadd7 100644
--- a/nladmin-system/nlsso-server/pom.xml
+++ b/nladmin-system/nlsso-server/pom.xml
@@ -20,14 +20,15 @@
1.16
2.9.2
1.1.22
- 1.2.0.Final
+ 1.2.70
+ 1.3.1.Final
1.31.0
5.7.14
0.11.1
8.2.0
-
+
-
+ 5.9.0
1.9
@@ -43,11 +44,6 @@
1.0.4
-
- org.flywaydb
- flyway-core
- 6.1.0
-
org.flywaydb
flyway-mysql
@@ -59,24 +55,24 @@
reflections
0.9.10
-
+
org.fusesource.jansi
jansi
1.17.1
-
- org.jetbrains
- annotations
- 13.0
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
com.google.guava
@@ -89,8 +85,6 @@
tlog-all-spring-boot-starter
1.5.0
-
-
org.apache.lucene
@@ -126,39 +120,47 @@
${lucene.version}
-
-
-
- com.yomahub
- tlog-all-spring-boot-starter
- 1.5.0
-
-
com.github.oshi
oshi-core
- 5.3.6
+ 5.0.1
- net.java.dev.jna
- jna
- 5.6.0
+ org.apache.httpcomponents
+ httpclient
+ 4.5.13
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ 1.3.3
+
+
+ jakarta.persistence
+ jakarta.persistence-api
+ 2.2.3
+
+
+
+ commons-io
+ commons-io
+ 2.8.0
-
+
@@ -327,6 +329,12 @@
2.12.0
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
@@ -470,12 +478,6 @@
20131018
-
- commons-io
- commons-io
- 2.8.0
-
-
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java b/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
index f125113..895c34a 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
@@ -5,6 +5,7 @@ import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
import io.swagger.annotations.Api;
import org.mybatis.spring.annotation.MapperScan;
+import org.nl.common.annotation.RepeatSubmit;
import org.nl.config.SpringContextHolder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -61,6 +62,7 @@ public class AppRun {
*/
@GetMapping("/")
@SaIgnore
+ @RepeatSubmit(expirationTime = 10)
public String index() {
return "Backend service started successfully";
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/annotation/RepeatSubmit.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/annotation/RepeatSubmit.java
new file mode 100644
index 0000000..46274b2
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/annotation/RepeatSubmit.java
@@ -0,0 +1,28 @@
+package org.nl.common.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author: lyd
+ * @Description: 拒绝重复提交, 在一段时间内,发起二次请求就会被拒绝
+ * @Date: 2023/8/15
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RepeatSubmit {
+ /**
+ * 过期时间:可选,默认500
+ * @return
+ */
+ long expirationTime() default 500;
+
+ /**
+ * 时间单位:可选,默认毫秒
+ * @return
+ */
+ TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/aspect/RetrySubmitRejectedAspect.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/aspect/RetrySubmitRejectedAspect.java
new file mode 100644
index 0000000..311d81d
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/aspect/RetrySubmitRejectedAspect.java
@@ -0,0 +1,53 @@
+package org.nl.common.aspect;
+
+import cn.hutool.crypto.SecureUtil;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.nl.common.annotation.RepeatSubmit;
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.utils.RedisUtils;
+import org.nl.wms.util.CommonUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Author: lyd
+ * @Description:
+ * @Date: 2023/8/15
+ */
+@Aspect
+@Component
+public class RetrySubmitRejectedAspect {
+ @Autowired
+ private RedisUtils redisUtils;
+ @Around("@annotation(repeatSubmit)")
+ public Object checkRetrySubmit(ProceedingJoinPoint joinPoint, RepeatSubmit repeatSubmit) throws Throwable {
+ // 获取连接点的方法签名
+ Signature signature = joinPoint.getSignature();
+ // 获取类名
+ String className = signature.getDeclaringTypeName();
+ // 获取参数
+ Object[] args = joinPoint.getArgs();
+ // 获取方法参数,生成幂等性的唯一标识
+ String key = generateKey(args, className);
+ // 检查缓存中是否存在该标识,如果存在,则表示已经执行过该方法,直接拒绝请求
+ List scan = redisUtils.scan(key);
+ if (scan.size() > 0) {
+ throw new BadRequestException("请勿重复提交!");
+ } else {
+ redisUtils.set(key, args, repeatSubmit.expirationTime(), repeatSubmit.timeUnit());
+ }
+ return joinPoint.proceed();
+ }
+
+ public String generateKey(Object[] objects, String className) {
+ StringBuilder stringBuilder = new StringBuilder();
+ String s = CommonUtils.convertObjectArrayToString(objects, "#");
+ stringBuilder.append(className).append(s); // 类名+参数
+ return SecureUtil.md5(stringBuilder.toString());
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java
index 041e1e2..23a04ec 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/controller/SchBasePointController.java
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.nl.common.annotation.RepeatSubmit;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
@@ -17,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
/**
* @author lyd
* @date 2023-05-15
@@ -32,6 +35,7 @@ public class SchBasePointController {
@GetMapping
@Log("查询点位管理")
+ @RepeatSubmit
@ApiOperation("查询点位管理")
//@SaCheckPermission("@el.check('schBasePoint:list')")
public ResponseEntity