1
0
mirror of synced 2025-12-22 00:48:00 +08:00

#246 修复企业号用户信息相关属性,对比实际接口返回内容,移除已失效属性(weixinid、tel),添加缺失的属性(telephone, english_name, hide_mobile)

This commit is contained in:
Binary Wang
2017-06-10 15:50:08 +08:00
parent 228b3791ae
commit 8ed0e786db
23 changed files with 144 additions and 86 deletions

View File

@@ -34,7 +34,7 @@ import java.util.UUID;
public abstract class AbstractWxCpServiceImpl<H, P> implements WxCpService, RequestHttp<H, P> {
protected final Logger log = LoggerFactory.getLogger(AbstractWxCpServiceImpl.class);
protected final Logger log = LoggerFactory.getLogger(this.getClass());
/**
* 全局的是否正在刷新access token的锁
@@ -293,8 +293,7 @@ public abstract class AbstractWxCpServiceImpl<H, P> implements WxCpService, Requ
String responseContent = get(url, params);
JsonElement tmpJsonElement = new JsonParser().parse(responseContent);
return WxCpGsonBuilder.INSTANCE.create()
.fromJson(
tmpJsonElement.getAsJsonObject().get("userlist"),
.fromJson( tmpJsonElement.getAsJsonObject().get("userlist"),
new TypeToken<List<WxCpUser>>() {
}.getType()
);

View File

@@ -14,19 +14,21 @@ import java.util.List;
public class WxCpUser implements Serializable {
private static final long serialVersionUID = -5696099236344075582L;
private final List<Attr> extAttrs = new ArrayList<>();
private String userId;
private String name;
private Integer[] departIds;
private String position;
private String mobile;
private String gender;
private String tel;
private String email;
private String weiXinId;
private String avatar;
private Integer status;
private Integer enable;
private Integer isLeader;
private final List<Attr> extAttrs = new ArrayList<>();
private Integer hideMobile;
private String englishName;
private String telephone;
public static WxCpUser fromJson(String json) {
return WxCpGsonBuilder.INSTANCE.create().fromJson(json, WxCpUser.class);
@@ -80,12 +82,12 @@ public class WxCpUser implements Serializable {
this.mobile = mobile;
}
public String getTel() {
return this.tel;
public String getTelephone() {
return this.telephone;
}
public void setTel(String tel) {
this.tel = tel;
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getEmail() {
@@ -96,14 +98,6 @@ public class WxCpUser implements Serializable {
this.email = email;
}
public String getWeiXinId() {
return this.weiXinId;
}
public void setWeiXinId(String weiXinId) {
this.weiXinId = weiXinId;
}
public String getAvatar() {
return this.avatar;
}
@@ -136,6 +130,30 @@ public class WxCpUser implements Serializable {
return this.extAttrs;
}
public Integer getIsLeader() {
return isLeader;
}
public void setIsLeader(Integer isLeader) {
this.isLeader = isLeader;
}
public Integer getHideMobile() {
return hideMobile;
}
public void setHideMobile(Integer hideMobile) {
this.hideMobile = hideMobile;
}
public String getEnglishName() {
return englishName;
}
public void setEnglishName(String englishName) {
this.englishName = englishName;
}
public String toJson() {
return WxCpGsonBuilder.INSTANCE.create().toJson(this);
}

View File

@@ -24,8 +24,6 @@ public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSeri
throws JsonParseException {
JsonObject o = json.getAsJsonObject();
WxCpUser user = new WxCpUser();
user.setUserId(GsonHelper.getString(o, "userid"));
user.setName(GsonHelper.getString(o, "name"));
if (o.get("department") != null) {
JsonArray departJsonArray = o.get("department").getAsJsonArray();
@@ -37,14 +35,19 @@ public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSeri
user.setDepartIds(departIds);
}
user.setUserId(GsonHelper.getString(o, "userid"));
user.setName(GsonHelper.getString(o, "name"));
user.setPosition(GsonHelper.getString(o, "position"));
user.setMobile(GsonHelper.getString(o, "mobile"));
user.setGender(GsonHelper.getString(o, "gender"));
user.setTel(GsonHelper.getString(o, "tel"));
user.setEmail(GsonHelper.getString(o, "email"));
user.setWeiXinId(GsonHelper.getString(o, "weixinid"));
user.setAvatar(GsonHelper.getString(o, "avatar"));
user.setStatus(GsonHelper.getInteger(o, "status"));
user.setEnable(GsonHelper.getInteger(o, "enable"));
user.setIsLeader(GsonHelper.getInteger(o, "isleader"));
user.setHideMobile(GsonHelper.getInteger(o, "hide_mobile"));
user.setEnglishName(GsonHelper.getString(o, "english_name"));
user.setTelephone(GsonHelper.getString(o, "telephone"));
if (GsonHelper.isNotNull(o.get("extattr"))) {
JsonArray attrJsonElements = o.get("extattr").getAsJsonObject().get("attrs").getAsJsonArray();
@@ -84,15 +87,9 @@ public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSeri
if (user.getGender() != null) {
o.addProperty("gender", user.getGender());
}
if (user.getTel() != null) {
o.addProperty("tel", user.getTel());
}
if (user.getEmail() != null) {
o.addProperty("email", user.getEmail());
}
if (user.getWeiXinId() != null) {
o.addProperty("weixinid", user.getWeiXinId());
}
if (user.getAvatar() != null) {
o.addProperty("avatar", user.getAvatar());
}
@@ -102,6 +99,18 @@ public class WxCpUserGsonAdapter implements JsonDeserializer<WxCpUser>, JsonSeri
if (user.getEnable() != null) {
o.addProperty("enable", user.getEnable());
}
if (user.getIsLeader() != null) {
o.addProperty("isleader", user.getIsLeader());
}
if (user.getHideMobile() != null) {
o.addProperty("hide_mobile", user.getHideMobile());
}
if (user.getEnglishName() != null) {
o.addProperty("english_name", user.getEnglishName());
}
if (user.getTelephone() != null) {
o.addProperty("telephone", user.getTelephone());
}
if (user.getExtAttrs().size() > 0) {
JsonArray attrsJsonArray = new JsonArray();
for (WxCpUser.Attr attr : user.getExtAttrs()) {