From 2eb3fc5ed13968cfcfbcff33e135239c5a7c521d Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sat, 27 Jan 2018 18:13:08 +0800 Subject: [PATCH] =?UTF-8?q?#425=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=AE=A2?= =?UTF-8?q?=E6=9C=8D=E6=B6=88=E6=81=AF=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=8D=A1=E7=89=87=E6=B6=88=E6=81=AF=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wx/miniapp/bean/WxMaKefuMessage.java | 26 ++++++---- ...eBuilder.java => ImageMessageBuilder.java} | 11 +++-- ...nkBuilder.java => LinkMessageBuilder.java} | 19 ++++---- .../miniapp/builder/MaPageMessageBuilder.java | 47 +++++++++++++++++++ ...xtBuilder.java => TextMessageBuilder.java} | 11 +++-- .../wx/miniapp/bean/WxMaKefuMessageTest.java | 14 +++++- 6 files changed, 99 insertions(+), 29 deletions(-) rename weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/{ImageBuilder.java => ImageMessageBuilder.java} (61%) rename weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/{LinkBuilder.java => LinkMessageBuilder.java} (62%) create mode 100644 weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java rename weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/{TextBuilder.java => TextMessageBuilder.java} (61%) diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java index 268e579b..85fece8b 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java @@ -1,8 +1,9 @@ package cn.binarywang.wx.miniapp.bean; -import cn.binarywang.wx.miniapp.builder.ImageBuilder; -import cn.binarywang.wx.miniapp.builder.LinkBuilder; -import cn.binarywang.wx.miniapp.builder.TextBuilder; +import cn.binarywang.wx.miniapp.builder.ImageMessageBuilder; +import cn.binarywang.wx.miniapp.builder.LinkMessageBuilder; +import cn.binarywang.wx.miniapp.builder.MaPageMessageBuilder; +import cn.binarywang.wx.miniapp.builder.TextMessageBuilder; import com.google.gson.GsonBuilder; import com.google.gson.annotations.SerializedName; import lombok.AllArgsConstructor; @@ -77,22 +78,29 @@ public class WxMaKefuMessage implements Serializable { /** * 获得文本消息builder. */ - public static TextBuilder newTextBuilder() { - return new TextBuilder(); + public static TextMessageBuilder newTextBuilder() { + return new TextMessageBuilder(); } /** * 获得图片消息builder. */ - public static ImageBuilder newImageBuilder() { - return new ImageBuilder(); + public static ImageMessageBuilder newImageBuilder() { + return new ImageMessageBuilder(); } /** * 获得图文链接消息builder. */ - public static LinkBuilder newLinkBuilder() { - return new LinkBuilder(); + public static LinkMessageBuilder newLinkBuilder() { + return new LinkMessageBuilder(); + } + + /** + * 获得图文链接消息builder. + */ + public static MaPageMessageBuilder newMaPageBuilder() { + return new MaPageMessageBuilder(); } public String toJson() { diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java similarity index 61% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java index 659028e9..bcd2290f 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java @@ -1,21 +1,22 @@ package cn.binarywang.wx.miniapp.builder; import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; -import cn.binarywang.wx.miniapp.constant.WxMaConstants; + +import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType; /** * 图片消息builder. * * @author Binary Wang */ -public final class ImageBuilder extends BaseBuilder { +public final class ImageMessageBuilder extends BaseBuilder { private String mediaId; - public ImageBuilder() { - this.msgType = WxMaConstants.KefuMsgType.IMAGE; + public ImageMessageBuilder() { + this.msgType = KefuMsgType.IMAGE; } - public ImageBuilder mediaId(String mediaId) { + public ImageMessageBuilder mediaId(String mediaId) { this.mediaId = mediaId; return this; } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java similarity index 62% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java index 3f3a7fd5..f4927e16 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java @@ -1,39 +1,40 @@ package cn.binarywang.wx.miniapp.builder; import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; -import cn.binarywang.wx.miniapp.constant.WxMaConstants; + +import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType; /** - * 图文链接builder + * 图文链接消息builder * * @author Binary Wang */ -public class LinkBuilder extends BaseBuilder { +public class LinkMessageBuilder extends BaseBuilder { private String title; private String description; private String url; private String thumbUrl; - public LinkBuilder() { - this.msgType = WxMaConstants.KefuMsgType.IMAGE; + public LinkMessageBuilder() { + this.msgType = KefuMsgType.LINK; } - public LinkBuilder title(String title) { + public LinkMessageBuilder title(String title) { this.title = title; return this; } - public LinkBuilder description(String description) { + public LinkMessageBuilder description(String description) { this.description = description; return this; } - public LinkBuilder url(String url) { + public LinkMessageBuilder url(String url) { this.url = url; return this; } - public LinkBuilder thumbUrl(String thumbUrl) { + public LinkMessageBuilder thumbUrl(String thumbUrl) { this.thumbUrl = thumbUrl; return this; } diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java new file mode 100644 index 00000000..238a6014 --- /dev/null +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java @@ -0,0 +1,47 @@ +package cn.binarywang.wx.miniapp.builder; + +import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; + +import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType; + +/** + * 小程序卡片消息builder + * + * @author Binary Wang + */ +public class MaPageMessageBuilder extends BaseBuilder { + private String title; + private String pagePath; + private String thumbMediaId; + + public MaPageMessageBuilder() { + this.msgType = KefuMsgType.MA_PAGE; + } + + public MaPageMessageBuilder title(String title) { + this.title = title; + return this; + } + + public MaPageMessageBuilder pagePath(String pagePath) { + this.pagePath = pagePath; + return this; + } + + public MaPageMessageBuilder thumbMediaId(String thumbMediaId) { + this.thumbMediaId = thumbMediaId; + return this; + } + + @Override + public WxMaKefuMessage build() { + WxMaKefuMessage m = super.build(); + m.setMaPage(WxMaKefuMessage.KfMaPage.builder() + .title(this.title) + .pagePath(this.pagePath) + .thumbMediaId(this.thumbMediaId) + .build() + ); + return m; + } +} diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java similarity index 61% rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java index 67d0f37a..d0da3257 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java @@ -1,21 +1,22 @@ package cn.binarywang.wx.miniapp.builder; import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; -import cn.binarywang.wx.miniapp.constant.WxMaConstants; + +import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType; /** * 文本消息builder. * * @author Binary Wang */ -public final class TextBuilder extends BaseBuilder { +public final class TextMessageBuilder extends BaseBuilder { private String content; - public TextBuilder() { - this.msgType = WxMaConstants.KefuMsgType.TEXT; + public TextMessageBuilder() { + this.msgType = KefuMsgType.TEXT; } - public TextBuilder content(String content) { + public TextMessageBuilder content(String content) { this.content = content; return this; } diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java index c8c4f2ac..d32dfca7 100644 --- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java +++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java @@ -37,9 +37,21 @@ public class WxMaKefuMessageTest { .thumbUrl("thumbUrl") .build(); assertThat(reply.toJson()) - .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"image\"," + + .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"link\"," + "\"link\":{\"title\":\"title\",\"description\":\"description\",\"url\":\"url\",\"thumb_url\":\"thumbUrl\"}}"); } + public void testMaPageBuilder() { + WxMaKefuMessage reply = WxMaKefuMessage.newMaPageBuilder() + .toUser("OPENID") + .title("title") + .pagePath("pagePath") + .thumbMediaId("thumbMediaId") + .build(); + assertThat(reply.toJson()) + .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"miniprogrampage\"," + + "\"miniprogrampage\":{\"title\":\"title\",\"pagepath\":\"pagePath\",\"thumb_media_id\":\"thumbMediaId\"}}"); + } + }