| @@ -1,6 +1,8 @@ | |||||
| package me.chanjar.weixin.mp.bean.kefu; | package me.chanjar.weixin.mp.bean.kefu; | ||||
| import lombok.AllArgsConstructor; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | |||||
| import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
| import me.chanjar.weixin.mp.builder.kefu.*; | import me.chanjar.weixin.mp.builder.kefu.*; | ||||
| import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | ||||
| @@ -35,12 +37,11 @@ public class WxMpKefuMessage implements Serializable { | |||||
| private String headContent; | private String headContent; | ||||
| private String tailContent; | private String tailContent; | ||||
| private List<WxArticle> articles = new ArrayList<>(); | private List<WxArticle> articles = new ArrayList<>(); | ||||
| private List<WxMsgMenu> list = new ArrayList<>(); | |||||
| /** | /** | ||||
| * 菜单消息里的菜单内容. | * 菜单消息里的菜单内容. | ||||
| * 请使用逗号分割的形式将id和content连起来放在数组的里面 | |||||
| */ | */ | ||||
| private String[] msgMenuList; | |||||
| private List<MsgMenu> msgMenus = new ArrayList<>(); | |||||
| /** | /** | ||||
| * 获得文本消息builder. | * 获得文本消息builder. | ||||
| @@ -137,6 +138,8 @@ public class WxMpKefuMessage implements Serializable { | |||||
| } | } | ||||
| @Data | @Data | ||||
| @AllArgsConstructor | |||||
| @NoArgsConstructor | |||||
| public static class WxArticle implements Serializable { | public static class WxArticle implements Serializable { | ||||
| private static final long serialVersionUID = 5145137235440507379L; | private static final long serialVersionUID = 5145137235440507379L; | ||||
| @@ -147,7 +150,11 @@ public class WxMpKefuMessage implements Serializable { | |||||
| } | } | ||||
| @Data | @Data | ||||
| public static class WxMsgMenu implements Serializable { | |||||
| @AllArgsConstructor | |||||
| @NoArgsConstructor | |||||
| public static class MsgMenu implements Serializable { | |||||
| private static final long serialVersionUID = 7020769047598378839L; | |||||
| private String id; | private String id; | ||||
| private String content; | private String content; | ||||
| } | } | ||||
| @@ -11,13 +11,13 @@ import java.util.List; | |||||
| * 菜单消息builder | * 菜单消息builder | ||||
| * <pre> | * <pre> | ||||
| * 用法: | * 用法: | ||||
| * WxMpKefuMessage m = WxMpKefuMessage.MSGMENU().addList(lists).headContent(headContent).tailContent(tailContent).toUser(...).build(); | |||||
| * WxMpKefuMessage m = WxMpKefuMessage.MSGMENU().addMenus(lists).headContent(headContent).tailContent(tailContent).toUser(...).build(); | |||||
| * </pre> | * </pre> | ||||
| * | * | ||||
| * @author billytomato | * @author billytomato | ||||
| */ | */ | ||||
| public final class WxMsgMenuBuilder extends BaseBuilder<WxMsgMenuBuilder> { | public final class WxMsgMenuBuilder extends BaseBuilder<WxMsgMenuBuilder> { | ||||
| private List<WxMpKefuMessage.WxMsgMenu> list = new ArrayList<>(); | |||||
| private List<WxMpKefuMessage.MsgMenu> msgMenus = new ArrayList<>(); | |||||
| private String headContent; | private String headContent; | ||||
| private String tailContent; | private String tailContent; | ||||
| @@ -26,13 +26,13 @@ public final class WxMsgMenuBuilder extends BaseBuilder<WxMsgMenuBuilder> { | |||||
| this.msgType = WxConsts.KefuMsgType.MSGMENU; | this.msgType = WxConsts.KefuMsgType.MSGMENU; | ||||
| } | } | ||||
| public WxMsgMenuBuilder addList(WxMpKefuMessage.WxMsgMenu... list) { | |||||
| Collections.addAll(this.list, list); | |||||
| public WxMsgMenuBuilder addMenus(WxMpKefuMessage.MsgMenu... msgMenus) { | |||||
| Collections.addAll(this.msgMenus, msgMenus); | |||||
| return this; | return this; | ||||
| } | } | ||||
| public WxMsgMenuBuilder list(List<WxMpKefuMessage.WxMsgMenu> list) { | |||||
| this.list = list; | |||||
| public WxMsgMenuBuilder msgMenus(List<WxMpKefuMessage.MsgMenu> msgMenus) { | |||||
| this.msgMenus = msgMenus; | |||||
| return this; | return this; | ||||
| } | } | ||||
| @@ -51,7 +51,7 @@ public final class WxMsgMenuBuilder extends BaseBuilder<WxMsgMenuBuilder> { | |||||
| WxMpKefuMessage m = super.build(); | WxMpKefuMessage m = super.build(); | ||||
| m.setHeadContent(this.headContent); | m.setHeadContent(this.headContent); | ||||
| m.setTailContent(this.tailContent); | m.setTailContent(this.tailContent); | ||||
| m.setList(this.list); | |||||
| m.setMsgMenus(this.msgMenus); | |||||
| return m; | return m; | ||||
| } | } | ||||
| } | } | ||||
| @@ -83,7 +83,7 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag | |||||
| case KefuMsgType.MSGMENU: { | case KefuMsgType.MSGMENU: { | ||||
| JsonObject msgmenuJsonObject = new JsonObject(); | JsonObject msgmenuJsonObject = new JsonObject(); | ||||
| JsonArray listJsonArray = new JsonArray(); | JsonArray listJsonArray = new JsonArray(); | ||||
| for (WxMpKefuMessage.WxMsgMenu list : message.getList()) { | |||||
| for (WxMpKefuMessage.MsgMenu list : message.getMsgMenus()) { | |||||
| JsonObject listJson = new JsonObject(); | JsonObject listJson = new JsonObject(); | ||||
| listJson.addProperty("id", list.getId()); | listJson.addProperty("id", list.getId()); | ||||
| listJson.addProperty("content", list.getContent()); | listJson.addProperty("content", list.getContent()); | ||||
| @@ -5,8 +5,6 @@ import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage.WxArticle; | |||||
| import org.testng.Assert; | import org.testng.Assert; | ||||
| import org.testng.annotations.Test; | import org.testng.annotations.Test; | ||||
| import static org.assertj.core.api.Assertions.assertThat; | |||||
| @Test | @Test | ||||
| public class WxMpKefuMessageTest { | public class WxMpKefuMessageTest { | ||||
| @@ -156,18 +154,10 @@ public class WxMpKefuMessageTest { | |||||
| } | } | ||||
| public void testMsgMenuBuild() { | public void testMsgMenuBuild() { | ||||
| WxMpKefuMessage.WxMsgMenu wxMsgMenu1=new WxMpKefuMessage.WxMsgMenu(); | |||||
| wxMsgMenu1.setId("101"); | |||||
| wxMsgMenu1.setContent("msgmenu1"); | |||||
| WxMpKefuMessage.WxMsgMenu wxMsgMenu2=new WxMpKefuMessage.WxMsgMenu(); | |||||
| wxMsgMenu2.setId("102"); | |||||
| wxMsgMenu2.setContent("msgmenu2"); | |||||
| WxMpKefuMessage reply = WxMpKefuMessage.MSGMENU() | WxMpKefuMessage reply = WxMpKefuMessage.MSGMENU() | ||||
| .toUser("OPENID") | .toUser("OPENID") | ||||
| .addList(wxMsgMenu1).addList(wxMsgMenu2) | |||||
| .addMenus(new WxMpKefuMessage.MsgMenu("101", "msgmenu1"), | |||||
| new WxMpKefuMessage.MsgMenu("102", "msgmenu2")) | |||||
| .headContent("head_content") | .headContent("head_content") | ||||
| .tailContent("tail_content") | .tailContent("tail_content") | ||||
| .build(); | .build(); | ||||