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
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
添加批量查询用户基本信息功能,没有测试,没有添加超过100验证
  • Loading branch information
aimil authored and aimil committed Aug 31, 2016
commit 5525c4fa27d50c2d588e8ecccb94a462e5fe115a
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package me.chanjar.weixin.mp.api;

import java.util.List;

import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.mp.bean.WxMpUserQuery;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import me.chanjar.weixin.mp.bean.result.WxMpUserList;

Expand All @@ -11,35 +14,55 @@
*/
public interface WxMpUserService {

/**
* <pre>
* 设置用户备注名接口
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=设置用户备注名接口
* </pre>
*
* @param openid 用户openid
* @param remark 备注名
*/
void userUpdateRemark(String openid, String remark) throws WxErrorException;

/**
* <pre>
* 获取用户基本信息
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取用户基本信息
* </pre>
*
* @param openid 用户openid
* @param lang 语言,zh_CN 简体(默认),zh_TW 繁体,en 英语
*/
WxMpUser userInfo(String openid, String lang) throws WxErrorException;

/**
* <pre>
* 获取关注者列表
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取关注者列表
* </pre>
*
* @param next_openid 可选,第一个拉取的OPENID,null为从头开始拉取
*/
WxMpUserList userList(String next_openid) throws WxErrorException;
/**
* <pre>
* 设置用户备注名接口
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=设置用户备注名接口
* </pre>
*
* @param openid 用户openid
* @param remark 备注名
*/
void userUpdateRemark(String openid, String remark) throws WxErrorException;

/**
* <pre>
* 获取用户基本信息
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取用户基本信息
* </pre>
*
* @param openid 用户openid
* @param lang 语言,zh_CN 简体(默认),zh_TW 繁体,en 英语
*/
WxMpUser userInfo(String openid, String lang) throws WxErrorException;

/**
* <pre>
* 获取用户基本信息列表
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
* </pre>
*
* @param openid 用户openid, lang 使用默认(zh_CN 简体)
*/
List<WxMpUser> userInfoList(List<String> openidList) throws WxErrorException;

/**
* <pre>
* 获取用户基本信息列表
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
* </pre>
*
* @param userQuery 详细查询参数
*/
List<WxMpUser> userInfoList(WxMpUserQuery userQuery) throws WxErrorException;

/**
* <pre>
* 获取关注者列表
* 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取关注者列表
* </pre>
*
* @param nextOpenid 可选,第一个拉取的OPENID,null为从头开始拉取
*/
WxMpUserList userList(String nextOpenid) throws WxErrorException;
}
Original file line number Diff line number Diff line change
@@ -1,48 +1,63 @@
package me.chanjar.weixin.mp.api.impl;

import java.util.List;

import com.google.gson.JsonObject;

import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.WxMpUserService;
import me.chanjar.weixin.mp.bean.WxMpUserQuery;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import me.chanjar.weixin.mp.bean.result.WxMpUserList;

