8000 merge Develop by binarywang · Pull Request #30 · binarywang/WxJava · GitHub
[go: up one dir, main page]

Skip to content

merge Develop #30

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 62 commits into from
Aug 31, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
f40cec5
Update README.md
binarywang Aug 1, 2016
65fb373
版本号更改为 2.1.0-SNAPSHOT
binarywang Aug 1, 2016
49d561c
优化WxError类的toString方法,避免输出重复内容
binarywang Aug 1, 2016
8b1c320
Update README.md
binarywang Aug 1, 2016
baf99d6
调整readme部分格式
binarywang Aug 1, 2016
6643498
code clean up for common module
binarywang Aug 2, 2016
f7a64a7
将菜单相关的类转移到单独的包里方便管理,以便于某些特殊需求
binarywang Aug 2, 2016
d05da57
code clean up for cp module
binarywang Aug 2, 2016
f65c6f7
Update README.md
binarywang Aug 9, 2016
8a4f1e6
卡券service构造方法改为public
ZhaoxiongTan Aug 10, 2016
6e55387
Merge pull request #19 from ZhaoxiongTan/develop
binarywang Aug 10, 2016
ccecac9
Update README.md
binarywang Aug 11, 2016
5057f2d
增加生成授权链接方法,重定向链接可直接读取配置。
gaigeshen Aug 12, 2016
c2f00a1
Merge pull request #21 from gaigeshen/develop
kareanyi Aug 12, 2016
4bd7e61
规范代码命名格式
binarywang Aug 13, 2016
a154e30
提出部分代码为方法,清晰化代码结构
binarywang Aug 13, 2016
ff2cd99
修复创建JS-API签名的漏洞
gaigeshen Aug 16, 2016
58f9570
Merge pull request #22 from gaigeshen/develop
binarywang Aug 16, 2016
87707fa
企业号全局配置存储添加Redis支持
gaigeshen Aug 17, 2016
27ad02d
Merge pull request #24 from gaigeshen/develop
kareanyi Aug 17, 2016
977161c
去掉多余容易引起误解的测试使用的接口方法oauth2buildAuthorizationUrl
binarywang Aug 18, 2016
184e6d7
WxMenuButton增加缺失的media_id字段
binarywang Aug 18, 2016
c8d21e3
格式化不规范的代码
binarywang Aug 19, 2016
30c914f
修复部分javadoc
binarywang Aug 19, 2016
a7846f9
重构部分代码,抽取重复代码为单独方法,并调整部分代码顺序
binarywang Aug 22, 2016
f2e251a
修复部分导致warning的代码
binarywang Aug 22, 2016
a70f937
格式化pom格式
binarywang Aug 23, 2016
bb0147b
转移统计分析相关接口为单独类,为以后完善补充统计分析接口做准备
binarywang Aug 23, 2016
8d72adc
fix javadoc error
binarywang Aug 23, 2016
d1a66b2
ignore bin folder created by eclipse ide.
xiaohulu Aug 24, 2016
00d7b85
Merge pull request #27 from xiaohulu/eclipse-ignore-bin
binarywang Aug 24, 2016
e8abad8
update javadoc
binarywang Aug 24, 2016
90b4b5c
更改toString方法
binarywang Aug 25, 2016
f38f31f
移动单元测试到类同名包下
binarywang Aug 25, 2016
f7454b6
重构,改名
binarywang Aug 25, 2016
f0cd7dd
重构,改名
binarywang Aug 25, 2016
14fb63d
添加图文分析数据接口
binarywang Aug 25, 2016
b5d9ce9
调整清理http连接的频率,避免过度日志输出
binarywang Aug 26, 2016
7bd75c9
重构DefaultApacheHttpClientBuilder
binarywang Aug 26, 2016
e016372
添加doctype,抑制warning
binarywang Aug 29, 2016
f262c74
添加输出日志代码,抑制warning
binarywang Aug 29, 2016
9c5b3c3
添加getter和setter方法
binarywang Aug 29, 2016
4c98a56
添加消息分析数据接口
binarywang Aug 29, 2016
a294bc4
修复部分可能造成resource leak的代码
binarywang Aug 29, 2016
f70a6a5
add gradle support
binarywang Aug 29, 2016
2db53ec
add gradle support,ignore something
binarywang Aug 29, 2016
c449e87
Merge branch 'master' into develop
binarywang Aug 30, 2016
ee158b6
添加Gradle的使用说明部分
binarywang Aug 30, 2016
4a994ea
调整部分段落位置
binarywang Aug 30, 2016
af9bfa2
添加接口分析数据接口
binarywang Aug 30, 2016
5525c4f
添加批量查询用户基本信息功能,没有测试,没有添加超过100验证
Aug 31, 2016
4047f6d
修改代码格式使用两个空格
Aug 31, 2016
1eadbc8
Merge pull request #29 from aimilin6688/develop
binarywang Aug 31, 2016
8000
473feaf
fix javadoc
binarywang Aug 31, 2016
76e1da5
add missing @Override annotation
binarywang Aug 31, 2016
b991929
fix unqualified access
binarywang Aug 31, 2016
52b2a37
add serialVersionUID
binarywang Aug 31, 2016
05f809c
Remove redundant type arguments
binarywang Aug 31, 2016
dafbe07
remove unused imports
binarywang Aug 31, 2016
d17f113
fix potential resource leak
binarywang Aug 31, 2016
74737e2
fix javadoc
binarywang Aug 31, 2016
8bca9e7
版本号更新为2.1.0
binarywang Aug 31, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
添加消息分析数据接口
  • Loading branch information
binarywang committed Aug 29, 2016
commit 4c98a561ddbea16b6bd6ef994f738a6918a312f6
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeArticleResult;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeArticleTotal;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeMsgResult;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary;

