From 2cff963a16255c22e1b82c85b0ef43b304c6ce41 Mon Sep 17 00:00:00 2001 From: yanhuiqing Date: Tue, 6 Jan 2026 22:47:04 +0800 Subject: [PATCH] 接口后台提交 防抖动 幂等处理 --- urbanops-module-workorder/pom.xml | 4 ++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java | 7 +++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java | 8 ++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java | 7 +++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderRegionMgrController.java | 7 +++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderUniversalController.java | 7 +++++++ 6 files changed, 40 insertions(+), 0 deletions(-) diff --git a/urbanops-module-workorder/pom.xml b/urbanops-module-workorder/pom.xml index dc4851b..cdf5d43 100644 --- a/urbanops-module-workorder/pom.xml +++ b/urbanops-module-workorder/pom.xml @@ -143,6 +143,10 @@ ${revision} compile + + com.zteits.boot + urbanops-spring-boot-starter-protection + diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java index 5f49ff7..27cc191 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderAIController.java @@ -2,6 +2,8 @@ package com.zteits.urbanops.module.workorder.controller.app.garden; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.idempotent.core.annotation.Idempotent; +import com.zteits.urbanops.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderAIBuzStatus; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderInspectorBuzStatus; @@ -77,6 +79,11 @@ public class AppGardenWorkOrderAIController { @PostMapping("/universalApproval") @AutoUpdateWorkerOrderAIBuzStatus @Transactional(rollbackFor = Exception.class) + @Idempotent( + timeout = 5, + message = "请勿重复提交!", + keyResolver = DefaultIdempotentKeyResolver.class + ) //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java index 1cbd8b0..7d9b8ce 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderController.java @@ -4,6 +4,8 @@ import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.idempotent.core.annotation.Idempotent; +import com.zteits.urbanops.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.garden.dto.road.RoadReqDTO; @@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.concurrent.TimeUnit; import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; @@ -252,6 +255,11 @@ public class AppGardenWorkOrderController { @PostMapping("/universalApproval") @AutoUpdateWorkerOrderBuzStatus @Transactional(rollbackFor = Exception.class) + @Idempotent( + timeout = 5, + message = "请勿重复提交!", + keyResolver = DefaultIdempotentKeyResolver.class + ) //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java index 16d757b..2f6a565 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderInspectorController.java @@ -2,6 +2,8 @@ package com.zteits.urbanops.module.workorder.controller.app.garden; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.idempotent.core.annotation.Idempotent; +import com.zteits.urbanops.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderInspectorBuzStatus; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderUniversalBuzStatus; @@ -78,6 +80,11 @@ public class AppGardenWorkOrderInspectorController { @PostMapping("/universalApproval") @AutoUpdateWorkerOrderInspectorBuzStatus @Transactional(rollbackFor = Exception.class) + @Idempotent( + timeout = 5, + message = "请勿重复提交!", + keyResolver = DefaultIdempotentKeyResolver.class + ) //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderRegionMgrController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderRegionMgrController.java index d5d3d5c..1135c7c 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderRegionMgrController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderRegionMgrController.java @@ -2,6 +2,8 @@ package com.zteits.urbanops.module.workorder.controller.app.garden; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.idempotent.core.annotation.Idempotent; +import com.zteits.urbanops.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderBuzStatus; import com.zteits.urbanops.module.workorder.controller.app.garden.vo.common.AppUniversalApprovalReqVO; @@ -73,6 +75,11 @@ public class AppGardenWorkOrderRegionMgrController { @PostMapping("/universalApproval") @AutoUpdateWorkerOrderBuzStatus @Transactional(rollbackFor = Exception.class) + @Idempotent( + timeout = 5, + message = "请勿重复提交!", + keyResolver = DefaultIdempotentKeyResolver.class + ) //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderUniversalController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderUniversalController.java index 4d7b405..f3f2b4b 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderUniversalController.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/garden/AppGardenWorkOrderUniversalController.java @@ -2,6 +2,8 @@ package com.zteits.urbanops.module.workorder.controller.app.garden; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.framework.idempotent.core.annotation.Idempotent; +import com.zteits.urbanops.framework.idempotent.core.keyresolver.impl.DefaultIdempotentKeyResolver; import com.zteits.urbanops.module.garden.api.road.RoadApi; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderBuzStatus; import com.zteits.urbanops.module.workorder.annotation.AutoUpdateWorkerOrderUniversalBuzStatus; @@ -74,6 +76,11 @@ public class AppGardenWorkOrderUniversalController { @PostMapping("/universalApproval") @AutoUpdateWorkerOrderUniversalBuzStatus @Transactional(rollbackFor = Exception.class) + @Idempotent( + timeout = 5, + message = "请勿重复提交!", + keyResolver = DefaultIdempotentKeyResolver.class + ) //@PreAuthorize("@ss.hasPermission('bpm:garden-workorder:update')") public CommonResult universalApproval(@Valid @RequestBody AppUniversalApprovalReqVO reqVO) { -- libgit2 0.21.4