diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxMenu.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxMenu.java deleted file mode 100644 index 3c530e85..00000000 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxMenu.java +++ /dev/null @@ -1,208 +0,0 @@ -package me.chanjar.weixin.common.bean; - -import me.chanjar.weixin.common.util.json.WxGsonBuilder; - -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Serializable; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; - -/** - * 企业号菜单 - * - * @author Daniel Qian - */ -public class WxMenu implements Serializable { - - private static final long serialVersionUID = -7083914585539687746L; - - private List buttons = new ArrayList(); - - private WxMenuRule matchRule; - - /** - * 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化 - * 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu - */ - public static WxMenu fromJson(String json) { - return WxGsonBuilder.create().fromJson(json, WxMenu.class); - } - - /** - * 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化 - * 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu - */ - public static WxMenu fromJson(InputStream is) { - return WxGsonBuilder.create().fromJson(new InputStreamReader(is, StandardCharsets.UTF_8), WxMenu.class); - } - - public List getButtons() { - return buttons; - } - - public void setButtons(List buttons) { - this.buttons = buttons; - } - - public WxMenuRule getMatchRule() { - return matchRule; - } - - public void setMatchRule(WxMenuRule matchRule) { - this.matchRule = matchRule; - } - - public String toJson() { - return WxGsonBuilder.create().toJson(this); - } - - @Override - public String toString() { - return "WxMenu{" + - "buttons=" + buttons + - '}'; - } - - public static class WxMenuButton { - - private String type; - private String name; - private String key; - private String url; - - private List subButtons = new ArrayList(); - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public List getSubButtons() { - return subButtons; - } - - public void setSubButtons(List subButtons) { - this.subButtons = subButtons; - } - - @Override - public String toString() { - return "WxMenuButton{" + - "type='" + type + '\'' + - ", name='" + name + '\'' + - ", key='" + key + '\'' + - ", url='" + url + '\'' + - ", subButtons=" + subButtons + - '}'; - } - } - - public static class WxMenuRule { - private String tagId; - private String sex; - private String country; - private String province; - private String city; - private String clientPlatformType; - private String language; - - public String getTagId() { - return tagId; - } - - public void setTagId(String tagId) { - this.tagId = tagId; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public String getCountry() { - return country; - } - - public void setCountry(String country) { - this.country = country; - } - - public String getProvince() { - return province; - } - - public void setProvince(String province) { - this.province = province; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getClientPlatformType() { - return clientPlatformType; - } - - public void setClientPlatformType(String clientPlatformType) { - this.clientPlatformType = clientPlatformType; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - @Override - public String toString() { - return "matchrule:{" + - "tag_id='" + tagId + '\'' + - ", sex='" + sex + '\'' + - ", country" + country + '\'' + - ", province" + province + '\'' + - ", city" + city + '\'' + - ", client_platform_type" + clientPlatformType + '\'' + - ", language" + language + '\'' + - "}"; - } - } - -} diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java new file mode 100644 index 00000000..7989b39a --- /dev/null +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenu.java @@ -0,0 +1,69 @@ +package me.chanjar.weixin.common.bean.menu; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Serializable; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; + +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.util.json.WxGsonBuilder; + +/** + * 企业号菜单 + * + * @author Daniel Qian + */ +public class WxMenu implements Serializable { + + private static final long serialVersionUID = -7083914585539687746L; + + private List buttons = new ArrayList(); + + private WxMenuRule matchRule; + + /** + * 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化 + * 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu + */ + public static WxMenu fromJson(String json) { + return WxGsonBuilder.create().fromJson(json, WxMenu.class); + } + + /** + * 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化 + * 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu + */ + public static WxMenu fromJson(InputStream is) { + return WxGsonBuilder.create().fromJson(new InputStreamReader(is, StandardCharsets.UTF_8), WxMenu.class); + } + + public List getButtons() { + return buttons; + } + + public void setButtons(List buttons) { + this.buttons = buttons; + } + + public WxMenuRule getMatchRule() { + return matchRule; + } + + public void setMatchRule(WxMenuRule matchRule) { + this.matchRule = matchRule; + } + + public String toJson() { + return WxGsonBuilder.create().toJson(this); + } + + @Override + public String toString() { + return "WxMenu{" + + "buttons=" + buttons + + '}'; + } + +} diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java new file mode 100644 index 00000000..3acf0370 --- /dev/null +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuButton.java @@ -0,0 +1,62 @@ +package me.chanjar.weixin.common.bean.menu; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +public class WxMenuButton { + + private String type; + private String name; + private String key; + private String url; + + private List subButtons = new ArrayList(); + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public List getSubButtons() { + return subButtons; + } + + public void setSubButtons(List subButtons) { + this.subButtons = subButtons; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); + } +} \ No newline at end of file diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java new file mode 100644 index 00000000..5cb9d8fe --- /dev/null +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/menu/WxMenuRule.java @@ -0,0 +1,75 @@ +package me.chanjar.weixin.common.bean.menu; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +public class WxMenuRule { + private String tagId; + private String sex; + private String country; + private String province; + private String city; + private String clientPlatformType; + private String language; + + public String getTagId() { + return tagId; + } + + public void setTagId(String tagId) { + this.tagId = tagId; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getProvince() { + return province; + } + + public void setProvince(String province) { + this.province = province; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getClientPlatformType() { + return clientPlatformType; + } + + public void setClientPlatformType(String clientPlatformType) { + this.clientPlatformType = clientPlatformType; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + @Override + public String toString() { + return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); + } +} \ No newline at end of file diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxGsonBuilder.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxGsonBuilder.java index 072ee38b..100ef523 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxGsonBuilder.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxGsonBuilder.java @@ -2,8 +2,9 @@ package me.chanjar.weixin.common.util.json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; + import me.chanjar.weixin.common.bean.WxAccessToken; -import me.chanjar.weixin.common.bean.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxMenuGsonAdapter.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxMenuGsonAdapter.java index 486c9578..75f07824 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxMenuGsonAdapter.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/json/WxMenuGsonAdapter.java @@ -8,11 +8,22 @@ */ package me.chanjar.weixin.common.util.json; -import com.google.gson.*; -import me.chanjar.weixin.common.bean.WxMenu; - import java.lang.reflect.Type; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + +import me.chanjar.weixin.common.bean.menu.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.bean.menu.WxMenuRule; + + /** * @author Daniel Qian */ @@ -22,7 +33,7 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ JsonObject json = new JsonObject(); JsonArray buttonArray = new JsonArray(); - for (WxMenu.WxMenuButton button : menu.getButtons()) { + for (WxMenuButton button : menu.getButtons()) { JsonObject buttonJson = convertToJson(button); buttonArray.add(buttonJson); } @@ -35,7 +46,7 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ return json; } - protected JsonObject convertToJson(WxMenu.WxMenuButton button) { + protected JsonObject convertToJson(WxMenuButton button) { JsonObject buttonJson = new JsonObject(); buttonJson.addProperty("type", button.getType()); buttonJson.addProperty("name", button.getName()); @@ -43,7 +54,7 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ buttonJson.addProperty("url", button.getUrl()); if (button.getSubButtons() != null && button.getSubButtons().size() > 0) { JsonArray buttonArray = new JsonArray(); - for (WxMenu.WxMenuButton sub_button : button.getSubButtons()) { + for (WxMenuButton sub_button : button.getSubButtons()) { buttonArray.add(convertToJson(sub_button)); } buttonJson.add("sub_button", buttonArray); @@ -51,7 +62,7 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ return buttonJson; } - protected JsonObject convertToJson(WxMenu.WxMenuRule menuRule) { + protected JsonObject convertToJson(WxMenuRule menuRule) { JsonObject matchRule = new JsonObject(); matchRule.addProperty("tag_id", menuRule.getTagId()); matchRule.addProperty("sex", menuRule.getSex()); @@ -74,7 +85,7 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ JsonArray buttonsJson = menuJson.get("button").getAsJsonArray(); for (int i = 0; i < buttonsJson.size(); i++) { JsonObject buttonJson = buttonsJson.get(i).getAsJsonObject(); - WxMenu.WxMenuButton button = convertFromJson(buttonJson); + WxMenuButton button = convertFromJson(buttonJson); menu.getButtons().add(button); if (buttonJson.get("sub_button") == null || buttonJson.get("sub_button").isJsonNull()) { continue; @@ -88,8 +99,8 @@ public class WxMenuGsonAdapter implements JsonSerializer, JsonDeserializ return menu; } - protected WxMenu.WxMenuButton convertFromJson(JsonObject json) { - WxMenu.WxMenuButton button = new WxMenu.WxMenuButton(); + protected WxMenuButton convertFromJson(JsonObject json) { + WxMenuButton button = new WxMenuButton(); button.setName(GsonHelper.getString(json, "name")); button.setKey(GsonHelper.getString(json, "key")); button.setUrl(GsonHelper.getString(json, "url")); diff --git a/weixin-java-common/src/test/java/me/chanjar/weixin/common/bean/WxMenuTest.java b/weixin-java-common/src/test/java/me/chanjar/weixin/common/bean/WxMenuTest.java index b7492b37..e2a0c2c1 100644 --- a/weixin-java-common/src/test/java/me/chanjar/weixin/common/bean/WxMenuTest.java +++ b/weixin-java-common/src/test/java/me/chanjar/weixin/common/bean/WxMenuTest.java @@ -1,10 +1,13 @@ package me.chanjar.weixin.common.bean; -import me.chanjar.weixin.common.bean.WxMenu.WxMenuButton; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import me.chanjar.weixin.common.bean.menu.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.bean.menu.WxMenuRule; + @Test public class WxMenuTest { @@ -66,7 +69,7 @@ public class WxMenuTest { menu.getButtons().add(button1); - WxMenu.WxMenuRule wxMenuRule = new WxMenu.WxMenuRule(); + WxMenuRule wxMenuRule = new WxMenuRule(); wxMenuRule.setTagId("2"); wxMenuRule.setSex("1"); wxMenuRule.setCountry("中国"); diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java index 7cf9332a..e00f57fa 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java @@ -1,7 +1,12 @@ package me.chanjar.weixin.cp.api; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + import me.chanjar.weixin.common.bean.WxJsapiSignature; -import me.chanjar.weixin.common.bean.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.session.WxSession; @@ -12,11 +17,6 @@ import me.chanjar.weixin.cp.bean.WxCpMessage; import me.chanjar.weixin.cp.bean.WxCpTag; import me.chanjar.weixin.cp.bean.WxCpUser; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - /** * 微信API的Service */ diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java index 1cf517ab..a3858493 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpServiceImpl.java @@ -1,5 +1,23 @@ package me.chanjar.weixin.cp.api; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.security.NoSuchAlgorithmException; +import java.util.List; +import java.util.UUID; + +import org.apache.http.HttpHost; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.CloseableHttpClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -7,9 +25,10 @@ import com.google.gson.JsonPrimitive; import com.google.gson.internal.Streams; import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; + import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.bean.WxJsapiSignature; -import me.chanjar.weixin.common.bean.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; import me.chanjar.weixin.common.exception.WxErrorException; @@ -20,30 +39,20 @@ import me.chanjar.weixin.common.util.RandomUtils; import me.chanjar.weixin.common.util.StringUtils; import me.chanjar.weixin.common.util.crypto.SHA1; import me.chanjar.weixin.common.util.fs.FileUtils; -import me.chanjar.weixin.common.util.http.*; +import me.chanjar.weixin.common.util.http.ApacheHttpClientBuilder; +import me.chanjar.weixin.common.util.http.DefaultApacheHttpHttpClientBuilder; +import me.chanjar.weixin.common.util.http.MediaDownloadRequestExecutor; +import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor; +import me.chanjar.weixin.common.util.http.RequestExecutor; +import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; +import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; +import me.chanjar.weixin.common.util.http.URIUtil; import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.cp.bean.WxCpDepart; import me.chanjar.weixin.cp.bean.WxCpMessage; import me.chanjar.weixin.cp.bean.WxCpTag; import me.chanjar.weixin.cp.bean.WxCpUser; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; -import org.apache.http.HttpHost; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.BasicResponseHandler; -import org.apache.http.impl.client.CloseableHttpClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; -import java.security.NoSuchAlgorithmException; -import java.util.List; -import java.util.UUID; public class WxCpServiceImpl implements WxCpService { diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java index ca5b5991..395a48da 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/WxMenuAPITest.java @@ -1,15 +1,17 @@ package me.chanjar.weixin.cp.api; -import com.google.inject.Inject; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.bean.WxMenu; -import me.chanjar.weixin.common.bean.WxMenu.WxMenuButton; -import me.chanjar.weixin.common.exception.WxErrorException; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Guice; import org.testng.annotations.Test; +import com.google.inject.Inject; + +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.common.bean.menu.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.exception.WxErrorException; + /** * 测试菜单 * @author Daniel Qian 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 31ce48d3..22217801 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 @@ -1,6 +1,6 @@ package me.chanjar.weixin.mp.api; -import me.chanjar.weixin.common.bean.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.exception.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 bfad1e06..28dbff91 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 @@ -1,6 +1,6 @@ package me.chanjar.weixin.mp.api.impl; -import me.chanjar.weixin.common.bean.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenu; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; 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 0cbae4db..1e0b60dd 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 @@ -1,16 +1,18 @@ package me.chanjar.weixin.mp.api.impl; -import com.google.inject.Inject; -import me.chanjar.weixin.common.api.WxConsts; -import me.chanjar.weixin.common.bean.WxMenu; -import me.chanjar.weixin.common.bean.WxMenu.WxMenuButton; -import me.chanjar.weixin.common.exception.WxErrorException; -import me.chanjar.weixin.mp.api.ApiTestModule; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Guice; import org.testng.annotations.Test; +import com.google.inject.Inject; + +import me.chanjar.weixin.common.api.WxConsts; +import me.chanjar.weixin.common.bean.menu.WxMenu; +import me.chanjar.weixin.common.bean.menu.WxMenuButton; +import me.chanjar.weixin.common.exception.WxErrorException; +import me.chanjar.weixin.mp.api.ApiTestModule; + /** * 测试菜单 * @author chanjarster