From 62190cf4f4f1f0add9f1ae732069c17f1dc52f2a Mon Sep 17 00:00:00 2001 From: yanglin Date: Mon, 27 May 2024 16:31:01 +0800 Subject: [PATCH] =?UTF-8?q?REQ-2481:=20=E8=AE=BE=E7=BD=AE=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E4=B8=ADIM=E7=9A=84=E5=8F=91=E9=80=81=E4=BC=98?= =?UTF-8?q?=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/v3/msg/TemplateMessage.java | 1 + .../controller/PrivateMessageController.java | 18 ++++++++++++++++++ .../message/domain/dto/MessageTemplateDTO.java | 11 +++++++++++ .../request/v3/SetImSendPriorityRequest.java | 17 +++++++++++++++++ .../domain/entity/MessageBaseTemplate.java | 5 +++++ 5 files changed, 52 insertions(+) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/request/v3/SetImSendPriorityRequest.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java index e2ad3383..73b9cc80 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/TemplateMessage.java @@ -113,6 +113,7 @@ public class TemplateMessage { SendTemplateMessageParam imReq = new SendTemplateMessageParam(); imReq.setBizId(String.format("%s:%s:%s", BIZ_ID_PREFIX, template.getCode(), req.determineBizCode())); + imReq.setSendPriority(template.determineImSendPriority()); imReq.setMsgHeader(parseTitle()); imReq.setMsgContent(parseContent()); imReq.setMsgTemplateId(template.getCode()); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PrivateMessageController.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PrivateMessageController.java index 28bcbb45..36abc23f 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PrivateMessageController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PrivateMessageController.java @@ -5,6 +5,10 @@ import cn.axzo.msg.center.api.request.v3.MessageSendReqV3; import cn.axzo.msg.center.api.request.v3.SearchMessageReqV3; import cn.axzo.msg.center.api.request.v3.SearchPendingMessageReq; import cn.axzo.msg.center.api.request.v3.SearchTodoLogReq; +import cn.axzo.msg.center.api.request.v3.SetImSendPriorityRequest; +import cn.axzo.msg.center.common.utils.BizAssertions; +import cn.axzo.msg.center.dal.MessageBaseTemplateDao; +import cn.axzo.msg.center.domain.entity.MessageBaseTemplate; import cn.axzo.msg.center.inside.notices.service.impl.TodoSearchService; import cn.axzo.msg.center.inside.notices.service.impl.v3.MessageRecordServiceV3; import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam; @@ -49,6 +53,7 @@ public class PrivateMessageController { private final OldMsgStatCache oldMsgStatCache; private final NacosConfigManager nacosConfigManager; private final MigrateOldMsgHotDataJob migrateOldMsgHotDataJob; + private final MessageBaseTemplateDao messageBaseTemplateDao; @PostMapping("/sendPendingMessage") public Object sendPendingMessage(@RequestBody @Valid PendingMessagePushParam request) { @@ -126,4 +131,17 @@ public class PrivateMessageController { return CommonResponse.success("submitted"); } + @PostMapping("/setImSendPriority") + public Object setImSendPriority(SetImSendPriorityRequest request) { + BizAssertions.assertNotNull(request.getTemplateCode(), "templateCode can't be blank"); + BizAssertions.assertNotNull(request.getSendPriority(), "sendPriority can't be null"); + BizAssertions.assertTrue(request.getSendPriority() > 0, "sendPriority must be greater than 0"); + boolean updated = messageBaseTemplateDao.lambdaUpdate() + .eq(MessageBaseTemplate::getCode, request.getTemplateCode()) + .set(MessageBaseTemplate::getImSendPriority, request.getSendPriority()) + .update(); + BizAssertions.assertTrue(updated, "未找到对应的模版或者模版已经删除"); + return updated; + } + } \ No newline at end of file diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java index c0ea811b..1ad31293 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/domain/dto/MessageTemplateDTO.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.message.domain.dto; +import cn.axzo.im.center.api.feign.SendPriority; import cn.axzo.msg.center.domain.entity.MessageBaseTemplate; import cn.axzo.msg.center.service.dto.MessageCardContentItemDTO; import cn.axzo.msg.center.service.enums.BizDetailJumpStrategyEnum; @@ -97,6 +98,15 @@ public class MessageTemplateDTO implements Serializable { private JSONObject pushData; + /** + * IM发送优先级 + */ + private Integer imSendPriority; + + public Integer determineImSendPriority() { + return imSendPriority == null ? SendPriority.TEMPLATE_MESSAGE.getPriority() : imSendPriority; + } + public boolean isCardJumpToBiz() { if (msgTemplateRouter == null) { return false; @@ -128,6 +138,7 @@ public class MessageTemplateDTO implements Serializable { .updatePersonId(baseTemplate.getUpdatePersonId()) .updatePersonName(baseTemplate.getUpdatePersonName()) .pushData(baseTemplate.getPushData()) + .imSendPriority(baseTemplate.getImSendPriority()) .build(); } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/v3/SetImSendPriorityRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/v3/SetImSendPriorityRequest.java new file mode 100644 index 00000000..7db7f77e --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/v3/SetImSendPriorityRequest.java @@ -0,0 +1,17 @@ +package cn.axzo.msg.center.api.request.v3; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author yanglin + */ +@Data +public class SetImSendPriorityRequest { + @NotBlank(message = "templateCode can't be blank") + private String templateCode; + @NotNull(message = "sendPriority can't be null") + private Long sendPriority; +} \ No newline at end of file diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageBaseTemplate.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageBaseTemplate.java index 0693b86e..ac564bc7 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageBaseTemplate.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageBaseTemplate.java @@ -104,6 +104,11 @@ public class MessageBaseTemplate extends BaseEntityExt impl */ private String updatePersonName; + /** + * IM发送优先级 + */ + private Integer imSendPriority; + @TableField(typeHandler = FastjsonTypeHandler.class) private JSONObject pushData;