Procházet zdrojové kódy

fix 修改 wx-java-cp

Young před 2 roky
rodič
revize
35fb49b13f
33 změnil soubory, kde provedl 645 přidání a 656 odebrání
  1. 25 26
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/Gender.java
  2. 59 64
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpAgent.java
  3. 11 11
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpBaseResp.java
  4. 7 7
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpChat.java
  5. 12 12
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpDepart.java
  6. 18 18
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpInviteResult.java
  7. 11 10
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpMaJsCode2SessionResult.java
  8. 0 3
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpOauth2UserInfo.java
  9. 14 14
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpProviderToken.java
  10. 0 1
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTag.java
  11. 25 25
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTagAddOrRemoveUsersResult.java
  12. 0 5
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTagGetResult.java
  13. 0 5
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTaskCardUpdateResult.java
  14. 128 130
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUser.java
  15. 0 1
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUserDetail.java
  16. 110 109
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUserExternalContactInfo.java
  17. 3 5
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/message/WxCpXmlMessage.java
  18. 2 2
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/message/WxCpXmlOutMessage.java
  19. 16 16
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/BaseBuilder.java
  20. 12 12
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/ImageBuilder.java
  21. 17 17
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/NewsBuilder.java
  22. 13 13
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/TaskCardBuilder.java
  23. 12 12
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/TextBuilder.java
  24. 28 28
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/VideoBuilder.java
  25. 12 12
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/VoiceBuilder.java
  26. 8 5
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/workbench/WorkBenchKeyData.java
  27. 6 3
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/workbench/WorkBenchList.java
  28. 13 13
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/crypto/WxCpCryptUtil.java
  29. 45 45
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpDepartGsonAdapter.java
  30. 15 13
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpGsonBuilder.java
  31. 13 13
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpTagGsonAdapter.java
  32. 1 1
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpUserGsonAdapter.java
  33. 9 5
      wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/xml/XStreamTransformer.java

+ 25 - 26
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/Gender.java

@@ -4,39 +4,38 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 
 /**
- * <pre>
- *  性别枚举
- *  Created by BinaryWang on 2018/4/22.
- * </pre>
+ * 性别枚举
  *
  * @author Young
  */
 @Getter
 @AllArgsConstructor
 public enum Gender {
-  /**
-   * 未定义
-   */
-  UNDEFINED("未定义", "0"),
-  /**
-   * 男
-   */
-  MALE("男", "1"),
-  /**
-   * 女
-   */
-  FEMALE("女", "2");
+    /**
+     * 未定义
+     */
+    UNDEFINED("未定义", "0"),
 
-  private final String genderName;
-  private final String code;
+    /**
+     * 男
+     */
+    MALE("男", "1"),
 
-  public static Gender fromCode(String code) {
-    for(Gender a: Gender.values()){
-      if(a.code.equals(code)){
-        return a;
-      }
-    }
+    /**
+     * 女
+     */
+    FEMALE("女", "2");
+
+    private final String genderName;
+    private final String code;
 
-    return null;
-  }
+    public static Gender fromCode(String code) {
+        for (Gender a : Gender.values()) {
+            if (a.code.equals(code)) {
+                return a;
+            }
+        }
+
+        return null;
+    }
 }

+ 59 - 64
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpAgent.java

@@ -11,97 +11,92 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * <pre>
  * 企业号应用信息.
- * Created by huansinho on 2018/4/13.
- * </pre>
- *
- * @author <a href="https://github.com/huansinho">huansinho</a>
  */
 @Data
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
 public class WxCpAgent implements Serializable {
-  private static final long serialVersionUID = 5002894979081127234L;
+    private static final long serialVersionUID = 5002894979081127234L;
 
-  @SerializedName("errcode")
-  private Integer errCode;
+    @SerializedName("errcode")
+    private Integer errCode;
 
-  @SerializedName("errmsg")
-  private String errMsg;
+    @SerializedName("errmsg")
+    private String errMsg;
 
-  @SerializedName("agentid")
-  private Integer agentId;
+    @SerializedName("agentid")
+    private Integer agentId;
 
-  @SerializedName("name")
-  private String name;
+    @SerializedName("name")
+    private String name;
 
-  @SerializedName("square_logo_url")
-  private String squareLogoUrl;
+    @SerializedName("square_logo_url")
+    private String squareLogoUrl;
 
-  @SerializedName("logo_mediaid")
-  private String logoMediaId;
+    @SerializedName("logo_mediaid")
+    private String logoMediaId;
 
-  @SerializedName("description")
-  private String description;
+    @SerializedName("description")
+    private String description;
 
-  @SerializedName("allow_userinfos")
-  private Users allowUserInfos;
+    @SerializedName("allow_userinfos")
+    private Users allowUserInfos;
 
-  @SerializedName("allow_partys")
-  private Parties allowParties;
+    @SerializedName("allow_partys")
+    private Parties allowParties;
 
-  @SerializedName("allow_tags")
-  private Tags allowTags;
+    @SerializedName("allow_tags")
+    private Tags allowTags;
 
-  @SerializedName("close")
-  private Integer close;
+    @SerializedName("close")
+    private Integer close;
 
-  @SerializedName("redirect_domain")
-  private String redirectDomain;
+    @SerializedName("redirect_domain")
+    private String redirectDomain;
 
-  @SerializedName("report_location_flag")
-  private Integer reportLocationFlag;
+    @SerializedName("report_location_flag")
+    private Integer reportLocationFlag;
 
-  @SerializedName("isreportenter")
-  private Integer isReportEnter;
+    @SerializedName("isreportenter")
+    private Integer isReportEnter;
 
-  @SerializedName("home_url")
-  private String homeUrl;
+    @SerializedName("home_url")
+    private String homeUrl;
 
-  public static WxCpAgent fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpAgent.class);
-  }
+    public static WxCpAgent fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpAgent.class);
+    }
 
-  public String toJson() {
-    return WxCpGsonBuilder.create().toJson(this);
-  }
+    public String toJson() {
+        return WxCpGsonBuilder.create().toJson(this);
+    }
 
-  @Data
-  public static class Users implements Serializable {
-    private static final long serialVersionUID = 8801100463558788565L;
-    @SerializedName("user")
-    private List<User> users;
-  }
+    @Data
+    public static class Users implements Serializable {
+        private static final long serialVersionUID = 8801100463558788565L;
+        @SerializedName("user")
+        private List<User> users;
+    }
 
-  @Data
-  public class User implements Serializable {
-    private static final long serialVersionUID = 7287632514385508024L;
-    @SerializedName("userid")
-    private String userId;
-  }
+    @Data
+    public class User implements Serializable {
+        private static final long serialVersionUID = 7287632514385508024L;
+        @SerializedName("userid")
+        private String userId;
+    }
 
