MessageManager.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.iamberry.wechat.service;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Map;
  5. import com.iamberry.wechat.core.entity.wx.Article;
  6. import com.iamberry.wechat.core.entity.wx.ImageTextInfo;
  7. import com.iamberry.wechat.core.entity.wx.ImageTextMore;
  8. import com.iamberry.wechat.core.entity.wx.NewsMessage;
  9. import com.iamberry.wechat.tools.NameUtils;
  10. public class MessageManager {
  11. /**
  12. * 获取图文信息
  13. * @param requestMap
  14. * @return
  15. * @throws Exception
  16. */
  17. public static String getImageTextInfo(Map<String, String> requestMap,ImageTextInfo imageTextInfo,List<ImageTextMore> imagetextMoreList)throws Exception{
  18. String picUrl = NameUtils.getConfig("IMAGE_URL") + imageTextInfo.getImageUrl();
  19. String clickUrl = null;
  20. List<Article> articleList = new ArrayList<Article>();
  21. Article article = new Article();
  22. article.setTitle(imageTextInfo.getTitle()); //图文消息标题
  23. article.setDescription(imageTextInfo.getDigest());//图文消息描述
  24. article.setPicUrl(picUrl);//图片URL
  25. article.setUrl(clickUrl);//点击图文消息跳转链接
  26. if(imageTextInfo.getClickOutUrl() != null && !"".equals(imageTextInfo.getClickOutUrl())){
  27. article.setUrl(imageTextInfo.getClickOutUrl()+ "?openid=" + requestMap.get("FromUserName")); //如果外链不为空则为外链
  28. }
  29. articleList.add(article);
  30. if (imagetextMoreList != null) {
  31. for(ImageTextMore textMore : imagetextMoreList){
  32. article = new Article();
  33. article.setTitle(textMore.getTitle()); //图文消息标题
  34. picUrl = NameUtils.getConfig("IMAGE_URL") + textMore.getImageUrl();
  35. clickUrl = NameUtils.getConfig("MORE_CLICK_URL") + textMore.getMoreImageTextNo();
  36. article.setUrl(clickUrl);//点击图文消息跳转链接
  37. article.setPicUrl(picUrl);//图片链接
  38. article.setDescription(textMore.getDigest());//图文消息描述
  39. if(textMore.getClickOutUrl() != null && !"".equals(textMore.getClickOutUrl())){
  40. article.setUrl(textMore.getClickOutUrl() + "?openid=" + requestMap.get("FromUserName")); //如果外链不为空则为外链
  41. }
  42. articleList.add(article);
  43. }
  44. }
  45. return getNewsMessage(requestMap, articleList);
  46. }
  47. /**
  48. * 组装图文消息
  49. * @param requestMap
  50. * @param articles
  51. * @return
  52. */
  53. public static String getNewsMessage(Map<String, String> requestMap, List<Article> articles) {
  54. NewsMessage newsMessage = new NewsMessage();
  55. newsMessage.setFuncFlag(1);
  56. newsMessage.setArticles(articles);
  57. newsMessage.setArticleCount(articles.size());
  58. newsMessage.setToUserName(requestMap.get("FromUserName"));
  59. newsMessage.setFromUserName(requestMap.get("ToUserName"));
  60. newsMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_NEWS);
  61. newsMessage.setCreateTime(Long.parseLong(requestMap.get("CreateTime")));
  62. return MessageUtil.newsMessageToXml(newsMessage);
  63. }
  64. }