package org.ruoyi.handler; import lombok.RequiredArgsConstructor; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.session.WxSessionManager; import me.chanjar.weixin.cp.api.WxCpService; import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage; import org.ruoyi.builder.TextBuilder; import org.ruoyi.service.IChatVxService; import org.springframework.stereotype.Component; import java.util.Map; /** * @author Binary Wang */ @Component @RequiredArgsConstructor public class MsgHandler extends AbstractHandler { private final IChatVxService chatVxService; @Override public WxCpXmlOutMessage handle(WxCpXmlMessage wxMessage, Map context, WxCpService cpService, WxSessionManager sessionManager) { final String msgType = wxMessage.getMsgType(); if (msgType == null) { // 如果msgType没有,就自己根据具体报文内容做处理 } if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) { //TODO 可以选择将消息保存到本地 } //TODO 组装回复消息 String content = chatVxService.chat(wxMessage.getContent()); return new TextBuilder().build(content, wxMessage, cpService); } }