|
@@ -52,91 +52,91 @@ public class MessageAutoReplyHandler implements WxMpMessageHandler {
|
|
|
log.info("收到信息内容:{}", JsonUtils.toJsonString(wxMessage));
|
|
|
log.info("关键字:{}", wxMessage.getContent());
|
|
|
|
|
|
- if (!wxMessage.getMsgType().equals(WxConsts.XmlMsgType.EVENT)) {
|
|
|
- //可以选择将消息保存到本地
|
|
|
-
|
|
|
- // 获取微信用户基本信息
|
|
|
- try {
|
|
|
- WxMpUser wxmpUser = weixinService.getUserService()
|
|
|
- .userInfo(wxMessage.getFromUser(), null);
|
|
|
- if (wxmpUser != null) {
|
|
|
- MpAccountDO wxAccount = mpAccountService.findBy(MpAccountDO::getAccount, wxMessage.getToUser());
|
|
|
- if (wxAccount != null) {
|
|
|
-
|
|
|
- if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.TEXT)) {
|
|
|
- WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();
|
|
|
- wxFansMsg.setOpenid(wxmpUser.getOpenId());
|
|
|
- try {
|
|
|
- wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());
|
|
|
- wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));
|
|
|
- wxFansMsg.setMsgType(wxMessage.getMsgType());
|
|
|
- wxFansMsg.setContent(wxMessage.getContent());
|
|
|
- wxFansMsg.setIsRes("1");
|
|
|
-
|
|
|
- //组装回复消息
|
|
|
- String content = processContent(wxMessage);
|
|
|
- content = HtmlUtil.escape(content);
|
|
|
- wxFansMsg.setResContent(content);
|
|
|
-
|
|
|
- mpMessageService.createWxFansMsg(wxFansMsg);
|
|
|
- return new TextBuilder().build(content, wxMessage, weixinService);
|
|
|
-
|
|
|
- }
|
|
|
- if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.IMAGE)) {
|
|
|
- WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();
|
|
|
- wxFansMsg.setOpenid(wxmpUser.getOpenId());
|
|
|
- try {
|
|
|
- wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());
|
|
|
- wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));
|
|
|
- wxFansMsg.setMsgType(wxMessage.getMsgType());
|
|
|
- wxFansMsg.setMediaId(wxMessage.getMediaId());
|
|
|
- wxFansMsg.setPicUrl(wxMessage.getPicUrl());
|
|
|
- String downloadDirStr = fileApi.createFile(HttpUtil.downloadBytes(wxMessage.getPicUrl()));
|
|
|
- File downloadDir = new File(downloadDirStr);
|
|
|
- if (!downloadDir.exists()) {
|
|
|
- downloadDir.mkdirs();
|
|
|
- }
|
|
|
- String filepath = downloadDirStr + System.currentTimeMillis() + ".png";
|
|
|
- //微信pic url下载到本地,防止失效
|
|
|
- long size = HttpUtil.downloadFile(wxMessage.getPicUrl(), FileUtil.file(filepath));
|
|
|
- log.info("download pic size : {}", size);
|
|
|
- wxFansMsg.setPicPath(filepath);
|
|
|
- wxFansMsg.setIsRes("0");
|
|
|
- mpMessageService.createWxFansMsg(wxFansMsg);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (WxErrorException e) {
|
|
|
- if (e.getError().getErrorCode() == 48001) {
|
|
|
- log.info("该公众号没有获取用户信息权限!");
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- //当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服
|
|
|
- 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();
|
|
|
- }
|
|
|
+// if (!wxMessage.getMsgType().equals(WxConsts.XmlMsgType.EVENT)) {
|
|
|
+// //可以选择将消息保存到本地
|
|
|
+//
|
|
|
+// // 获取微信用户基本信息
|
|
|
+// try {
|
|
|
+// WxMpUser wxmpUser = weixinService.getUserService()
|
|
|
+// .userInfo(wxMessage.getFromUser(), null);
|
|
|
+// if (wxmpUser != null) {
|
|
|
+// MpAccountDO wxAccount = mpAccountService.findBy(MpAccountDO::getAccount, wxMessage.getToUser());
|
|
|
+// if (wxAccount != null) {
|
|
|
+//
|
|
|
+// if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.TEXT)) {
|
|
|
+// WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();
|
|
|
+// wxFansMsg.setOpenid(wxmpUser.getOpenId());
|
|
|
+// try {
|
|
|
+// wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));
|
|
|
+// } catch (UnsupportedEncodingException e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());
|
|
|
+// wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));
|
|
|
+// wxFansMsg.setMsgType(wxMessage.getMsgType());
|
|
|
+// wxFansMsg.setContent(wxMessage.getContent());
|
|
|
+// wxFansMsg.setIsRes("1");
|
|
|
+//
|
|
|
+// //组装回复消息
|
|
|
+// String content = processContent(wxMessage);
|
|
|
+// content = HtmlUtil.escape(content);
|
|
|
+// wxFansMsg.setResContent(content);
|
|
|
+//
|
|
|
+// mpMessageService.createWxFansMsg(wxFansMsg);
|
|
|
+// return new TextBuilder().build(content, wxMessage, weixinService);
|
|
|
+//
|
|
|
+// }
|
|
|
+// if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.IMAGE)) {
|
|
|
+// WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();
|
|
|
+// wxFansMsg.setOpenid(wxmpUser.getOpenId());
|
|
|
+// try {
|
|
|
+// wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));
|
|
|
+// } catch (UnsupportedEncodingException e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());
|
|
|
+// wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));
|
|
|
+// wxFansMsg.setMsgType(wxMessage.getMsgType());
|
|
|
+// wxFansMsg.setMediaId(wxMessage.getMediaId());
|
|
|
+// wxFansMsg.setPicUrl(wxMessage.getPicUrl());
|
|
|
+// String downloadDirStr = fileApi.createFile(HttpUtil.downloadBytes(wxMessage.getPicUrl()));
|
|
|
+// File downloadDir = new File(downloadDirStr);
|
|
|
+// if (!downloadDir.exists()) {
|
|
|
+// downloadDir.mkdirs();
|
|
|
+// }
|
|
|
+// String filepath = downloadDirStr + System.currentTimeMillis() + ".png";
|
|
|
+// //微信pic url下载到本地,防止失效
|
|
|
+// long size = HttpUtil.downloadFile(wxMessage.getPicUrl(), FileUtil.file(filepath));
|
|
|
+// log.info("download pic size : {}", size);
|
|
|
+// wxFansMsg.setPicPath(filepath);
|
|
|
+// wxFansMsg.setIsRes("0");
|
|
|
+// mpMessageService.createWxFansMsg(wxFansMsg);
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
+// } catch (WxErrorException e) {
|
|
|
+// if (e.getError().getErrorCode() == 48001) {
|
|
|
+// log.info("该公众号没有获取用户信息权限!");
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// //当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服
|
|
|
+// 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();
|
|
|
+// }
|
|
|
|
|
|
//组装默认回复消息
|
|
|
return new TextBuilder().build("测试", wxMessage, weixinService);
|