-  @Data
-  public class Parties {
-    @SerializedName("partyid")
-    private List<Long> partyIds = null;
-  }
+    @Data
+    public class Parties {
+        @SerializedName("partyid")
+        private List<Long> partyIds = null;
+    }
 
-  @Data
-  public class Tags {
-    @SerializedName("tagid")
-    private List<Integer> tagIds = null;
-  }
+    @Data
+    public class Tags {
+        @SerializedName("tagid")
+        private List<Integer> tagIds = null;
+    }
 
 }

+ 11 - 11
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpBaseResp.java

@@ -13,19 +13,19 @@ import java.io.Serializable;
 @Getter
 @Setter
 public class WxCpBaseResp implements Serializable {
-  private static final long serialVersionUID = -4301684507150486556L;
+    private static final long serialVersionUID = -4301684507150486556L;
 
-  @SerializedName("errcode")
-  protected Long errcode;
+    @SerializedName("errcode")
+    protected Long errcode;
 
-  @SerializedName("errmsg")
-  protected String errmsg;
+    @SerializedName("errmsg")
+    protected String errmsg;
 
-  public boolean success() {
-    return getErrcode() == 0;
-  }
+    public boolean success() {
+        return getErrcode() == 0;
+    }
 
-  public static WxCpBaseResp fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpBaseResp.class);
-  }
+    public static WxCpBaseResp fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpBaseResp.class);
+    }
 }

+ 7 - 7
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpChat.java

@@ -8,15 +8,15 @@ import java.util.List;
 /**
  * 群聊
  *
- * @author gaigeshen
+ * @author Young
  */
 @Data
 public class WxCpChat implements Serializable {
-  private static final long serialVersionUID = -4301684507150486556L;
-  
-  private String id;
-  private String name;
-  private String owner;
-  private List<String> users;
+    private static final long serialVersionUID = -4301684507150486556L;
+
+    private String id;
+    private String name;
+    private String owner;
+    private List<String> users;
 
 }

+ 12 - 12
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpDepart.java

@@ -12,20 +12,20 @@ import java.io.Serializable;
  */
 @Data
 public class WxCpDepart implements Serializable {
-  private static final long serialVersionUID = -5028321625140879571L;
+    private static final long serialVersionUID = -5028321625140879571L;
 
-  private Long id;
-  private String name;
-  private String enName;
-  private Long parentId;
-  private Long order;
+    private Long id;
+    private String name;
+    private String enName;
+    private Long parentId;
+    private Long order;
 
-  public static WxCpDepart fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpDepart.class);
-  }
+    public static WxCpDepart fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpDepart.class);
+    }
 
-  public String toJson() {
-    return WxCpGsonBuilder.create().toJson(this);
-  }
+    public String toJson() {
+        return WxCpGsonBuilder.create().toJson(this);
+    }
 
 }

+ 18 - 18
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpInviteResult.java

@@ -13,30 +13,30 @@ import java.io.Serializable;
  */
 @Data
 public class WxCpInviteResult implements Serializable {
-  private static final long serialVersionUID = 1420065684270213578L;
+    private static final long serialVersionUID = 1420065684270213578L;
 
-  @Override
-  public String toString() {
-    return WxCpGsonBuilder.create().toJson(this);
-  }
+    @Override
+    public String toString() {
+        return WxCpGsonBuilder.create().toJson(this);
+    }
 
-  public static WxCpInviteResult fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpInviteResult.class);
-  }
+    public static WxCpInviteResult fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpInviteResult.class);
+    }
 
-  @SerializedName("errcode")
-  private Integer errCode;
+    @SerializedName("errcode")
+    private Integer errCode;
 
-  @SerializedName("errmsg")
-  private String errMsg;
+    @SerializedName("errmsg")
+    private String errMsg;
 
-  @SerializedName("invaliduser")
-  private String[] invalidUsers;
+    @SerializedName("invaliduser")
+    private String[] invalidUsers;
 
-  @SerializedName("invalidparty")
-  private String[] invalidParties;
+    @SerializedName("invalidparty")
+    private String[] invalidParties;
 
-  @SerializedName("invalidtag")
-  private String[] invalidTags;
+    @SerializedName("invalidtag")
+    private String[] invalidTags;
 
 }

+ 11 - 10
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpMaJsCode2SessionResult.java

@@ -11,23 +11,24 @@ import java.io.Serializable;
  * 小程序登录凭证校验
  * 文档地址:https://work.weixin.qq.com/api/doc#90000/90136/90289/wx.qy.login
  * </pre>
+ *
  * @author Young
  */
 @Data
 public class WxCpMaJsCode2SessionResult implements Serializable {
-  private static final long serialVersionUID = 6229609023682814765L;
+    private static final long serialVersionUID = 6229609023682814765L;
 
-  @SerializedName("session_key")
-  private String sessionKey;
+    @SerializedName("session_key")
+    private String sessionKey;
 
-  @SerializedName("userid")
-  private String userId;
+    @SerializedName("userid")
+    private String userId;
 
-  @SerializedName("corpid")
-  private String corpId;
+    @SerializedName("corpid")
+    private String corpId;
 
-  public static WxCpMaJsCode2SessionResult fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpMaJsCode2SessionResult.class);
-  }
+    public static WxCpMaJsCode2SessionResult fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpMaJsCode2SessionResult.class);
+    }
 
 }

+ 0 - 3
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpOauth2UserInfo.java

@@ -9,10 +9,7 @@ import lombok.experimental.Accessors;
 import java.io.Serializable;
 
 /**
- * <pre>
  *  用oauth2获取用户信息的结果类
- *  Created by BinaryWang on 2019/5/26.
- * </pre>
  *
  * @author Young
  */

+ 14 - 14
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpProviderToken.java

@@ -13,20 +13,20 @@ import java.io.Serializable;
  */
 @Data
 public class WxCpProviderToken implements Serializable {
-  private static final long serialVersionUID = -4301684507150486556L;
-  /**
-   * 服务商的access_token,最长为512字节。
-   */
-  @SerializedName("provider_access_token")
-  private String providerAccessToken;
+    private static final long serialVersionUID = -4301684507150486556L;
+    /**
+     * 服务商的access_token,最长为512字节。
+     */
+    @SerializedName("provider_access_token")
+    private String providerAccessToken;
 
-  /**
-   * provider_access_token有效期(秒)
-   */
-  @SerializedName("expires_in")
-  private Integer expiresIn;
+    /**
+     * provider_access_token有效期(秒)
+     */
+    @SerializedName("expires_in")
+    private Integer expiresIn;
 
-  public static WxCpProviderToken fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpProviderToken.class);
-  }
+    public static WxCpProviderToken fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpProviderToken.class);
+    }
 }

+ 0 - 1
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTag.java

