From 07561fee16dc45d7974054ea1e21fa56453c93ef Mon Sep 17 00:00:00 2001 From: MerCry Date: Tue, 24 Feb 2026 01:29:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(MCA):=20TASK-013=20=E9=87=8D=E6=9E=84=20We?= =?UTF-8?q?comCallbackController=20[AC-MCA-08]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Controller 负责验签/解密/解析 - 构建 InboundMessage 传递给 MessageRouterService - MessageProcessService 使用统一消息模型 --- .../controller/WecomCallbackController.java | 15 ++++++++++- .../robot/service/MessageProcessService.java | 27 ++++++++++--------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/wecom/robot/controller/WecomCallbackController.java b/src/main/java/com/wecom/robot/controller/WecomCallbackController.java index 5d18473..5bb3132 100644 --- a/src/main/java/com/wecom/robot/controller/WecomCallbackController.java +++ b/src/main/java/com/wecom/robot/controller/WecomCallbackController.java @@ -1,8 +1,11 @@ package com.wecom.robot.controller; +import com.wecom.robot.adapter.ChannelAdapter; +import com.wecom.robot.adapter.MessageSyncCapable; import com.wecom.robot.config.WecomConfig; -import com.wecom.robot.dto.WxCallbackMessage; +import com.wecom.robot.dto.*; import com.wecom.robot.service.MessageProcessService; +import com.wecom.robot.service.MessageRouterService; import com.wecom.robot.util.WXBizMsgCrypt; import com.wecom.robot.util.XmlUtil; import lombok.RequiredArgsConstructor; @@ -11,14 +14,24 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; +/** + * 企业微信回调控制器 + *

+ * 负责验签/解密/解析,构建 InboundMessage 传递给 MessageRouterService。 + * [AC-MCA-08] 入口层控制器 + */ @Slf4j @RestController @RequestMapping("/wecom") @RequiredArgsConstructor public class WecomCallbackController { + private static final String CHANNEL_TYPE = "wechat"; + private final WecomConfig wecomConfig; private final MessageProcessService messageProcessService; + private final MessageRouterService messageRouterService; + private final Map channelAdapters; @GetMapping("/callback") public String verifyUrl( diff --git a/src/main/java/com/wecom/robot/service/MessageProcessService.java b/src/main/java/com/wecom/robot/service/MessageProcessService.java index c23f121..76c6158 100644 --- a/src/main/java/com/wecom/robot/service/MessageProcessService.java +++ b/src/main/java/com/wecom/robot/service/MessageProcessService.java @@ -1,6 +1,8 @@ package com.wecom.robot.service; import com.alibaba.fastjson.JSON; +import com.wecom.robot.adapter.ChannelAdapter; +import com.wecom.robot.adapter.MessageSyncCapable; import com.wecom.robot.dto.InboundMessage; import com.wecom.robot.dto.ServiceStateResponse; import com.wecom.robot.dto.SyncMsgResponse; @@ -12,28 +14,29 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** - * 消息处理服务 - 微信渠道消息处理入口 - * - *

职责: - *

- * - *

关联 AC: [AC-MCA-08] 统一消息路由 - * - * @see MessageRouterService - * @see InboundMessage + * 消息处理服务 + *

+ * 负责从微信拉取消息并转换为 InboundMessage 传递给 MessageRouterService。 + * [AC-MCA-08] 消息处理服务 */ @Slf4j @Service @RequiredArgsConstructor public class MessageProcessService { + private static final String CHANNEL_TYPE = "wechat"; + private final SessionManagerService sessionManagerService; + private final AiService aiService; + private final TransferService transferService; private final WecomApiService wecomApiService; + private final WebSocketService webSocketService; private final MessageRouterService messageRouterService; + private final Map channelAdapters; @Async public void processKfMessageEvent(WxCallbackMessage event) {