From 9a5dc1dfe564619691174917d898c45024757480 Mon Sep 17 00:00:00 2001 From: yangqicheng Date: Fri, 10 May 2024 15:49:38 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20REQ-2324-=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E5=BE=85=E5=8A=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PendingMessageNewController.java | 13 ++++++++++--- .../service/todo/manage/TodoLogger.java | 5 +++++ .../service/todo/manage/TodoManager.java | 18 ++++++++++++++++++ .../pending/client/PendingMessageClient.java | 9 +++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java index 3b72e0d3..46f955e7 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java @@ -42,18 +42,19 @@ import cn.hutool.core.date.StopWatch; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import javax.validation.Valid; import java.util.Collections; import java.util.List; import java.util.concurrent.TimeUnit; /** - * @description - * * @author cold_blade - * @date 2023/10/5 * @version 1.0 + * @description + * @date 2023/10/5 */ @Slf4j @RestController @@ -194,6 +195,12 @@ public class PendingMessageNewController implements PendingMessageClient { return CommonResponse.success(todoManager.completeBySubBizCode(param)); } + @Override + public CommonResponse rollbackTemplateCodeSubBizCode(@RequestBody @Valid CompletePendingBySubCodeRequest param) { + log.info("rollbackByTemplateCodeSubBizCode, request={}", JSON.toJSONString(param)); + return CommonResponse.success(todoManager.rollbackBySubBizCode(param)); + } + @Override public CommonResponse revokeByTemplateCodeBizCode(CompletePendingMessageRequest param) { log.info("revokeByTemplateCodeBizCode, request={}", JSON.toJSONString(param)); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java index b7e3390d..8b3f9922 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoLogger.java @@ -40,6 +40,11 @@ class TodoLogger { logTodosUpdated(ctx, todos); } + void logTodoRollback(TodoRequestContext ctx, List todos) { + ctx.addLogContent("state", PendingMessageStateEnum.PROCESSING); + logTodosUpdated(ctx, todos); + } + void logTodoRevoked(TodoRequestContext ctx, List todos) { ctx.addLogContent("state", PendingMessageStateEnum.RETRACT); logTodosUpdated(ctx, todos); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java index 97a7c87c..9c4dd20c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/manage/TodoManager.java @@ -262,6 +262,24 @@ public class TodoManager { return true; } + /** + * 恢复待办 + */ + @Transactional(rollbackFor = Exception.class) + public boolean rollbackBySubBizCode(CompletePendingBySubCodeRequest request) { + TodoRequestContext ctx = TodoRequestContext.create("rollbackBySubBizCode", request); + StateAdvanceResult advanceResult = advanceState(ctx, execAdvanceBuilder() + .eq(Todo::getTemplateCode, request.getTemplateCode()) + .eq(Todo::getBizCode, request.getBizCode()) + .eq(Todo::getSubBizCode, request.getSubBizCode()) + .set(Todo::getState, PendingMessageStateEnum.HAS_BEEN_SENT)); + if (!advanceResult.isAdvanced()) { + return false; + } + todoLogger.logTodoRollback(ctx, advanceResult.getAdvancedTodos()); + return true; + } + // !! revoke /** diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java index 27da672c..cad9daa2 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java @@ -228,6 +228,15 @@ public interface PendingMessageClient { @PostMapping(value = "/pending-message/complete/by-sub-biz-code", produces = {MediaType.APPLICATION_JSON_VALUE}) CommonResponse completeByTemplateCodeSubBizCode(@RequestBody @Valid CompletePendingBySubCodeRequest param); + /** + * 通过模版编号和业务编号和子业务编号恢复代办 + * + * @param param + * @return + */ + @PostMapping(value = "/pending-message/rollback/by-sub-biz-code", produces = {MediaType.APPLICATION_JSON_VALUE}) + CommonResponse rollbackTemplateCodeSubBizCode(@RequestBody @Valid CompletePendingBySubCodeRequest param); + /** * 通过模版编号和业务编号撤销代办 *