package com.github.liuweijw.business.wechat.handler; import java.util.Map; import me.chanjar.weixin.common.api.WxConsts.XmlMsgType; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.session.WxSessionManager; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import com.github.liuweijw.business.wechat.builder.TextBuilder; import com.github.liuweijw.business.wechat.utils.JsonUtils; @Component public class MsgHandler extends AbstractHandler { @Override public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService weixinService, WxSessionManager sessionManager) { if (!wxMessage.getMsgType().equals(XmlMsgType.EVENT)) { // TODO 可以选择将消息保存到本地 } // 当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服 try { if (StringUtils.startsWithAny(wxMessage.getContent(), "你好", "客服") && weixinService.getKefuService().kfOnlineList().getKfOnlineList().size() > 0) { return WxMpXmlOutMessage .TRANSFER_CUSTOMER_SERVICE().fromUser(wxMessage.getToUser()).toUser( wxMessage.getFromUser()).build(); } } catch (WxErrorException e) { e.printStackTrace(); } // TODO 组装回复消息 String content = "收到信息内容:" + JsonUtils.toJson(wxMessage); return new TextBuilder().build(content, wxMessage, weixinService); } }