REQ-2481: 设置模版中IM的发送优先级

This commit is contained in:
yanglin 2024-05-27 16:31:01 +08:00
parent 449c88037e
commit 62190cf4f4
5 changed files with 52 additions and 0 deletions

View File

@ -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());

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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;
}

View File

@ -104,6 +104,11 @@ public class MessageBaseTemplate extends BaseEntityExt<MessageBaseTemplate> impl
*/
private String updatePersonName;
/**
* IM发送优先级
*/
private Integer imSendPriority;
@TableField(typeHandler = FastjsonTypeHandler.class)
private JSONObject pushData;