@@ -8,7 +8,6 @@ import cn.nosum.wx.cp.utils.json.WxCpGsonBuilder;
 import java.io.Serializable;
 
 /**
- * Created by Daniel Qian.
  * @author Young
  */
 @Data

+ 25 - 25
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTagAddOrRemoveUsersResult.java

@@ -17,39 +17,39 @@ import java.util.List;
  */
 @Data
 public class WxCpTagAddOrRemoveUsersResult implements Serializable {
-  private static final long serialVersionUID = 1420065684270213578L;
+    private static final long serialVersionUID = 1420065684270213578L;
 
-  @Override
-  public String toString() {
-    return WxCpGsonBuilder.create().toJson(this);
-  }
-
-  public static WxCpTagAddOrRemoveUsersResult fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpTagAddOrRemoveUsersResult.class);
-  }
+    @Override
+    public String toString() {
+        return WxCpGsonBuilder.create().toJson(this);
+    }
 
-  @SerializedName("errcode")
-  private Integer errCode;
+    public static WxCpTagAddOrRemoveUsersResult fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpTagAddOrRemoveUsersResult.class);
+    }
 
-  @SerializedName("errmsg")
-  private String errMsg;
+    @SerializedName("errcode")
+    private Integer errCode;
 
-  @SerializedName("invalidlist")
-  private String invalidUsers;
+    @SerializedName("errmsg")
+    private String errMsg;
 
-  @SerializedName("invalidparty")
-  private String[] invalidParty;
+    @SerializedName("invalidlist")
+    private String invalidUsers;
 
-  public List<String> getInvalidUserList() {
-    return this.content2List(this.invalidUsers);
-  }
+    @SerializedName("invalidparty")
+    private String[] invalidParty;
 
-  private List<String> content2List(String content) {
-    if (StringUtils.isBlank(content)) {
-      return Collections.emptyList();
+    public List<String> getInvalidUserList() {
+        return this.content2List(this.invalidUsers);
     }
 
-    return Splitter.on("|").splitToList(content);
-  }
+    private List<String> content2List(String content) {
+        if (StringUtils.isBlank(content)) {
+            return Collections.emptyList();
+        }
+
+        return Splitter.on("|").splitToList(content);
+    }
 
 }

+ 0 - 5
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTagGetResult.java

@@ -10,12 +10,7 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * <pre>
  *  管理企业号应用-测试
- *  Created by huansinho on 2018/4/16.
- * </pre>
- *
- * @author <a href="https://github.com/huansinho">huansinho</a>
  */
 @Data
 @AllArgsConstructor

+ 0 - 5
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpTaskCardUpdateResult.java

@@ -10,13 +10,8 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * <pre>
  *  更新任务卡片消息状态的返回类
  *  参考文档:https://work.weixin.qq.com/api/doc#90000/90135/91579
- *  Created by Jeff on 2019-05-16.
- * </pre>
- *
- * @author <a href="https://github.com/domainname">Jeff</a>
  */
 @Data
 @AllArgsConstructor

+ 128 - 130
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUser.java

@@ -19,147 +19,145 @@ import java.util.List;
 @Data
 @Accessors(chain = true)
 public class WxCpUser implements Serializable {
-  private static final long serialVersionUID = -5696099236344075582L;
-
-  private String userId;
-  private String newUserId;
-  private String name;
-  private Long[] departIds;
-  private Integer[] orders;
-  private String position;
-  private String[] positions;
-  private String mobile;
-  private Gender gender;
-  private String email;
-  private String avatar;
-  private String thumbAvatar;
-  private String mainDepartment;
-  /**
-   * 全局唯一。对于同一个服务商,不同应用获取到企业内同一个成员的open_userid是相同的,最多64个字节。仅第三方应用可获取
-   */
-  private String openUserId;
-
-  /**
-   * 地址。长度最大128个字符
-   */
-  private String address;
-  private String avatarMediaId;
-  private Integer status;
-  private Integer enable;
-  /**
-   * 别名;第三方仅通讯录应用可获取
-   */
-  private String alias;
-  private Integer isLeader;
-  /**
-   * is_leader_in_dept.
-   * 个数必须和department一致,表示在所在的部门内是否为上级。1表示为上级,0表示非上级。在审批等应用里可以用来标识上级审批人
-   */
-  private Integer[] isLeaderInDept;
-  private final List<Attr> extAttrs = new ArrayList<>();
-  private Integer hideMobile;
-  private String englishName;
-  private String telephone;
-  private String qrCode;
-  private Boolean toInvite;
-  /**
-   * 成员对外信息.
-   */
-  private List<ExternalAttribute> externalAttrs = new ArrayList<>();
-  private String externalPosition;
-  private String externalCorpName;
-  private WechatChannels wechatChannels;
-
-
-
-
-  public void addExternalAttr(ExternalAttribute externalAttr) {
-    this.externalAttrs.add(externalAttr);
-  }
-
-  public void addExtAttr(String name, String value) {
-    this.extAttrs.add(new Attr().setType(0).setName(name).setTextValue(value));
-  }
-
-  public void addExtAttr(Attr attr) {
-    this.extAttrs.add(attr);
-  }
-
-  public static WxCpUser fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpUser.class);
-  }
-
-  public String toJson() {
-    return WxCpGsonBuilder.create().toJson(this);
-  }
-
-  @Data
-  @Accessors(chain = true)
-  @Builder
-  @NoArgsConstructor
-  @AllArgsConstructor
-  public static class Attr implements Serializable {
     private static final long serialVersionUID = -5696099236344075582L;
 
-    /**
-     * 属性类型: 0-文本 1-网页
-     */
-    private Integer type;
-    private String name;
-    private String textValue;
-    private String webUrl;
-    private String webTitle;
-  }
-
-  @Data
-  @Builder
-  @NoArgsConstructor
-  @AllArgsConstructor
-  public static class ExternalAttribute implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
-
-    /**
-     * 属性类型: 0-本文 1-网页 2-小程序.
-     */
-    private Integer type;
-    /**
-     * 属性名称: 需要先确保在管理端有创建改属性,否则会忽略.
-     */
+    private String userId;
+    private String newUserId;
     private String name;
+    private Long[] departIds;
+    private Integer[] orders;
+    private String position;
+    private String[] positions;
+    private String mobile;
+    private Gender gender;
+    private String email;
+    private String avatar;
+    private String thumbAvatar;
+    private String mainDepartment;
     /**
-     * 文本属性内容,长度限制12个UTF8字符.
+     * 全局唯一。对于同一个服务商,不同应用获取到企业内同一个成员的open_userid是相同的,最多64个字节。仅第三方应用可获取
      */
-    private String value;
+    private String openUserId;
+
     /**
-     * 网页的url,必须包含http或者https头.
+     * 地址。长度最大128个字符
      */
