From a44c18ade60346d36b780be54834d9cf9f33fba7 Mon Sep 17 00:00:00 2001 From: Daniel Qian Date: Mon, 3 Nov 2014 21:46:40 +0800 Subject: [PATCH] =?UTF-8?q?issue=20#28=20=E6=B7=BB=E5=8A=A0=E8=AF=AD?= =?UTF-8?q?=E4=B9=89=E7=90=86=E8=A7=A3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/bean/WxMpSemanticQuery.java | 91 +++++++++++++++++++ .../bean/result/WxMpSemanticQueryResult.java | 73 +++++++++++++++ .../weixin/mp/util/json/WxMpGsonBuilder.java | 1 + .../json/WxMpSemanticQueryResultAdapter.java | 51 +++++++++++ 4 files changed, 216 insertions(+) create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpSemanticQuery.java create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpSemanticQueryResult.java create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpSemanticQuery.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpSemanticQuery.java new file mode 100644 index 00000000..aac3bd10 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpSemanticQuery.java @@ -0,0 +1,91 @@ +package me.chanjar.weixin.mp.bean; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +/** + * 语义理解查询用对象 + * + * http://mp.weixin.qq.com/wiki/index.php?title=语义理解 + * + * @author Daniel Qian + */ +public class WxMpSemanticQuery { + + private String query; + private String category; + private Float latitude; + private Float longitude; + private String city; + private String region; + private String appid; + private String uid; + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public Float getLatitude() { + return latitude; + } + + public void setLatitude(Float latitude) { + this.latitude = latitude; + } + + public Float getLongitude() { + return longitude; + } + + public void setLongitude(Float longitude) { + this.longitude = longitude; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getRegion() { + return region; + } + + public void setRegion(String region) { + this.region = region; + } + + public String getAppid() { + return appid; + } + + public void setAppid(String appid) { + this.appid = appid; + } + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public String toJson() { + return WxMpGsonBuilder.create().toJson(this); + } + +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpSemanticQueryResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpSemanticQueryResult.java new file mode 100644 index 00000000..a0972c35 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpSemanticQueryResult.java @@ -0,0 +1,73 @@ +package me.chanjar.weixin.mp.bean.result; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +/** + * 语义理解查询结果对象 + * + * http://mp.weixin.qq.com/wiki/index.php?title=语义理解 + * + * @author Daniel Qian + */ +public class WxMpSemanticQueryResult { + + private String query; + private String type; + private String semantic; + private String result; + private String answer; + private String text; + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getSemantic() { + return semantic; + } + + public void setSemantic(String semantic) { + this.semantic = semantic; + } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public static WxMpSemanticQueryResult fromJson(String json) { + return WxMpGsonBuilder.create().fromJson(json, WxMpSemanticQueryResult.class); + } + +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java index dc2367b6..7285bc8b 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java @@ -23,6 +23,7 @@ public class WxMpGsonBuilder { INSTANCE.registerTypeAdapter(WxMpMassUploadResult.class, new WxMpMassUploadResultAdapter()); INSTANCE.registerTypeAdapter(WxMpQrCodeTicket.class, new WxQrCodeTicketAdapter()); INSTANCE.registerTypeAdapter(WxMpTemplateMessage.class, new WxMpTemplateMessageGsonAdapter()); + INSTANCE.registerTypeAdapter(WxMpSemanticQueryResult.class, new WxMpSemanticQueryResultAdapter()); } public static Gson create() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java new file mode 100644 index 00000000..c0d1e805 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpSemanticQueryResultAdapter.java @@ -0,0 +1,51 @@ +/* + * KINGSTAR MEDIA SOLUTIONS Co.,LTD. Copyright c 2005-2013. All rights reserved. + * + * This source code is the property of KINGSTAR MEDIA SOLUTIONS LTD. It is intended + * only for the use of KINGSTAR MEDIA application development. Reengineering, reproduction + * arose from modification of the original source, or other redistribution of this source + * is not permitted without written permission of the KINGSTAR MEDIA SOLUTIONS LTD. + */ +package me.chanjar.weixin.mp.util.json; + +import com.google.gson.*; +import me.chanjar.weixin.common.util.json.GsonHelper; +import me.chanjar.weixin.mp.bean.result.WxMpMassSendResult; +import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket; +import me.chanjar.weixin.mp.bean.result.WxMpSemanticQueryResult; + +import java.lang.reflect.Type; + +/** + * + * @author Daniel Qian + * + */ +public class WxMpSemanticQueryResultAdapter implements JsonDeserializer { + + public WxMpSemanticQueryResult deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + WxMpSemanticQueryResult result = new WxMpSemanticQueryResult(); + JsonObject resultJsonObject = json.getAsJsonObject(); + + if (GsonHelper.getString(resultJsonObject, "query") != null) { + result.setQuery(GsonHelper.getString(resultJsonObject, "query")); + } + if (GsonHelper.getString(resultJsonObject, "type") != null) { + result.setType(GsonHelper.getString(resultJsonObject, "type")); + } + if (resultJsonObject.get("semantic") != null) { + result.setSemantic(resultJsonObject.get("semantic").toString()); + } + if (resultJsonObject.get("result") != null) { + result.setResult(resultJsonObject.get("result").toString()); + } + if (GsonHelper.getString(resultJsonObject, "answer") != null) { + result.setAnswer(GsonHelper.getString(resultJsonObject, "answer")); + } + if (GsonHelper.getString(resultJsonObject, "text") != null) { + result.setText(GsonHelper.getString(resultJsonObject, "text")); + } + return result; + } + +}