Expand Down Expand Up @@ -110,4 +111,82 @@ public interface WxMpDataCubeService {
*/
List<WxDataCubeArticleResult> getUserShareHour(Date beginDate, Date endDate) throws WxErrorException;

//*******************消息分析数据接口***********************//

/**
* <pre>
* 获取消息发送概况数据(getupstreammsg)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsg?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度7天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsg(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息分送分时数据(getupstreammsghour)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsghour?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度1天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgHour(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息发送周数据(getupstreammsgweek)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsgweek?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度30天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgWeek(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息发送月数据(getupstreammsgmonth)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsgmonth?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度30天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgMonth(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息发送分布数据(getupstreammsgdist)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsgdist?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度15天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgDist(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息发送分布周数据(getupstreammsgdistweek)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsgdistweek?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度30天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgDistWeek(Date beginDate, Date endDate) throws WxErrorException;

/**
* <pre>
* 获取消息发送分布月数据(getupstreammsgdistmonth)
* 详情请见文档:<a href="http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141085&token=&lang=zh_CN">消息分析数据接口</a>
* 接口url格式:https://api.weixin.qq.com/datacube/getupstreammsgdistmonth?access_token=ACCESS_TOKEN
*
* @param beginDate 开始时间
* @param endDate 最大时间跨度30天,endDate不能早于begingDate
*/
List<WxDataCubeMsgResult> getUpstreamMsgDistMonth(Date beginDate, Date endDate) throws WxErrorException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeArticleResult;
import me.chanjar.weixin.mp.bean.datacube.WxDataCubeArticleTotal;
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;
Expand All @@ -22,7 +23,7 @@
* @author binarywang (https://github.com/binarywang)
*/
public class WxMpDataCubeServiceImpl implements WxMpDataCubeService {
protected final Logger log = LoggerFactory.getLogger(WxMpServiceImpl.class);
protected final Logger log = LoggerFactory.getLogger(WxMpDataCubeServiceImpl.class);

private static final String API_URL_PREFIX = "https://api.weixin.qq.com/datacube";
private WxMpService wxMpService;
Expand Down Expand Up @@ -134,4 +135,102 @@ public List<WxDataCubeArticleResult> getUserShareHour(Date beginDate, Date endDa
new TypeToken<List<WxDataCubeArticleResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsg(Date beginDate, Date endDate)
throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsg";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgHour(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsghour";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgWeek(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsgweek";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgMonth(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsgmonth";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgDist(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsgdist";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgDistWeek(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsgdistweek";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}

@Override
public List<WxDataCubeMsgResult> getUpstreamMsgDistMonth(Date beginDate,
Date endDate) throws WxErrorException {
String url = API_URL_PREFIX + "/getupstreammsgdistmonth";
JsonObject param = new JsonObject();
param.addProperty("begin_date", WxMpService.SIMPLE_DATE_FORMAT.format(beginDate));
param.addProperty("end_date", WxMpService.SIMPLE_DATE_FORMAT.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<List<WxDataCubeMsgResult>>() {
}.getType());
}
}
9E7A
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
package me.chanjar.weixin.mp.bean.datacube;

import com.google.gson.annotations.SerializedName;

/**
* 消息分析数据接口返回结果对象
* @author binarywang(https://github.com/binarywang)
* Created by Binary Wang on 2016/8/29.
*/
public class WxDataCubeMsgResult extends WxDataCubeBaseResult {

/**
* ref_hour
* 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时
*/
@SerializedName("ref_hour")
private Integer refHour;

/**
* msg_type
* 消息类型,代表含义如下:1代表文字 2代表图片 3代表语音 4代表视频 6代表第三方应用消息(链接消息)
*/
@SerializedName("msg_type")
private Integer msgType;

/**
* msg_user
* 上行发送了(向公众号发送了)消息的用户数
*/
@SerializedName("msg_user")
private Integer msgUser;

/**
* msg_count
* 上行发送了消息的消息总数
*/
@SerializedName("msg_count")
private Integer msgCount;

/**
* count_interval
* 当日发送消息量分布的区间,0代表 “0”,1代表“1-5”,2代表“6-10”,3代表“10次以上”
*/
@SerializedName("count_interval")
private Integer countInterval;

/**
* int_page_read_count
* 图文页的阅读次数
*/
@SerializedName("int_page_read_count")
private Integer intPageReadCount;

/**
* ori_page_read_user
* 原文页(点击图文页“阅读原文”进入的页面)的阅读人数,无原文页时此处数据为0
*/
@SerializedName("ori_page_read_user")
private Integer oriPageReadUser;

public Integer getRefHour() {
return this.refHour;
}

public void setRefHour(Integer refHour) {
this.refHour = refHour;
}

public Integer getMsgType() {
return this.msgType;
}

public void setMsgType(Integer msgType) {
this.msgType = msgType;
}

public Integer getMsgUser() {
return this.msgUser;
}

public void setMsgUser(Integer msgUser) {
this.msgUser = msgUser;
}

public Integer getMsgCount() {
return this.msgCount;
}

public void setMsgCount(Integer msgCount) {
this.msgCount = msgCount;
}

public Integer getCountInterval() {
return this.countInterval;
}

public void setCountInterval(Integer countInterval) {
this.countInterval = countInterval;
}

public Integer getIntPageReadCount() {
return this.intPageReadCount;
}

public void setIntPageReadCount(Integer intPageReadCount) {
this.intPageReadCount = intPageReadCount;
}

public Integer getOriPageReadUser() {
return this.oriPageReadUser;
}

public void setOriPageReadUser(Integer oriPageReadUser) {
this.oriPageReadUser = oriPageReadUser;
}

}
Loading
0