-    private String url;
+    private String address;
+    private String avatarMediaId;
+    private Integer status;
+    private Integer enable;
     /**
-     * 小程序的展示标题,长度限制12个UTF8字符.
-     * 或者 网页的展示标题,长度限制12个UTF8字符
+     * 别名;第三方仅通讯录应用可获取
      */
-    private String title;
+    private String alias;
+    private Integer isLeader;
     /**
-     * 小程序appid,必须是有在本企业安装授权的小程序,否则会被忽略.
+     * is_leader_in_dept.
+     * 个数必须和department一致,表示在所在的部门内是否为上级。1表示为上级,0表示非上级。在审批等应用里可以用来标识上级审批人
      */
-    private String appid;
+    private Integer[] isLeaderInDept;
+    private final List<Attr> extAttrs = new ArrayList<>();
+    private Integer hideMobile;
+    private String englishName;
+    private String telephone;
+    private String qrCode;
+    private Boolean toInvite;
     /**
-     * 小程序的页面路径.
+     * 成员对外信息.
      */
-    private String pagePath;
-  }
-
-
-  @Data
-  @Builder
-  @NoArgsConstructor
-  @AllArgsConstructor
-  public static class WechatChannels implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
-
-    private String nickname;
-
-    private Integer status;
-
-  }
+    private List<ExternalAttribute> externalAttrs = new ArrayList<>();
+    private String externalPosition;
+    private String externalCorpName;
+    private WechatChannels wechatChannels;
+
+
+    public void addExternalAttr(ExternalAttribute externalAttr) {
+        this.externalAttrs.add(externalAttr);
+    }
+
+    public void addExtAttr(String name, String value) {
+        this.extAttrs.add(new Attr().setType(0).setName(name).setTextValue(value));
+    }
+
+    public void addExtAttr(Attr attr) {
+        this.extAttrs.add(attr);
+    }
+
+    public static WxCpUser fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpUser.class);
+    }
+
+    public String toJson() {
+        return WxCpGsonBuilder.create().toJson(this);
+    }
+
+    @Data
+    @Accessors(chain = true)
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class Attr implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
+
+        /**
+         * 属性类型: 0-文本 1-网页
+         */
+        private Integer type;
+        private String name;
+        private String textValue;
+        private String webUrl;
+        private String webTitle;
+    }
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class ExternalAttribute implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
+
+        /**
+         * 属性类型: 0-本文 1-网页 2-小程序.
+         */
+        private Integer type;
+        /**
+         * 属性名称: 需要先确保在管理端有创建改属性,否则会忽略.
+         */
+        private String name;
+        /**
+         * 文本属性内容,长度限制12个UTF8字符.
+         */
+        private String value;
+        /**
+         * 网页的url,必须包含http或者https头.
+         */
+        private String url;
+        /**
+         * 小程序的展示标题,长度限制12个UTF8字符.
+         * 或者 网页的展示标题,长度限制12个UTF8字符
+         */
+        private String title;
+        /**
+         * 小程序appid,必须是有在本企业安装授权的小程序,否则会被忽略.
+         */
+        private String appid;
+        /**
+         * 小程序的页面路径.
+         */
+        private String pagePath;
+    }
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class WechatChannels implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
+
+        private String nickname;
+
+        private Integer status;
+
+    }
 }

+ 0 - 1
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUserDetail.java

