From 31d181ff8855dcbae72f4a6a964ec80cc05dd331 Mon Sep 17 00:00:00 2001 From: wuyu Date: Tue, 28 Nov 2023 10:56:17 +0800 Subject: [PATCH] =?UTF-8?q?+=E9=80=9A=E8=BF=87ID=E6=92=A4=E9=94=80?= =?UTF-8?q?=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/domain/dto/PendingMessageDTO.java | 18 +++---- .../service/PendingMessageNewService.java | 8 +++ .../impl/PendingMessageNewServiceImpl.java | 11 ++++ .../RevokePendingMessageByIdRequest.java | 25 +++++++++ .../response/PendingMessageResponse.java | 10 ++-- .../mapper/PendingMessageRecordMapper.xml | 52 ++++++++----------- .../domain/entity/PendingMessageRecord.java | 7 +++ 7 files changed, 85 insertions(+), 46 deletions(-) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/RevokePendingMessageByIdRequest.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/PendingMessageDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/PendingMessageDTO.java index a4a32a0a..52bf0450 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/PendingMessageDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/PendingMessageDTO.java @@ -4,20 +4,12 @@ import cn.axzo.msg.center.domain.entity.PendingMessageRecord; import cn.axzo.msg.center.service.dto.IdentityDTO; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.dto.PersonDTO; -import cn.axzo.msg.center.service.enums.BizCategoryEnum; -import cn.axzo.msg.center.service.enums.BizFinalStateEnum; -import cn.axzo.msg.center.service.enums.OrganizationTypeEnum; -import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; -import cn.axzo.msg.center.service.enums.TerminalTypeEnum; +import cn.axzo.msg.center.service.enums.*; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; import cn.axzo.msg.center.utils.DateFormatUtil; import cn.axzo.msg.center.utils.MessageRouterUtil; import com.alibaba.fastjson.JSON; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.io.Serializable; import java.time.LocalDateTime; @@ -132,6 +124,10 @@ public class PendingMessageDTO implements Serializable { * 路由参数 */ private String routerParam; + /** + * 是否历史待办 + */ + private Boolean isOld; public static PendingMessageDTO from(PendingMessageRecord pendingMessageRecord) { // 代办发起者信息 @@ -174,6 +170,7 @@ public class PendingMessageDTO implements Serializable { .updateTime(DateFormatUtil.toLocalDateTime(pendingMessageRecord.getUpdateAt())) .routerParam(pendingMessageRecord.getRouterParams()) .bizFinalState(pendingMessageRecord.getBizFinalState()) + .isOld(pendingMessageRecord.getIsOld()) .build(); } @@ -205,6 +202,7 @@ public class PendingMessageDTO implements Serializable { .detailRouter(MessageRouterUtil.fetchBizDetailRouter(this.msgTemplateRouter, terminalType).orElse(null)) .buttonRouters(MessageRouterUtil.fetchMessageRouterButtons(this.msgTemplateRouter, terminalType)) .bizFinalStateIcon(Optional.ofNullable(bizFinalState).map(BizFinalStateEnum::getIcon).orElse(null)) + .isOld(this.isOld) .build(); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java index 47ec6ac2..aa03db88 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/PendingMessageNewService.java @@ -137,4 +137,12 @@ public interface PendingMessageNewService { * @return 成功返回 {@code true} 失败返回 {@code false} */ Boolean revokeByTemplateCodeBizCode(CompletePendingMessageRequest param); + + /** + * 通过ID撤销代办 + * + * @param param + * @return 成功返回 {@code true} 失败返回 {@code false} + */ + Boolean revokeById(RevokePendingMessageByIdRequest param); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java index 5aca46c0..e0d56470 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/impl/PendingMessageNewServiceImpl.java @@ -388,6 +388,17 @@ public class PendingMessageNewServiceImpl implements PendingMessageNewService { .update(); } + @Override + public Boolean revokeById(RevokePendingMessageByIdRequest param) { + log.info("the [{}] record is RevokePendingMessageByIdRequest.", param); + return pendingMessageRecordDao.lambdaUpdate() + .set(PendingMessageRecord::getState, PendingMessageStateEnum.RETRACT) + .eq(PendingMessageRecord::getId, param.getId()) + .eq(PendingMessageRecord::getState, PendingMessageStateEnum.HAS_BEEN_SENT) + .eq(PendingMessageRecord::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .update(); + } + private PendingMessageDTO convert(PendingMessageRecord pendingMessageRecord, List messageTemplates) { PendingMessageDTO pendingMessage = PendingMessageDTO.from(pendingMessageRecord); // 对应模板的路由策略 diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/RevokePendingMessageByIdRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/RevokePendingMessageByIdRequest.java new file mode 100644 index 00000000..93ecb34d --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/RevokePendingMessageByIdRequest.java @@ -0,0 +1,25 @@ +package cn.axzo.msg.center.service.pending.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotNull; + +/** + * @author haiyangjin + * @date 2023/11/16 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class RevokePendingMessageByIdRequest { + /** + * 关联业务主键 + */ + @NotNull(message = "消息ID不能为空") + private Long id; + +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java index ecd5c7e4..dfd2605e 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/response/PendingMessageResponse.java @@ -7,11 +7,7 @@ import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.enums.BizCategoryEnum; import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; import com.alibaba.fastjson.JSON; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import java.io.Serializable; import java.util.List; @@ -136,6 +132,10 @@ public class PendingMessageResponse implements Serializable { * 业务终态的印章图片地址 */ private String bizFinalStateIcon; + /** + * 是否历史待办 + */ + private Boolean isOld; @Override public String toString() { diff --git a/msg-center-dal/src/main/resources/mapper/PendingMessageRecordMapper.xml b/msg-center-dal/src/main/resources/mapper/PendingMessageRecordMapper.xml index 0f70a604..a60b078e 100644 --- a/msg-center-dal/src/main/resources/mapper/PendingMessageRecordMapper.xml +++ b/msg-center-dal/src/main/resources/mapper/PendingMessageRecordMapper.xml @@ -2,37 +2,27 @@ - - - '${item}' - - - - - diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java index 998db359..f24a8d1e 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/PendingMessageRecord.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Getter; import lombok.Setter; +import org.springframework.data.annotation.Transient; import java.io.Serializable; import java.util.Date; @@ -145,6 +146,12 @@ public class PendingMessageRecord extends BaseEntityExt im */ private String failCause; + /** + * 是否历史待办 + */ + @Transient + private Boolean isOld; + @Override public String toString() { return JSON.toJSONString(this);