@@ -1,8 +1,9 @@ | |||||
package cn.binarywang.wx.miniapp.bean; | 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.GsonBuilder; | ||||
import com.google.gson.annotations.SerializedName; | import com.google.gson.annotations.SerializedName; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
@@ -77,22 +78,29 @@ public class WxMaKefuMessage implements Serializable { | |||||
/** | /** | ||||
* 获得文本消息builder. | * 获得文本消息builder. | ||||
*/ | */ | ||||
public static TextBuilder newTextBuilder() { | |||||
return new TextBuilder(); | |||||
public static TextMessageBuilder newTextBuilder() { | |||||
return new TextMessageBuilder(); | |||||
} | } | ||||
/** | /** | ||||
* 获得图片消息builder. | * 获得图片消息builder. | ||||
*/ | */ | ||||
public static ImageBuilder newImageBuilder() { | |||||
return new ImageBuilder(); | |||||
public static ImageMessageBuilder newImageBuilder() { | |||||
return new ImageMessageBuilder(); | |||||
} | } | ||||
/** | /** | ||||
* 获得图文链接消息builder. | * 获得图文链接消息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() { | public String toJson() { | ||||
@@ -1,21 +1,22 @@ | |||||
package cn.binarywang.wx.miniapp.builder; | package cn.binarywang.wx.miniapp.builder; | ||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; | 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 <a href="https://github.com/binarywang">Binary Wang</a> | * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||
*/ | */ | ||||
public final class ImageBuilder extends BaseBuilder<ImageBuilder> { | |||||
public final class ImageMessageBuilder extends BaseBuilder<ImageMessageBuilder> { | |||||
private String mediaId; | 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; | this.mediaId = mediaId; | ||||
return this; | return this; | ||||
} | } |
@@ -1,39 +1,40 @@ | |||||
package cn.binarywang.wx.miniapp.builder; | package cn.binarywang.wx.miniapp.builder; | ||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; | 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 <a href="https://github.com/binarywang">Binary Wang</a> | * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||
*/ | */ | ||||
public class LinkBuilder extends BaseBuilder<LinkBuilder> { | |||||
public class LinkMessageBuilder extends BaseBuilder<LinkMessageBuilder> { | |||||
private String title; | private String title; | ||||
private String description; | private String description; | ||||
private String url; | private String url; | ||||
private String thumbUrl; | 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; | this.title = title; | ||||
return this; | return this; | ||||
} | } | ||||
public LinkBuilder description(String description) { | |||||
public LinkMessageBuilder description(String description) { | |||||
this.description = description; | this.description = description; | ||||
return this; | return this; | ||||
} | } | ||||
public LinkBuilder url(String url) { | |||||
public LinkMessageBuilder url(String url) { | |||||
this.url = url; | this.url = url; | ||||
return this; | return this; | ||||
} | } | ||||
public LinkBuilder thumbUrl(String thumbUrl) { | |||||
public LinkMessageBuilder thumbUrl(String thumbUrl) { | |||||
this.thumbUrl = thumbUrl; | this.thumbUrl = thumbUrl; | ||||
return this; | return this; | ||||
} | } |
@@ -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 <a href="https://github.com/binarywang">Binary Wang</a> | |||||
*/ | |||||
public class MaPageMessageBuilder extends BaseBuilder<MaPageMessageBuilder> { | |||||
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; | |||||
} | |||||
} |
@@ -1,21 +1,22 @@ | |||||
package cn.binarywang.wx.miniapp.builder; | package cn.binarywang.wx.miniapp.builder; | ||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; | 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 <a href="https://github.com/binarywang">Binary Wang</a> | * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||
*/ | */ | ||||
public final class TextBuilder extends BaseBuilder<TextBuilder> { | |||||
public final class TextMessageBuilder extends BaseBuilder<TextMessageBuilder> { | |||||
private String content; | 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; | this.content = content; | ||||
return this; | return this; | ||||
} | } |
@@ -37,9 +37,21 @@ public class WxMaKefuMessageTest { | |||||
.thumbUrl("thumbUrl") | .thumbUrl("thumbUrl") | ||||
.build(); | .build(); | ||||
assertThat(reply.toJson()) | assertThat(reply.toJson()) | ||||
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"image\"," + | |||||
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"link\"," + | |||||
"\"link\":{\"title\":\"title\",\"description\":\"description\",\"url\":\"url\",\"thumb_url\":\"thumbUrl\"}}"); | "\"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\"}}"); | |||||
} | |||||
} | } |