diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java index 2f6abb61..22629d83 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpUserService.java @@ -14,55 +14,55 @@ import me.chanjar.weixin.mp.bean.result.WxMpUserList; */ public interface WxMpUserService { - /** - *
-	 * 设置用户备注名接口
-	 * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=设置用户备注名接口
-	 * 
- * - * @param openid 用户openid - * @param remark 备注名 - */ - void userUpdateRemark(String openid, String remark) throws WxErrorException; + /** + *
+   * 设置用户备注名接口
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=设置用户备注名接口
+   * 
+ * + * @param openid 用户openid + * @param remark 备注名 + */ + void userUpdateRemark(String openid, String remark) throws WxErrorException; - /** - *
-	 * 获取用户基本信息
-	 * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取用户基本信息
-	 * 
- * - * @param openid 用户openid - * @param lang 语言,zh_CN 简体(默认),zh_TW 繁体,en 英语 - */ - WxMpUser userInfo(String openid, String lang) throws WxErrorException; + /** + *
+   * 获取用户基本信息
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取用户基本信息
+   * 
+ * + * @param openid 用户openid + * @param lang 语言,zh_CN 简体(默认),zh_TW 繁体,en 英语 + */ + WxMpUser userInfo(String openid, String lang) throws WxErrorException; - /** - *
-	 * 获取用户基本信息列表
-	 * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
-	 * 
- * - * @param openid 用户openid, lang 使用默认(zh_CN 简体) - */ - List userInfoList(List openidList) throws WxErrorException; + /** + *
+   * 获取用户基本信息列表
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
+   * 
+ * + * @param openid 用户openid, lang 使用默认(zh_CN 简体) + */ + List userInfoList(List openidList) throws WxErrorException; - /** - *
-	 * 获取用户基本信息列表
-	 * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
-	 * 
- * - * @param userQuery 详细查询参数 - */ - List userInfoList(WxMpUserQuery userQuery) throws WxErrorException; + /** + *
+   * 获取用户基本信息列表
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=批量获取用户基本信息
+   * 
+ * + * @param userQuery 详细查询参数 + */ + List userInfoList(WxMpUserQuery userQuery) throws WxErrorException; - /** - *
-	 * 获取关注者列表
-	 * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取关注者列表
-	 * 
- * - * @param nextOpenid 可选,第一个拉取的OPENID,null为从头开始拉取 - */ - WxMpUserList userList(String nextOpenid) throws WxErrorException; + /** + *
+   * 获取关注者列表
+   * 详情请见: http://mp.weixin.qq.com/wiki/index.php?title=获取关注者列表
+   * 
+ * + * @param nextOpenid 可选,第一个拉取的OPENID,null为从头开始拉取 + */ + WxMpUserList userList(String nextOpenid) throws WxErrorException; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java index 40321208..995eb58a 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpUserServiceImpl.java @@ -17,47 +17,47 @@ 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); - } - - @Override - public List userInfoList(List openidList) throws WxErrorException { - return userInfoList(new WxMpUserQuery(openidList)); - } - - @Override - public List 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); - } + 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 userInfoList(List openidList) throws WxErrorException { + return userInfoList(new WxMpUserQuery(openidList)); + } + + @Override + public List 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); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpUserQuery.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpUserQuery.java index 22f63ae8..c33b9569 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpUserQuery.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpUserQuery.java @@ -15,180 +15,180 @@ import com.google.gson.Gson; * @author LiuJunGuang */ public class WxMpUserQuery { - private List queryParamList = new ArrayList<>(); - - public WxMpUserQuery() { - super(); - } - - /** - * 语言使用默认(zh_CN) - * - * @description - * @param openIdList - */ - public WxMpUserQuery(List openIdList) { - super(); - add(openIdList); - } - - /** - * 添加OpenId列表,语言使用默认(zh_CN) - * - * @param openIdList - * @return {@link WxMpUserQuery} - */ - public WxMpUserQuery add(List 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到列表中,并返回本对象 - * - *
-	 * 该方法默认lang = zh_CN
-	 * 
- * - * @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 getQueryParamList() { - return queryParamList; - } - - public String toJsonString() { - Map 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; - } - - } + private List queryParamList = new ArrayList<>(); + + public WxMpUserQuery() { + super(); + } + + /** + * 语言使用默认(zh_CN) + * + * @description + * @param openIdList + */ + public WxMpUserQuery(List openIdList) { + super(); + add(openIdList); + } + + /** + * 添加OpenId列表,语言使用默认(zh_CN) + * + * @param openIdList + * @return {@link WxMpUserQuery} + */ + public WxMpUserQuery add(List 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到列表中,并返回本对象 + * + *
+   * 该方法默认lang = zh_CN
+   * 
+ * + * @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 getQueryParamList() { + return queryParamList; + } + + public String toJsonString() { + Map 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; + } + + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java index 2a139527..e0e34228 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpUser.java @@ -12,164 +12,149 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** * 微信用户信息 - * * @author chanjarster * */ public class WxMpUser implements Serializable { - /** - * @fields serialVersionUID - */ - private static final long serialVersionUID = 5788154322646488738L; - protected Boolean subscribe; - protected String openId; - protected String nickname; - protected String sex; - protected String language; - protected String city; - protected String province; - protected String country; - protected String headImgUrl; - protected Long subscribeTime; - protected String unionId; - protected Integer sexId; - protected String remark; - protected Integer groupId; - - public Boolean getSubscribe() { - return subscribe; - } - - public Boolean isSubscribe() { - return subscribe; - } - - public void setSubscribe(Boolean subscribe) { - this.subscribe = subscribe; - } - - public String getOpenId() { - return openId; - } - - public void setOpenId(String openId) { - this.openId = openId; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getProvince() { - return province; - } - - public void setProvince(String province) { - this.province = province; - } - - public String getCountry() { - return country; - } - - public void setCountry(String country) { - this.country = country; - } - - public String getHeadImgUrl() { - return headImgUrl; - } - - public void setHeadImgUrl(String headImgUrl) { - this.headImgUrl = headImgUrl; - } - - public Long getSubscribeTime() { - return subscribeTime; - } - - public void setSubscribeTime(Long subscribeTime) { - this.subscribeTime = subscribeTime; - } - - public String getUnionId() { - return unionId; - } - - public void setUnionId(String unionId) { - this.unionId = unionId; - } - - public Integer getSexId() { - - return sexId; - } - - public void setSexId(Integer sexId) { - this.sexId = sexId; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public Integer getGroupId() { - return groupId; - } - - public void setGroupId(Integer groupId) { - this.groupId = groupId; - } - - public static WxMpUser fromJson(String json) { - return WxMpGsonBuilder.INSTANCE.create().fromJson(json, WxMpUser.class); - } - - public static List fromJsonList(String json) { - Type collectionType = new TypeToken>() { - }.getType(); - Gson gson = WxMpGsonBuilder.INSTANCE.create(); - JsonObject jsonObject = gson.fromJson(json, JsonObject.class); - return gson.fromJson(jsonObject.get("user_info_list"), collectionType); - } - - @Override - public String toString() { - return "WxMpUser{" + "subscribe=" + subscribe + ", openId='" + openId + '\'' + ", nickname='" + nickname + '\'' + ", sex='" + sex + '\'' + ", language='" + language + '\'' - + ", city='" + city + '\'' + ", province='" + province + '\'' + ", country='" + country + '\'' + ", headImgUrl='" + headImgUrl + '\'' + ", subscribeTime=" + subscribeTime - + ", unionId='" + unionId + '\'' + ", remark='" + remark + '\'' + ", groupId='" + groupId + '\'' + '}'; - } + /** + * @fields serialVersionUID + */ + private static final long serialVersionUID = 5788154322646488738L; + protected Boolean subscribe; + protected String openId; + protected String nickname; + protected String sex; + protected String language; + protected String city; + protected String province; + protected String country; + protected String headImgUrl; + protected Long subscribeTime; + protected String unionId; + protected Integer sexId; + protected String remark; + protected Integer groupId; + + public Boolean getSubscribe() { + return subscribe; + } + public Boolean isSubscribe() { + return subscribe; + } + public void setSubscribe(Boolean subscribe) { + this.subscribe = subscribe; + } + public String getOpenId() { + return openId; + } + public void setOpenId(String openId) { + this.openId = openId; + } + public String getNickname() { + return nickname; + } + public void setNickname(String nickname) { + this.nickname = nickname; + } + public String getSex() { + return sex; + } + public void setSex(String sex) { + this.sex = sex; + } + public String getLanguage() { + return language; + } + public void setLanguage(String language) { + this.language = language; + } + public String getCity() { + return city; + } + public void setCity(String city) { + this.city = city; + } + public String getProvince() { + return province; + } + public void setProvince(String province) { + this.province = province; + } + public String getCountry() { + return country; + } + public void setCountry(String country) { + this.country = country; + } + public String getHeadImgUrl() { + return headImgUrl; + } + public void setHeadImgUrl(String headImgUrl) { + this.headImgUrl = headImgUrl; + } + public Long getSubscribeTime() { + return subscribeTime; + } + public void setSubscribeTime(Long subscribeTime) { + this.subscribeTime = subscribeTime; + } + public String getUnionId() { + return unionId; + } + public void setUnionId(String unionId) { + this.unionId = unionId; + } + + public Integer getSexId() { + + return sexId; + } + + public void setSexId(Integer sexId) { + this.sexId = sexId; + } + + public String getRemark() { + return remark; + } + public void setRemark(String remark) { + this.remark = remark; + } + public Integer getGroupId() { + return groupId; + } + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + + public static WxMpUser fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson(json, WxMpUser.class); + } + + public static List fromJsonList(String json) { + Type collectionType = new TypeToken>() {}.getType(); + Gson gson = WxMpGsonBuilder.INSTANCE.create(); + JsonObject jsonObject = gson.fromJson(json, JsonObject.class); + return gson.fromJson(jsonObject.get("user_info_list"), collectionType); + } + + @Override + public String toString() { + return "WxMpUser{" + + "subscribe=" + subscribe + + ", openId='" + openId + '\'' + + ", nickname='" + nickname + '\'' + + ", sex='" + sex + '\'' + + ", language='" + language + '\'' + + ", city='" + city + '\'' + + ", province='" + province + '\'' + + ", country='" + country + '\'' + + ", headImgUrl='" + headImgUrl + '\'' + + ", subscribeTime=" + subscribeTime + + ", unionId='" + unionId + '\'' + + ", remark='" + remark + '\'' + + ", groupId='" + groupId + '\'' + + '}'; + } }