@@ -8,7 +8,6 @@ import java.io.Serializable;
 /**
  * <pre>
  *  使用user_ticket获取成员详情接口返回类.
- *  Created by BinaryWang on 2018/4/22.
  * </pre>
  *
  * @author Young

+ 110 - 109
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/WxCpUserExternalContactInfo.java

@@ -18,142 +18,143 @@ import java.util.List;
 @Getter
 @Setter
 public class WxCpUserExternalContactInfo implements Serializable {
-  private static final long serialVersionUID = -5696099236344075582L;
-
-  @SerializedName("external_contact")
-  private ExternalContact externalContact;
-
-  @SerializedName("follow_user")
-  private List<FollowedUser> followedUsers;
-
-  @Getter
-  @Setter
-  public static class ExternalContact implements Serializable {
     private static final long serialVersionUID = -5696099236344075582L;
 
-    @SerializedName("external_userid")
-    private String externalUserId;
+    @SerializedName("external_contact")
+    private ExternalContact externalContact;
 
-    @SerializedName("position")
-    private String position;
+    @SerializedName("follow_user")
+    private List<FollowedUser> followedUsers;
 
-    @SerializedName("name")
-    private String name;
+    @Getter
+    @Setter
+    public static class ExternalContact implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
 
-    @SerializedName("avatar")
-    private String avatar;
+        @SerializedName("external_userid")
+        private String externalUserId;
 
-    @SerializedName("corp_name")
-    private String corpName;
+        @SerializedName("position")
+        private String position;
 
-    @SerializedName("corp_full_name")
-    private String corpFullName;
+        @SerializedName("name")
+        private String name;
 
-    @SerializedName("type")
-    private Integer type;
+        @SerializedName("avatar")
+        private String avatar;
 
-    @SerializedName("gender")
-    private Integer gender;
+        @SerializedName("corp_name")
+        private String corpName;
 
-    @SerializedName("unionid")
-    private String unionId;
+        @SerializedName("corp_full_name")
+        private String corpFullName;
 
-    @SerializedName("external_profile")
-    private ExternalProfile externalProfile;
-  }
+        @SerializedName("type")
+        private Integer type;
 
-  @Setter
-  @Getter
-  public static class ExternalProfile implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
+        @SerializedName("gender")
+        private Integer gender;
 
-    @SerializedName("external_attr")
-    private List<ExternalAttribute> externalAttrs;
-  }
+        @SerializedName("unionid")
+        private String unionId;
 
-  @Data
-  @Builder
-  @NoArgsConstructor
-  @AllArgsConstructor
-  public static class ExternalAttribute implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
-    @Setter
-    @Getter
-    public static class Text implements Serializable {
-      private static final long serialVersionUID = -5696099236344075582L;
-
-      private String value;
+        @SerializedName("external_profile")
+        private ExternalProfile externalProfile;
     }
 
     @Setter
     @Getter
-    public static class Web implements Serializable {
-      private static final long serialVersionUID = -5696099236344075582L;
+    public static class ExternalProfile implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
 
-      private String title;
-      private String url;
+        @SerializedName("external_attr")
+        private List<ExternalAttribute> externalAttrs;
     }
 
-    @Setter
-    @Getter
-    public static class MiniProgram implements Serializable {
-      private static final long serialVersionUID = -5696099236344075582L;
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class ExternalAttribute implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
 
-      @SerializedName("pagepath")
-      private String pagePath;
-      private String appid;
-      private String title;
-    }
+        @Setter
+        @Getter
+        public static class Text implements Serializable {
+            private static final long serialVersionUID = -5696099236344075582L;
 
-    private int type;
+            private String value;
+        }
 
-    private String name;
+        @Setter
+        @Getter
+        public static class Web implements Serializable {
+            private static final long serialVersionUID = -5696099236344075582L;
 
-    private Text text;
+            private String title;
+            private String url;
+        }
 
-    private Web web;
+        @Setter
+        @Getter
+        public static class MiniProgram implements Serializable {
+            private static final long serialVersionUID = -5696099236344075582L;
 
-    @SerializedName("miniprogram")
-    private MiniProgram miniProgram;
-  }
+            @SerializedName("pagepath")
+            private String pagePath;
+            private String appid;
+            private String title;
+        }
 
-  @Setter
-  @Getter
-  public static class FollowedUser implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
-    
-    @SerializedName("userid")
-    private String userId;
-    private String remark;
-    private String description;
-    @SerializedName("createtime")
-    private Long createTime;
-    private String state;
-    @SerializedName("remark_company")
-    private String remarkCompany;
-    @SerializedName("remark_mobiles")
-    private String[] remarkMobiles;
-    private Tag[] tags;
-    @SerializedName("add_way")
-    private Integer addWay;
-    @SerializedName("oper_userid")
-    private String operUserid;
-
-  }
-
-  public static WxCpUserExternalContactInfo fromJson(String json) {
-    return WxCpGsonBuilder.create().fromJson(json, WxCpUserExternalContactInfo.class);
-  }
-
-  @Setter
-  @Getter
-  public static class Tag implements Serializable {
-    private static final long serialVersionUID = -5696099236344075582L;
+        private int type;
 
-    @SerializedName("group_name")
-    private String groupName;
-    @SerializedName("tag_name")
-    private String tagName;
-    private int type;
-  }
+        private String name;
+
+        private Text text;
+
+        private Web web;
+
+        @SerializedName("miniprogram")
+        private MiniProgram miniProgram;
+    }
+
+    @Setter
+    @Getter
+    public static class FollowedUser implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
+
+        @SerializedName("userid")
+        private String userId;
+        private String remark;
+        private String description;
+        @SerializedName("createtime")
+        private Long createTime;
+        private String state;
+        @SerializedName("remark_company")
+        private String remarkCompany;
+        @SerializedName("remark_mobiles")
+        private String[] remarkMobiles;
+        private Tag[] tags;
+        @SerializedName("add_way")
+        private Integer addWay;
+        @SerializedName("oper_userid")
+        private String operUserid;
+
+    }
+
+    public static WxCpUserExternalContactInfo fromJson(String json) {
+        return WxCpGsonBuilder.create().fromJson(json, WxCpUserExternalContactInfo.class);
+    }
+
+    @Setter
+    @Getter
+    public static class Tag implements Serializable {
+        private static final long serialVersionUID = -5696099236344075582L;
+
+        @SerializedName("group_name")
+        private String groupName;
+        @SerializedName("tag_name")
+        private String tagName;
+        private int type;
+    }
 }

+ 3 - 5
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/message/WxCpXmlMessage.java

@@ -2,7 +2,7 @@ package cn.nosum.wx.cp.entity.message;
 
 import cn.nosum.wx.common.utils.XmlUtils;
 import cn.nosum.wx.cp.utils.crypto.WxCpCryptUtil;
-import cn.nosum.wx.cp.utils.xml.XStreamTransformer;
+import cn.nosum.wx.cp.utils.xml.StreamXmlTransformer;
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamConverter;
 import com.thoughtworks.xstream.annotations.XStreamImplicit;
@@ -14,9 +14,7 @@ import cn.nosum.wx.common.utils.xml.IntegerArrayConverter;
 import cn.nosum.wx.common.utils.xml.LongArrayConverter;
 import cn.nosum.wx.common.utils.xml.XStreamCDataConverter;
 import cn.nosum.wx.cp.config.WxCpConfigStorage;
-import cn.nosum.wx.cp.utils.crypto.WxCpCryptUtil;
 import cn.nosum.wx.cp.utils.json.WxCpGsonBuilder;
-import cn.nosum.wx.cp.utils.xml.XStreamTransformer;
 import org.apache.commons.io.IOUtils;
 
 import java.io.IOException;
@@ -444,13 +442,13 @@ public class WxCpXmlMessage implements Serializable {
   protected static WxCpXmlMessage fromXml(String xml) {
     //修改微信变态的消息内容格式,方便解析
     xml = xml.replace("</PicList><PicList>", "");
-    final WxCpXmlMessage xmlMessage = XStreamTransformer.fromXml(WxCpXmlMessage.class, xml);
+    final WxCpXmlMessage xmlMessage = StreamXmlTransformer.fromXml(WxCpXmlMessage.class, xml);
     xmlMessage.setAllFieldsMap(XmlUtils.xml2Map(xml));
     return xmlMessage;
   }
 
   protected static WxCpXmlMessage fromXml(InputStream is) {
-    return XStreamTransformer.fromXml(WxCpXmlMessage.class, is);
+    return StreamXmlTransformer.fromXml(WxCpXmlMessage.class, is);
   }
 
   /**

+ 2 - 2
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/message/WxCpXmlOutMessage.java

@@ -7,7 +7,7 @@ import lombok.Data;
 import cn.nosum.wx.common.utils.xml.XStreamCDataConverter;
 import cn.nosum.wx.cp.entity.outxmlbuilder.*;
 import cn.nosum.wx.cp.config.WxCpConfigStorage;
-import cn.nosum.wx.cp.utils.xml.XStreamTransformer;
+import cn.nosum.wx.cp.utils.xml.StreamXmlTransformer;
 
 import java.io.Serializable;
 
@@ -80,7 +80,7 @@ public abstract class WxCpXmlOutMessage implements Serializable {
     }
 
     protected String toXml() {
-        return XStreamTransformer.toXml((Class) this.getClass(), this);
+        return StreamXmlTransformer.toXml((Class) this.getClass(), this);
     }
 
     /**

+ 16 - 16
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/BaseBuilder.java

@@ -4,26 +4,26 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutMessage;
 
 public abstract class BaseBuilder<BuilderType, ValueType> {
 
-  protected String toUserName;
+    protected String toUserName;
 
-  protected String fromUserName;
+    protected String fromUserName;
 
-  public BuilderType toUser(String touser) {
-    this.toUserName = touser;
-    return (BuilderType) this;
-  }
+    public BuilderType toUser(String touser) {
+        this.toUserName = touser;
+        return (BuilderType) this;
+    }
 
-  public BuilderType fromUser(String fromusername) {
-    this.fromUserName = fromusername;
-    return (BuilderType) this;
-  }
+    public BuilderType fromUser(String fromusername) {
+        this.fromUserName = fromusername;
+        return (BuilderType) this;
+    }
 
-  public abstract ValueType build();
+    public abstract ValueType build();
 
-  public void setCommon(WxCpXmlOutMessage m) {
-    m.setToUserName(this.toUserName);
-    m.setFromUserName(this.fromUserName);
-    m.setCreateTime(System.currentTimeMillis() / 1000L);
-  }
+    public void setCommon(WxCpXmlOutMessage m) {
+        m.setToUserName(this.toUserName);
+        m.setFromUserName(this.fromUserName);
+        m.setCreateTime(System.currentTimeMillis() / 1000L);
+    }
 
 }

+ 12 - 12
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/ImageBuilder.java

@@ -10,19 +10,19 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutImageMessage;
  */
 public final class ImageBuilder extends BaseBuilder<ImageBuilder, WxCpXmlOutImageMessage> {
 
-  private String mediaId;
+    private String mediaId;
 
-  public ImageBuilder mediaId(String media_id) {
-    this.mediaId = media_id;
-    return this;
-  }
+    public ImageBuilder mediaId(String media_id) {
+        this.mediaId = media_id;
+        return this;
+    }
 
-  @Override
-  public WxCpXmlOutImageMessage build() {
-    WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage();
-    setCommon(m);
-    m.setMediaId(this.mediaId);
-    return m;
-  }
+    @Override
+    public WxCpXmlOutImageMessage build() {
+        WxCpXmlOutImageMessage m = new WxCpXmlOutImageMessage();
+        setCommon(m);
+        m.setMediaId(this.mediaId);
+        return m;
+    }
 
 }

