WxCpMessage.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package me.chanjar.weixin.cp.bean;
  2. import java.io.Serializable;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import lombok.Data;
  6. import me.chanjar.weixin.common.api.WxConsts;
  7. import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
  8. import me.chanjar.weixin.cp.bean.article.NewArticle;
  9. import me.chanjar.weixin.cp.bean.messagebuilder.FileBuilder;
  10. import me.chanjar.weixin.cp.bean.messagebuilder.ImageBuilder;
  11. import me.chanjar.weixin.cp.bean.messagebuilder.MarkdownMsgBuilder;
  12. import me.chanjar.weixin.cp.bean.messagebuilder.MpnewsBuilder;
  13. import me.chanjar.weixin.cp.bean.messagebuilder.NewsBuilder;
  14. import me.chanjar.weixin.cp.bean.messagebuilder.TextBuilder;
  15. import me.chanjar.weixin.cp.bean.messagebuilder.TextCardBuilder;
  16. import me.chanjar.weixin.cp.bean.messagebuilder.VideoBuilder;
  17. import me.chanjar.weixin.cp.bean.messagebuilder.VoiceBuilder;
  18. import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
  19. /**
  20. * 消息.
  21. *
  22. * @author Daniel Qian
  23. */
  24. @Data
  25. public class WxCpMessage implements Serializable {
  26. private static final long serialVersionUID = -2082278303476631708L;
  27. private String toUser;
  28. private String toParty;
  29. private String toTag;
  30. private Integer agentId;
  31. private String msgType;
  32. private String content;
  33. private String mediaId;
  34. private String thumbMediaId;
  35. private String title;
  36. private String description;
  37. private String musicUrl;
  38. private String hqMusicUrl;
  39. private String safe;
  40. private String url;
  41. private String btnTxt;
  42. private List<NewArticle> articles = new ArrayList<>();
  43. private List<MpnewsArticle> mpnewsArticles = new ArrayList<>();
  44. /**
  45. * 获得文本消息builder.
  46. */
  47. public static TextBuilder TEXT() {
  48. return new TextBuilder();
  49. }
  50. /**
  51. * 获得文本卡片消息builder.
  52. */
  53. public static TextCardBuilder TEXTCARD() {
  54. return new TextCardBuilder();
  55. }
  56. /**
  57. * 获得图片消息builder.
  58. */
  59. public static ImageBuilder IMAGE() {
  60. return new ImageBuilder();
  61. }
  62. /**
  63. * 获得语音消息builder.
  64. */
  65. public static VoiceBuilder VOICE() {
  66. return new VoiceBuilder();
  67. }
  68. /**
  69. * 获得视频消息builder.
  70. */
  71. public static VideoBuilder VIDEO() {
  72. return new VideoBuilder();
  73. }
  74. /**
  75. * 获得图文消息builder.
  76. */
  77. public static NewsBuilder NEWS() {
  78. return new NewsBuilder();
  79. }
  80. /**
  81. * 获得mpnews图文消息builder.
  82. */
  83. public static MpnewsBuilder MPNEWS() {
  84. return new MpnewsBuilder();
  85. }
  86. /**
  87. * 获得markdown消息builder.
  88. */
  89. public static MarkdownMsgBuilder MARKDOWN() {
  90. return new MarkdownMsgBuilder();
  91. }
  92. /**
  93. * 获得文件消息builder.
  94. */
  95. public static FileBuilder FILE() {
  96. return new FileBuilder();
  97. }
  98. /**
  99. * <pre>
  100. * 请使用
  101. * {@link WxConsts.KefuMsgType#TEXT}
  102. * {@link WxConsts.KefuMsgType#IMAGE}
  103. * {@link WxConsts.KefuMsgType#VOICE}
  104. * {@link WxConsts.KefuMsgType#MUSIC}
  105. * {@link WxConsts.KefuMsgType#VIDEO}
  106. * {@link WxConsts.KefuMsgType#NEWS}
  107. * {@link WxConsts.KefuMsgType#MPNEWS}
  108. * {@link WxConsts.KefuMsgType#MARKDOWN}
  109. * </pre>
  110. *
  111. * @param msgType 消息类型
  112. */
  113. public void setMsgType(String msgType) {
  114. this.msgType = msgType;
  115. }
  116. public String toJson() {
  117. return WxCpGsonBuilder.create().toJson(this);
  118. }
  119. }