From 39c7f7cd9f502091d0c5b23af5cb941dec5bb744 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Tue, 17 Jan 2017 15:15:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E9=80=A0=E6=9F=A5=E8=AF=A2=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=AA=E6=80=A7=E5=8C=96=E8=8F=9C=E5=8D=95=E7=9A=84condition?= =?UTF-8?q?almenu=E5=92=8Cmenuid=E5=B1=9E=E6=80=A7=EF=BC=8C=20#126?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpMenuService.java | 5 +- .../mp/api/impl/WxMpMenuServiceImpl.java | 5 +- .../chanjar/weixin/mp/bean/menu/WxMpMenu.java | 92 +++++++++++++++++++ .../mp/api/impl/WxMpMenuServiceImplTest.java | 3 +- 4 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java index 73660d3f..f1c9fd47 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMenuService.java @@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.api; import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult; +import me.chanjar.weixin.mp.bean.menu.WxMpMenu; /** * 菜单相关操作接口 @@ -54,10 +55,10 @@ public interface WxMpMenuService { /** *
    * 自定义菜单查询接口
-   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=自定义菜单查询接口
+   * 详情请见: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141014&token=&lang=zh_CN
    * 
*/ - WxMenu menuGet() throws WxErrorException; + WxMpMenu menuGet() throws WxErrorException; /** *
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java
index 20590e5a..b28ac6a1 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImpl.java
@@ -7,6 +7,7 @@ import me.chanjar.weixin.common.exception.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpMenuService;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult;
+import me.chanjar.weixin.mp.bean.menu.WxMpMenu;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -78,11 +79,11 @@ public class WxMpMenuServiceImpl implements WxMpMenuService {
   }
 
   @Override
-  public WxMenu menuGet() throws WxErrorException {
+  public WxMpMenu menuGet() throws WxErrorException {
     String url = API_URL_PREFIX + "/get";
     try {
       String resultContent = this.wxMpService.get(url, null);
-      return WxMenu.fromJson(resultContent);
+      return WxMpMenu.fromJson(resultContent);
     } catch (WxErrorException e) {
       // 46003 不存在的菜单数据
       if (e.getError().getErrorCode() == 46003) {
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java
new file mode 100644
index 00000000..366ca2f1
--- /dev/null
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/menu/WxMpMenu.java
@@ -0,0 +1,92 @@
+package me.chanjar.weixin.mp.bean.menu;
+
+import com.google.gson.annotations.SerializedName;
+import me.chanjar.weixin.common.bean.menu.WxMenuButton;
+import me.chanjar.weixin.common.bean.menu.WxMenuRule;
+import me.chanjar.weixin.common.util.ToStringUtils;
+import me.chanjar.weixin.common.util.json.WxGsonBuilder;
+
+import java.util.List;
+
+/**
+ * 
+ *   公众号专用的菜单类,可能包含个性化菜单
+ * Created by Binary Wang on 2017-1-17.
+ * @author binarywang(Binary Wang)
+ * 
+ */ +public class WxMpMenu { + @SerializedName("menu") + private WxMpConditionalMenu menu; + + @SerializedName("conditionalmenu") + private List conditionalMenu; + + public static WxMpMenu fromJson(String json) { + return WxGsonBuilder.create().fromJson(json, WxMpMenu.class); + } + + public WxMpConditionalMenu getMenu() { + return menu; + } + + public void setMenu(WxMpConditionalMenu menu) { + this.menu = menu; + } + + public List getConditionalMenu() { + return conditionalMenu; + } + + public void setConditionalMenu(List conditionalMenu) { + this.conditionalMenu = conditionalMenu; + } + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public String toJson() { + return WxGsonBuilder.create().toJson(this); + } + + public static class WxMpConditionalMenu { + @SerializedName("button") + private List buttons; + @SerializedName("matchrule") + private WxMenuRule rule; + @SerializedName("menuid") + private String menuId; + + @Override + public String toString() { + return ToStringUtils.toSimpleString(this); + } + + public List getButtons() { + return buttons; + } + + public void setButtons(List buttons) { + this.buttons = buttons; + } + + public WxMenuRule getRule() { + return rule; + } + + public void setRule(WxMenuRule rule) { + this.rule = rule; + } + + public String getMenuId() { + return menuId; + } + + public void setMenuId(String menuId) { + this.menuId = menuId; + } + } + +} diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java index 04e1b3e6..08980a2b 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpMenuServiceImplTest.java @@ -8,6 +8,7 @@ import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.ApiTestModule; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.menu.WxMpGetSelfMenuInfoResult; +import me.chanjar.weixin.mp.bean.menu.WxMpMenu; import org.testng.*; import org.testng.annotations.*; @@ -137,7 +138,7 @@ public class WxMpMenuServiceImplTest { @Test(dependsOnMethods = {"testMenuCreate"}) public void testMenuGet() throws WxErrorException { - WxMenu wxMenu = this.wxService.getMenuService().menuGet(); + WxMpMenu wxMenu = this.wxService.getMenuService().menuGet(); Assert.assertNotNull(wxMenu); System.out.println(wxMenu.toJson()); }