Skip to content

Commit f7a64a7

Browse files
committed
将菜单相关的类转移到单独的包里方便管理,以便于某些特殊需求
1 parent 6643498 commit f7a64a7

File tree

13 files changed

+285
-259
lines changed

13 files changed

+285
-259
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxMenu.java

Lines changed: 0 additions & 208 deletions
This file was deleted.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package me.chanjar.weixin.common.bean.menu;
2+
3+
import java.io.InputStream;
4+
import java.io.InputStreamReader;
5+
import java.io.Serializable;
6+
import java.nio.charset.StandardCharsets;
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
10+
import me.chanjar.weixin.common.bean.menu.WxMenuButton;
11+
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
12+
13+
/**
14+
* 企业号菜单
15+
*
16+
* @author Daniel Qian
17+
*/
18+
public class WxMenu implements Serializable {
19+
20+
private static final long serialVersionUID = -7083914585539687746L;
21+
22+
private List<WxMenuButton> buttons = new ArrayList<WxMenuButton>();
23+
24+
private WxMenuRule matchRule;
25+
26+
/**
27+
* 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化
28+
* 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu
29+
*/
30+
public static WxMenu fromJson(String json) {
31+
return WxGsonBuilder.create().fromJson(json, WxMenu.class);
32+
}
33+
34+
/**
35+
* 要用 http://mp.weixin.qq.com/wiki/16/ff9b7b85220e1396ffa16794a9d95adc.html 格式来反序列化
36+
* 相比 http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html 的格式,外层多套了一个menu
37+
*/
38+
public static WxMenu fromJson(InputStream is) {
39+
return WxGsonBuilder.create().fromJson(new InputStreamReader(is, StandardCharsets.UTF_8), WxMenu.class);
40+
}
41+
42+
public List<WxMenuButton> getButtons() {
43+
return buttons;
44+
}
45+
46+
public void setButtons(List<WxMenuButton> buttons) {
47+
this.buttons = buttons;
48+
}
49+
50+
public WxMenuRule getMatchRule() {
51+
return matchRule;
52+
}
53+
54+
public void setMatchRule(WxMenuRule matchRule) {
55+
this.matchRule = matchRule;
56+
}
57+
58+
public String toJson() {
59+
return WxGsonBuilder.create().toJson(this);
60+
}
61+
62+
@Override
63+
public String toString() {
64+
return "WxMenu{" +
65+
"buttons=" + buttons +
66+
'}';
67+
}
68+
69+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package me.chanjar.weixin.common.bean.menu;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import org.apache.commons.lang3.builder.ToStringBuilder;
7+
import org.apache.commons.lang3.builder.ToStringStyle;
8+
9+
public class WxMenuButton {
10+
11+
private String type;
12+
private String name;
13+
private String key;
14+
private String url;
15+
16+
private List<WxMenuButton> subButtons = new ArrayList<WxMenuButton>();
17+
18+
public String getType() {
19+
return type;
20+
}
21+
22+
public void setType(String type) {
23+
this.type = type;
24+
}
25+
26+
public String getName() {
27+
return name;
28+
}
29+
30+
public void setName(String name) {
31+
this.name = name;
32+
}
33+
34+
public String getKey() {
35+
return key;
36+
}
37+
38+
public void setKey(String key) {
39+
this.key = key;
40+
}
41+
42+
public String getUrl() {
43+
return url;
44+
}
45+
46+
public void setUrl(String url) {
47+
this.url = url;
48+
}
49+
50+
public List<WxMenuButton> getSubButtons() {
51+
return subButtons;
52+
}
53+
54+
public void setSubButtons(List<WxMenuButton> subButtons) {
55+
this.subButtons = subButtons;
56+
}
57+
58+
@Override
59+
public String toString() {
60+
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
61+
}
62+
}

0 commit comments

Comments
 (0)