REQ-3284: 发送测试消息

This commit is contained in:
yanglin 2024-11-25 20:07:15 +08:00
parent b2028a0495
commit bc67dbd222
3 changed files with 51 additions and 10 deletions

View File

@ -2,7 +2,7 @@ package cn.axzo.msg.center.message.controller;
import cn.axzo.msg.center.api.MNSNoticesApi;
import cn.axzo.msg.center.api.MessageAPIV3;
import cn.axzo.msg.center.api.MessageAPIV4;
import cn.axzo.msg.center.api.mq.PresetButtonPressedMessage;
import cn.axzo.msg.center.api.request.AddMnsChannelRequest;
import cn.axzo.msg.center.api.request.MnsSendCodeV2Req;
import cn.axzo.msg.center.api.request.SendMessageRequestDto;
@ -13,7 +13,6 @@ 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.api.request.v3.UpdateMnsChannelTemplateRequest;
import cn.axzo.msg.center.api.request.v4.MessageSendRequestV4;
import cn.axzo.msg.center.dal.MNSMessageTemplateDao;
import cn.axzo.msg.center.domain.entity.MNSMessageTemplate;
import cn.axzo.msg.center.im.service.IMService;
@ -24,12 +23,15 @@ import cn.axzo.msg.center.message.domain.param.PendingMessagePushParam;
import cn.axzo.msg.center.message.service.group.GroupTemplateService;
import cn.axzo.msg.center.message.service.impl.person.PersonService;
import cn.axzo.msg.center.message.service.todo.manage.TodoManager;
import cn.axzo.msg.center.mq.MqMessageRecord;
import cn.axzo.msg.center.mq.MqProducer;
import cn.axzo.msg.center.notices.manager.api.MessageChannelRouter;
import cn.axzo.msg.center.notices.manager.api.MessageTemplateManager;
import cn.axzo.msg.center.notices.manager.api.dto.request.plat.AddMnsAppRequest;
import cn.axzo.msg.center.notices.manager.api.dto.request.plat.CreateTemplateRequestDto;
import cn.axzo.msg.center.notices.manager.api.dto.request.plat.TingyunInterfaceListRequest;
import cn.axzo.msg.center.notices.service.api.PlatService;
import cn.axzo.msg.center.service.enums.MqMessageType;
import cn.axzo.msg.center.service.pending.request.RevokeByTemplateCodeRequest;
import cn.axzo.trade.web.annotation.EnableResponseAdvice;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -62,7 +64,6 @@ import static java.util.stream.Collectors.toMap;
public class PrivateMessageController {
private final MessageRecordServiceV3 messageRecordServiceV3;
private final MessageAPIV4 messageAPIV4;
private final MessageAPIV3 messageAPIV3;
private final TodoSearchService todoSearchService;
private final TodoManager todoManager;
@ -76,6 +77,7 @@ public class PrivateMessageController {
private final MessageChannelRouter messageChannelRouter;
private final MNSMessageTemplateDao mnsMessageTemplateDao;
private final TingyunService tingyunService;
private final MqProducer mqProducer;
@PostMapping("/sendPendingMessage")
@EnableResponseAdvice(enable = false)
@ -91,13 +93,7 @@ public class PrivateMessageController {
@PostMapping("/sendByEventMapping")
@EnableResponseAdvice(enable = false)
public Object sendByEventMapping(@RequestBody @Valid MessageSendRequestV4 request) {
return messageAPIV4.send(request);
}
@PostMapping("/sendByEventMappingV3")
@EnableResponseAdvice(enable = false)
public Object sendByEventMappingV3(@RequestBody @Valid MessageSendReqV3 request) {
public Object sendByEventMapping(@RequestBody @Valid MessageSendReqV3 request) {
return messageAPIV3.send(request);
}
@ -230,5 +226,17 @@ public class PrivateMessageController {
return "ok";
}
@PostMapping("/sendTestMessage")
@EnableResponseAdvice(enable = false)
public Object sendTestMessage() {
PresetButtonPressedMessage message = new PresetButtonPressedMessage();
mqProducer.send(MqMessageRecord
.builder(MqMessageType.TODO_TEST_MESSAGE, message)
.messageKey(System.currentTimeMillis() + "")
.operatorId("system")
.shardingKey("system")
.build());
return "ok";
}
}

View File

@ -0,0 +1,32 @@
package cn.axzo.msg.center.mq;
import cn.axzo.framework.rocketmq.Event;
import cn.axzo.framework.rocketmq.EventConsumer;
import cn.axzo.framework.rocketmq.EventHandler;
import cn.axzo.msg.center.service.enums.MqMessageType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
/**
* @author yanglin
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class TestMessageHandler implements EventHandler, InitializingBean {
private final EventConsumer eventConsumer;
@Override
public void onEvent(Event event, EventConsumer.Context context) {
log.info("Received test message: {}", event);
}
@Override
public void afterPropertiesSet() {
eventConsumer.registerHandler(MqMessageType.TODO_TEST_MESSAGE.getEventCode(), this);
}
}

View File

@ -15,6 +15,7 @@ public enum MqMessageType {
OLD_MSG_SEND("old-msg", "old-msg-send", "发送旧消息"),
TODO_PRESET_BUTTON_PRESSED("todo", "todo-preset-button-pressed", "预设按钮被点击"),
TODO_TEST_MESSAGE("todo", "test-message", "测试消息"),
TODO_STATE_UPDATE("todo", "todo-state-update", "待办状态变更(创建)");
private final String eventModel;