diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDataCubeServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDataCubeServiceImpl.java index 0c668e06..b82b7eaa 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDataCubeServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDataCubeServiceImpl.java @@ -9,8 +9,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.google.gson.reflect.TypeToken; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.mp.api.WxMpDataCubeService; @@ -21,7 +19,6 @@ import me.chanjar.weixin.mp.bean.datacube.WxDataCubeInterfaceResult; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; -import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * Created by Binary Wang on 2016/8/23. @@ -48,9 +45,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeUserSummary.fromJson(responseContent); } @Override @@ -61,9 +56,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeUserCumulate.fromJson(responseContent); } @Override @@ -74,9 +67,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleResult.fromJson(responseContent); } @Override @@ -87,9 +78,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleTotal.fromJson(responseContent); } @Override @@ -100,9 +89,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleResult.fromJson(responseContent); } @Override @@ -113,9 +100,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleResult.fromJson(responseContent); } @Override @@ -126,9 +111,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleResult.fromJson(responseContent); } @Override @@ -139,9 +122,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeArticleResult.fromJson(responseContent); } @Override @@ -153,9 +134,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -167,9 +146,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -181,9 +158,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -195,9 +170,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -209,9 +182,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -223,9 +194,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -237,9 +206,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeMsgResult.fromJson(responseContent); } @Override @@ -251,9 +218,7 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeInterfaceResult.fromJson(responseContent); } @Override @@ -265,8 +230,6 @@ public class WxMpDataCubeServiceImpl implements WxMpDataCubeService { param.addProperty("end_date", this.dateFormat.format(endDate)); String responseContent = this.wxMpService.post(url, param.toString()); this.log.debug("\nurl:{}\nparams:{}\nresponse:{}",url, param, responseContent); - return WxMpGsonBuilder.INSTANCE.create().fromJson(new JsonParser().parse(responseContent).getAsJsonObject().get("list"), - new TypeToken>() { - }.getType()); + return WxDataCubeInterfaceResult.fromJson(responseContent); } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleResult.java index ce1f4269..3dd28459 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleResult.java @@ -1,6 +1,12 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.util.List; + +import com.google.gson.JsonParser; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * 图文分析数据接口返回结果对象 @@ -9,6 +15,8 @@ import com.google.gson.annotations.SerializedName; */ public class WxDataCubeArticleResult extends WxDataCubeBaseResult { + private static final JsonParser JSON_PARSER = new JsonParser(); + /** * ref_hour * 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时 @@ -203,5 +211,11 @@ public class WxDataCubeArticleResult extends WxDataCubeBaseResult { public void setUserSource(Integer userSource) { this.userSource = userSource; } - + + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleTotal.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleTotal.java index 1832f734..37401cf8 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleTotal.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeArticleTotal.java @@ -1,8 +1,12 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.util.List; + +import com.google.gson.JsonParser; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; -import java.util.List; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * 图文分析数据接口返回结果对象 @@ -11,6 +15,8 @@ import java.util.List; */ public class WxDataCubeArticleTotal extends WxDataCubeBaseResult { + private static final JsonParser JSON_PARSER = new JsonParser(); + /** * msgid * 请注意:这里的msgid实际上是由msgid(图文消息id,这也就是群发接口调用后返回的msg_data_id)和index(消息次序索引)组成, 例如12003_3, 其中12003是msgid,即一次群发的消息的id; 3为index,假设该次群发的图文消息共5个文章(因为可能为多图文),3表示5个中的第3个 @@ -55,5 +61,11 @@ public class WxDataCubeArticleTotal extends WxDataCubeBaseResult { public void setDetails(List details) { this.details = details; } - + + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeInterfaceResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeInterfaceResult.java index 4abbe277..82a45dcf 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeInterfaceResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeInterfaceResult.java @@ -1,6 +1,12 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.util.List; + +import com.google.gson.JsonParser; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * 接口分析数据接口返回结果对象 @@ -9,6 +15,8 @@ import com.google.gson.annotations.SerializedName; */ public class WxDataCubeInterfaceResult extends WxDataCubeBaseResult { + private static final JsonParser JSON_PARSER = new JsonParser(); + /** * ref_hour * 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时 @@ -83,5 +91,12 @@ public class WxDataCubeInterfaceResult extends WxDataCubeBaseResult { public void setMaxTimeCost(Integer maxTimeCost) { this.maxTimeCost = maxTimeCost; } + + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeMsgResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeMsgResult.java index bbeb3b36..908dfca8 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeMsgResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeMsgResult.java @@ -1,6 +1,12 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.util.List; + +import com.google.gson.JsonParser; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * 消息分析数据接口返回结果对象 @@ -9,6 +15,8 @@ import com.google.gson.annotations.SerializedName; */ public class WxDataCubeMsgResult extends WxDataCubeBaseResult { + private static final JsonParser JSON_PARSER = new JsonParser(); + /** * ref_hour * 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时 @@ -114,4 +122,11 @@ public class WxDataCubeMsgResult extends WxDataCubeBaseResult { this.oriPageReadUser = oriPageReadUser; } + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } + } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java index 7192cfb4..039bd189 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserCumulate.java @@ -1,19 +1,27 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import java.io.Serializable; -import java.util.Date; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** *
  * 累计用户数据接口的返回JSON数据包
- * http://mp.weixin.qq.com/wiki/3/ecfed6e1a0a03b5f35e5efac98e864b7.html
+ * 详情查看文档:用户分析数据接口
  * 
*/ public class WxDataCubeUserCumulate implements Serializable { + private static final JsonParser JSON_PARSER = new JsonParser(); + private static final long serialVersionUID = -3570981300225093657L; private Date refDate; @@ -40,4 +48,11 @@ public class WxDataCubeUserCumulate implements Serializable { public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } + + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java index cfb41842..4802027e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/datacube/WxDataCubeUserSummary.java @@ -1,20 +1,28 @@ package me.chanjar.weixin.mp.bean.datacube; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import java.io.Serializable; -import java.util.Date; +import com.google.gson.JsonParser; +import com.google.gson.reflect.TypeToken; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** *
  * 用户增减数据接口的返回JSON数据包
- * http://mp.weixin.qq.com/wiki/3/ecfed6e1a0a03b5f35e5efac98e864b7.html
+ * 详情查看文档:用户分析数据接口
  * 
*/ public class WxDataCubeUserSummary implements Serializable { private static final long serialVersionUID = -2336654489906694173L; + private static final JsonParser JSON_PARSER = new JsonParser(); + private Date refDate; private Integer userSource; @@ -59,4 +67,11 @@ public class WxDataCubeUserSummary implements Serializable { public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE); } + + public static List fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson( + JSON_PARSER.parse(json).getAsJsonObject().get("list"), + new TypeToken>() { + }.getType()); + } }