+ 17 - 17
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/NewsBuilder.java

@@ -13,26 +13,26 @@ import java.util.List;
  * @author Young
  */
 public final class NewsBuilder extends BaseBuilder<NewsBuilder, WxCpXmlOutNewsMessage> {
-  private List<Item> articles = new ArrayList<>();
+    private List<Item> articles = new ArrayList<>();
 
-  public NewsBuilder addArticle(Item... items) {
-    Collections.addAll(this.articles, items);
-    return this;
-  }
+    public NewsBuilder addArticle(Item... items) {
+        Collections.addAll(this.articles, items);
+        return this;
+    }
 
-  public NewsBuilder articles(List<Item> articles){
-    this.articles = articles;
-    return this;
-  }
+    public NewsBuilder articles(List<Item> articles) {
+        this.articles = articles;
+        return this;
+    }
 
-  @Override
-  public WxCpXmlOutNewsMessage build() {
-    WxCpXmlOutNewsMessage m = new WxCpXmlOutNewsMessage();
-    for (Item item : this.articles) {
-      m.addArticle(item);
+    @Override
+    public WxCpXmlOutNewsMessage build() {
+        WxCpXmlOutNewsMessage m = new WxCpXmlOutNewsMessage();
+        for (Item item : this.articles) {
+            m.addArticle(item);
+        }
+        setCommon(m);
+        return m;
     }
-    setCommon(m);
-    return m;
-  }
 
 }

+ 13 - 13
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/TaskCardBuilder.java

@@ -6,23 +6,23 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutTaskCardMessage;
 /**
  * 任务卡片消息builder
  *
- * @author tao zhang
+ * @author Young
  */
 public final class TaskCardBuilder extends BaseBuilder<TaskCardBuilder, WxCpXmlOutTaskCardMessage> {
 
-  private String replaceName;
+    private String replaceName;
 
-  public TaskCardBuilder replaceName(String replaceName) {
-    this.replaceName = replaceName;
-    return this;
-  }
+    public TaskCardBuilder replaceName(String replaceName) {
+        this.replaceName = replaceName;
+        return this;
+    }
 
-  @Override
-  public WxCpXmlOutTaskCardMessage build() {
-    WxCpXmlOutTaskCardMessage m = new WxCpXmlOutTaskCardMessage();
-    setCommon(m);
-    m.setReplaceName(this.replaceName);
-    return m;
-  }
+    @Override
+    public WxCpXmlOutTaskCardMessage build() {
+        WxCpXmlOutTaskCardMessage m = new WxCpXmlOutTaskCardMessage();
+        setCommon(m);
+        m.setReplaceName(this.replaceName);
+        return m;
+    }
 
 }

+ 12 - 12
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/TextBuilder.java

@@ -9,18 +9,18 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutTextMessage;
  * @author Young
  */
 public final class TextBuilder extends BaseBuilder<TextBuilder, WxCpXmlOutTextMessage> {
-  private String content;
+    private String content;
 
-  public TextBuilder content(String content) {
-    this.content = content;
-    return this;
-  }
+    public TextBuilder content(String content) {
+        this.content = content;
+        return this;
+    }
 
-  @Override
-  public WxCpXmlOutTextMessage build() {
-    WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage();
-    setCommon(m);
-    m.setContent(this.content);
-    return m;
-  }
+    @Override
+    public WxCpXmlOutTextMessage build() {
+        WxCpXmlOutTextMessage m = new WxCpXmlOutTextMessage();
+        setCommon(m);
+        m.setContent(this.content);
+        return m;
+    }
 }

+ 28 - 28
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/VideoBuilder.java

@@ -10,33 +10,33 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutVideoMessage;
  */
 public final class VideoBuilder extends BaseBuilder<VideoBuilder, WxCpXmlOutVideoMessage> {
 
-  private String mediaId;
-  private String title;
-  private String description;
-
-  public VideoBuilder title(String title) {
-    this.title = title;
-    return this;
-  }
-
-  public VideoBuilder description(String description) {
-    this.description = description;
-    return this;
-  }
-
-  public VideoBuilder mediaId(String mediaId) {
-    this.mediaId = mediaId;
-    return this;
-  }
-
-  @Override
-  public WxCpXmlOutVideoMessage build() {
-    WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage();
-    setCommon(m);
-    m.setTitle(this.title);
-    m.setDescription(this.description);
-    m.setMediaId(this.mediaId);
-    return m;
-  }
+    private String mediaId;
+    private String title;
+    private String description;
+
+    public VideoBuilder title(String title) {
+        this.title = title;
+        return this;
+    }
+
+    public VideoBuilder description(String description) {
+        this.description = description;
+        return this;
+    }
+
+    public VideoBuilder mediaId(String mediaId) {
+        this.mediaId = mediaId;
+        return this;
+    }
+
+    @Override
+    public WxCpXmlOutVideoMessage build() {
+        WxCpXmlOutVideoMessage m = new WxCpXmlOutVideoMessage();
+        setCommon(m);
+        m.setTitle(this.title);
+        m.setDescription(this.description);
+        m.setMediaId(this.mediaId);
+        return m;
+    }
 
 }

+ 12 - 12
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/outxmlbuilder/VoiceBuilder.java

@@ -10,19 +10,19 @@ import cn.nosum.wx.cp.entity.message.WxCpXmlOutVoiceMessage;
  */
 public final class VoiceBuilder extends BaseBuilder<VoiceBuilder, WxCpXmlOutVoiceMessage> {
 
-  private String mediaId;
+    private String mediaId;
 
-  public VoiceBuilder mediaId(String mediaId) {
-    this.mediaId = mediaId;
-    return this;
-  }
+    public VoiceBuilder mediaId(String mediaId) {
+        this.mediaId = mediaId;
+        return this;
+    }
 
-  @Override
-  public WxCpXmlOutVoiceMessage build() {
-    WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage();
-    setCommon(m);
-    m.setMediaId(this.mediaId);
-    return m;
-  }
+    @Override
+    public WxCpXmlOutVoiceMessage build() {
+        WxCpXmlOutVoiceMessage m = new WxCpXmlOutVoiceMessage();
+        setCommon(m);
+        m.setMediaId(this.mediaId);
+        return m;
+    }
 
 }

+ 8 - 5
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/workbench/WorkBenchKeyData.java

@@ -11,20 +11,23 @@ import java.io.Serializable;
  */
 @Data
 public class WorkBenchKeyData implements Serializable {
-    /*
+    /**
      * 关键数据名称
-     * */
+     */
     private String key;
+
     /*
      * 关键数据
-     * */
+     */
     private String data;
+
     /*
      * 点击跳转url,若不填且应用设置了主页url,则跳转到主页url,否则跳到应用会话窗口
-     * */
+     */
     private String jumpUrl;
+
     /*
      * 若应用为小程序类型,该字段填小程序pagepath,若未设置,跳到小程序主页
-     * */
+     */
     private String pagePath;
 }

+ 6 - 3
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/entity/workbench/WorkBenchList.java

@@ -11,16 +11,19 @@ import java.io.Serializable;
  */
 @Data
 public class WorkBenchList implements Serializable {
+
     /*
      * 列表显示文字,不超过128个字节
-     * */
+     */
     private String title;
+
     /*
      * 点击跳转url,若不填且应用设置了主页url,则跳转到主页url,否则跳到应用会话窗口
-     * */
+     */
     private String jumpUrl;
+
     /*
      * 若应用为小程序类型,该字段填小程序pagepath,若未设置,跳到小程序主页
-     * */
+     */
     private String pagePath;
 }

+ 13 - 13
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/crypto/WxCpCryptUtil.java

@@ -7,19 +7,19 @@ import com.google.common.io.BaseEncoding;
 
 public class WxCpCryptUtil extends WxCryptUtil {
 
-  public WxCpCryptUtil(WxCpConfigStorage wxCpConfigStorage) {
-    /*
-     * @param token          公众平台上,开发者设置的token
-     * @param encodingAesKey 公众平台上,开发者设置的EncodingAESKey
-     * @param appidOrCorpid          公众平台appid
-     */
-    String encodingAesKey = wxCpConfigStorage.getAesKey();
-    String token = wxCpConfigStorage.getToken();
-    String corpId = wxCpConfigStorage.getCorpId();
+    public WxCpCryptUtil(WxCpConfigStorage wxCpConfigStorage) {
+        /*
+         * @param token          公众平台上,开发者设置的token
+         * @param encodingAesKey 公众平台上,开发者设置的EncodingAESKey
+         * @param appidOrCorpid          公众平台appid
+         */
+        String encodingAesKey = wxCpConfigStorage.getAesKey();
+        String token = wxCpConfigStorage.getToken();
+        String corpId = wxCpConfigStorage.getCorpId();
 
-    this.token = token;
-    this.appidOrCorpid = corpId;
-    this.aesKey = BaseEncoding.base64().decode(CharMatcher.whitespace().removeFrom(encodingAesKey));
-  }
+        this.token = token;
+        this.appidOrCorpid = corpId;
+        this.aesKey = BaseEncoding.base64().decode(CharMatcher.whitespace().removeFrom(encodingAesKey));
+    }
 
 }

+ 45 - 45
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpDepartGsonAdapter.java

@@ -13,54 +13,54 @@ import java.lang.reflect.Type;
  * @author Young
  */
 public class WxCpDepartGsonAdapter implements JsonSerializer<WxCpDepart>, JsonDeserializer<WxCpDepart> {
-  private static final String ID = "id";
-  private static final String NAME = "name";
-  private static final String EN_NAME = "name_en";
-  private static final String PARENT_ID = "parentid";
-  private static final String ORDER = "order";
+    private static final String ID = "id";
+    private static final String NAME = "name";
+    private static final String EN_NAME = "name_en";
+    private static final String PARENT_ID = "parentid";
+    private static final String ORDER = "order";
 
-  @Override
-  public JsonElement serialize(WxCpDepart group, Type typeOfSrc, JsonSerializationContext context) {
-    JsonObject json = new JsonObject();
-    if (group.getId() != null) {
-      json.addProperty(ID, group.getId());
+    @Override
+    public JsonElement serialize(WxCpDepart group, Type typeOfSrc, JsonSerializationContext context) {
+        JsonObject json = new JsonObject();
+        if (group.getId() != null) {
+            json.addProperty(ID, group.getId());
+        }
+        if (group.getName() != null) {
+            json.addProperty(NAME, group.getName());
+        }
+        if (group.getEnName() != null) {
+            json.addProperty(EN_NAME, group.getEnName());
+        }
+        if (group.getParentId() != null) {
+            json.addProperty(PARENT_ID, group.getParentId());
+        }
+        if (group.getOrder() != null) {
+            json.addProperty(ORDER, String.valueOf(group.getOrder()));
+        }
+        return json;
     }
-    if (group.getName() != null) {
-      json.addProperty(NAME, group.getName());
-    }
-    if (group.getEnName() != null) {
-      json.addProperty(EN_NAME, group.getEnName());
-    }
-    if (group.getParentId() != null) {
-      json.addProperty(PARENT_ID, group.getParentId());
-    }
-    if (group.getOrder() != null) {
-      json.addProperty(ORDER, String.valueOf(group.getOrder()));
-    }
-    return json;
-  }
 
-  @Override
-  public WxCpDepart deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
-    throws JsonParseException {
-    WxCpDepart depart = new WxCpDepart();
-    JsonObject departJson = json.getAsJsonObject();
-    if (departJson.get(ID) != null && !departJson.get(ID).isJsonNull()) {
-      depart.setId(GsonHelper.getAsLong(departJson.get(ID)));
-    }
-    if (departJson.get(NAME) != null && !departJson.get(NAME).isJsonNull()) {
-      depart.setName(GsonHelper.getAsString(departJson.get(NAME)));
-    }
-    if (departJson.get(EN_NAME) != null && !departJson.get(EN_NAME).isJsonNull()) {
-      depart.setEnName(GsonHelper.getAsString(departJson.get(EN_NAME)));
-    }
-    if (departJson.get(ORDER) != null && !departJson.get(ORDER).isJsonNull()) {
-      depart.setOrder(GsonHelper.getAsLong(departJson.get(ORDER)));
-    }
-    if (departJson.get(PARENT_ID) != null && !departJson.get(PARENT_ID).isJsonNull()) {
-      depart.setParentId(GsonHelper.getAsLong(departJson.get(PARENT_ID)));
+    @Override
+    public WxCpDepart deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
+            throws JsonParseException {
+        WxCpDepart depart = new WxCpDepart();
+        JsonObject departJson = json.getAsJsonObject();
+        if (departJson.get(ID) != null && !departJson.get(ID).isJsonNull()) {
+            depart.setId(GsonHelper.getAsLong(departJson.get(ID)));
+        }
+        if (departJson.get(NAME) != null && !departJson.get(NAME).isJsonNull()) {
+            depart.setName(GsonHelper.getAsString(departJson.get(NAME)));
+        }
+        if (departJson.get(EN_NAME) != null && !departJson.get(EN_NAME).isJsonNull()) {
+            depart.setEnName(GsonHelper.getAsString(departJson.get(EN_NAME)));
+        }
+        if (departJson.get(ORDER) != null && !departJson.get(ORDER).isJsonNull()) {
+            depart.setOrder(GsonHelper.getAsLong(departJson.get(ORDER)));
+        }
+        if (departJson.get(PARENT_ID) != null && !departJson.get(PARENT_ID).isJsonNull()) {
+            depart.setParentId(GsonHelper.getAsLong(departJson.get(PARENT_ID)));
+        }
+        return depart;
     }
-    return depart;
-  }
 
 }

+ 15 - 13
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpGsonBuilder.java

@@ -12,24 +12,26 @@ import com.google.gson.GsonBuilder;
 
 
 /**
+ * 企业微信 GSON 适配器构建者.
+ *
  * @author Young
  */
 public class WxCpGsonBuilder {
 
-  private static final GsonBuilder INSTANCE = new GsonBuilder();
+    private static final GsonBuilder INSTANCE = new GsonBuilder();
 
-  static {
-    INSTANCE.disableHtmlEscaping();
-    INSTANCE.registerTypeAdapter(WxCpChat.class, new WxCpChatGsonAdapter());
-    INSTANCE.registerTypeAdapter(WxCpDepart.class, new WxCpDepartGsonAdapter());
-    INSTANCE.registerTypeAdapter(WxCpUser.class, new WxCpUserGsonAdapter());
-    INSTANCE.registerTypeAdapter(WxError.class, new WxErrorAdapter());
-    INSTANCE.registerTypeAdapter(WxMenu.class, new WxCpMenuGsonAdapter());
-    INSTANCE.registerTypeAdapter(WxCpTag.class, new WxCpTagGsonAdapter());
-  }
+    static {
+        INSTANCE.disableHtmlEscaping();
+        INSTANCE.registerTypeAdapter(WxCpChat.class, new WxCpChatGsonAdapter());
+        INSTANCE.registerTypeAdapter(WxCpDepart.class, new WxCpDepartGsonAdapter());
+        INSTANCE.registerTypeAdapter(WxCpUser.class, new WxCpUserGsonAdapter());
+        INSTANCE.registerTypeAdapter(WxError.class, new WxErrorAdapter());
+        INSTANCE.registerTypeAdapter(WxMenu.class, new WxCpMenuGsonAdapter());
+        INSTANCE.registerTypeAdapter(WxCpTag.class, new WxCpTagGsonAdapter());
+    }
 
-  public static Gson create() {
-    return INSTANCE.create();
-  }
+    public static Gson create() {
+        return INSTANCE.create();
+    }
 
 }

+ 13 - 13
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpTagGsonAdapter.java

@@ -12,19 +12,19 @@ import java.lang.reflect.Type;
  */
 public class WxCpTagGsonAdapter implements JsonSerializer<WxCpTag>, JsonDeserializer<WxCpTag> {
 
-  @Override
-  public JsonElement serialize(WxCpTag tag, Type typeOfSrc, JsonSerializationContext context) {
-    JsonObject o = new JsonObject();
-    o.addProperty("tagid", tag.getId());
-    o.addProperty("tagname", tag.getName());
-    return o;
-  }
+    @Override
+    public JsonElement serialize(WxCpTag tag, Type typeOfSrc, JsonSerializationContext context) {
+        JsonObject o = new JsonObject();
+        o.addProperty("tagid", tag.getId());
+        o.addProperty("tagname", tag.getName());
+        return o;
+    }
 
-  @Override
-  public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
-    throws JsonParseException {
-    JsonObject jsonObject = json.getAsJsonObject();
-    return new WxCpTag(GsonHelper.getString(jsonObject, "tagid"), GsonHelper.getString(jsonObject, "tagname"));
-  }
+    @Override
+    public WxCpTag deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
+            throws JsonParseException {
+        JsonObject jsonObject = json.getAsJsonObject();
+        return new WxCpTag(GsonHelper.getString(jsonObject, "tagid"), GsonHelper.getString(jsonObject, "tagname"));
+    }
 
 }

+ 1 - 1
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/json/WxCpUserGsonAdapter.java

@@ -12,7 +12,7 @@ import java.lang.reflect.Type;
 import static cn.nosum.wx.cp.entity.WxCpUser.*;
 
 /**
- * cp user gson adapter.
+ * WxCpUserGsonAdapter
  *
  * @author Young
  */

+ 9 - 5
wx-java-tools/wx-java-cp/src/main/java/cn/nosum/wx/cp/utils/xml/XStreamTransformer.java

@@ -8,7 +8,13 @@ import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
 
-public class XStreamTransformer {
+
+/**
+ * Stream 转 XML.
+ *
+ * @author Young
+ */
+public class StreamXmlTransformer {
 
     protected static final Map<Class, XStream> CLASS_2_XSTREAM_INSTANCE = configXStreamInstance();
 
@@ -17,14 +23,12 @@ public class XStreamTransformer {
      */
     @SuppressWarnings("unchecked")
     public static <T> T fromXml(Class<T> clazz, String xml) {
-        T object = (T) CLASS_2_XSTREAM_INSTANCE.get(clazz).fromXML(xml);
-        return object;
+        return (T) CLASS_2_XSTREAM_INSTANCE.get(clazz).fromXML(xml);
     }
 
     @SuppressWarnings("unchecked")
     public static <T> T fromXml(Class<T> clazz, InputStream is) {
-        T object = (T) CLASS_2_XSTREAM_INSTANCE.get(clazz).fromXML(is);
-        return object;
+        return (T) CLASS_2_XSTREAM_INSTANCE.get(clazz).fromXML(is);
     }
 
     /**