/**
* Created by Binary Wang on 2016/7/21.
*/
public class WxMpUserServiceImpl implements WxMpUserService {
private static final String API_URL_PREFIX = "https://api.weixin.qq.com/cgi-bin/user";
private WxMpService wxMpService;

public WxMpUserServiceImpl(WxMpService wxMpService) {
this.wxMpService = wxMpService;
}

@Override
public void userUpdateRemark(String openid, String remark) throws WxErrorException {
String url = API_URL_PREFIX + "/info/updateremark";
JsonObject json = new JsonObject();
json.addProperty("openid", openid);
json.addProperty("remark", remark);
this.wxMpService.execute(new SimplePostRequestExecutor(), url, json.toString());
}

@Override
public WxMpUser userInfo(String openid, String lang) throws WxErrorException {
String url = API_URL_PREFIX + "/info";
lang = lang == null ? "zh_CN" : lang;
String responseContent = this.wxMpService.execute(new SimpleGetRequestExecutor(), url, "openid=" + openid + "&lang=" + lang);
return WxMpUser.fromJson(responseContent);
}

@Override
public WxMpUserList userList(String next_openid) throws WxErrorException {
String url = API_URL_PREFIX + "/get";
String responseContent = this.wxMpService.execute(new SimpleGetRequestExecutor(), url, next_openid == null ? null : "next_openid=" + next_openid);
return WxMpUserList.fromJson(responseContent);
}
private static final String API_URL_PREFIX = "https://api.weixin.qq.com/cgi-bin/user";
private WxMpService wxMpService;

public WxMpUserServiceImpl(WxMpService wxMpService) {
this.wxMpService = wxMpService;
}

@Override
public void userUpdateRemark(String openid, String remark) throws WxErrorException {
String url = API_URL_PREFIX + "/info/updateremark";
JsonObject json = new JsonObject();
json.addProperty("openid", openid);
json.addProperty("remark", remark);
this.wxMpService.execute(new SimplePostRequestExecutor(), url, json.toString());
}

@Override
public WxMpUser userInfo(String openid, String lang) throws WxErrorException {
String url = API_URL_PREFIX + "/info";
lang = lang == null ? "zh_CN" : lang;
String responseContent = this.wxMpService.execute(new SimpleGetRequestExecutor(), url, "openid=" + openid + "&lang=" + lang);
return WxMpUser.fromJson(responseContent);
}

@Override
public WxMpUserList userList(String next_openid) throws WxErrorException {
String url = API_URL_PREFIX + "/get";
String responseContent = this.wxMpService.execute(new SimpleGetRequestExecutor(), url, next_openid == null ? null : "next_openid=" + next_openid);
return WxMpUserList.fromJson(responseContent);
}

@Override
public List<WxMpUser> userInfoList(List<String> openidList) throws WxErrorException {
return userInfoList(new WxMpUserQuery(openidList));
}

@Override
public List<WxMpUser> userInfoList(WxMpUserQuery userQuery) throws WxErrorException {
String url = API_URL_PREFIX + "/info/batchget";
String responseContent = this.wxMpService.execute(new SimpleGetRequestExecutor(), url, userQuery.toJsonString());
return WxMpUser.fromJsonList(responseContent);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
package me.chanjar.weixin.mp.bean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;

/**
* 批量查询用户信息查询参数 <br>
* Created by LiuJunGuang on 2016/8/31.
*
* @author LiuJunGuang
*/
public class WxMpUserQuery {
private List<WxMpUserQueryParam> queryParamList = new ArrayList<>();

public WxMpUserQuery() {
super();
}

/**
* 语言使用默认(zh_CN)
*
* @description
* @param openIdList
*/
public WxMpUserQuery(List<String> openIdList) {
super();
add(openIdList);
}

/**
* 添加OpenId列表,语言使用默认(zh_CN)
*
* @param openIdList
* @return {@link WxMpUserQuery}
*/
public WxMpUserQuery add(List<String> openIdList) {
for (String openId : openIdList) {
this.add(openId);
}
return this;
}

/**
* 添加一个OpenId
*
* @param openId
* @param lang 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
* @return {@link WxMpUserQuery}
*/
public WxMpUserQuery add(String openId, String lang) {
queryParamList.add(new WxMpUserQueryParam(openId, lang));
return this;
}

/**
* 添加一个OpenId到列表中,并返回本对象
*
* <pre>
* 该方法默认lang = zh_CN
* </pre>
*
* @param openId
* @return {@link WxMpUserQuery}
*/
public WxMpUserQuery add(String openId) {
queryParamList.add(new WxMpUserQueryParam(openId));
return this;
}

/**
* 删除指定的OpenId,语言使用默认(zh_CN)
*
* @param openId
* @return {@link WxMpUserQuery}
*/
public WxMpUserQuery remove(String openId) {
queryParamList.remove(new WxMpUserQueryParam(openId));
return this;
}

/**
* 删除指定的OpenId
*
* @param openId
* @param lang 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
* @return {@link WxMpUserQuery}
*/
public WxMpUserQuery remove(String openId, String lang) {
queryParamList.remove(new WxMpUserQueryParam(openId, lang));
return this;
}

/**
* 获取查询参数列表
*
* @return
*/
public List<WxMpUserQueryParam> getQueryParamList() {
return queryParamList;
}

public String toJsonString() {
Map<String, Object> map = new HashMap<>();
map.put("user_list", queryParamList);
return new Gson().toJson(map);
}

// 查询参数封装
public class WxMpUserQueryParam implements Serializable {
/**
* @fields serialVersionUID
*/
private static final long serialVersionUID = -6863571795702385319L;
private String openid;
private String lang;

public WxMpUserQueryParam(String openid, String lang) {
super();
this.openid = openid;
this.lang = lang;
}

public WxMpUserQueryParam(String openid) {
super();
this.openid = openid;
this.lang = "zh_CN";
}

public WxMpUserQueryParam() {
super();
}

public String getOpenid() {
return openid;
}

public void setOpenid(String openid) {
this.openid = openid;
}

public String getLang() {
return lang;
}

public void setLang(String lang) {
this.lang = lang;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + getOuterType().hashCode();
result = prime * result + ((lang == null) ? 0 : lang.hashCode());
result = prime * result + ((openid == null) ? 0 : openid.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
WxMpUserQueryParam other = (WxMpUserQueryParam) obj;
if (!getOuterType().equals(other.getOuterType()))
return false;
if (lang == null) {
if (other.lang != null)
return false;
} else if (!lang.equals(other.lang))
return false;
if (openid == null) {
if (other.openid != null)
return false;
} else if (!openid.equals(other.openid))
return false;
return true;
}

private WxMpUserQuery getOuterType() {
return WxMpUserQuery.this;
}

}

}
Loading
0