diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
index 3ceee6490..231e0bfa3 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpExternalContactService.java
@@ -4,6 +4,8 @@ import lombok.NonNull;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
import me.chanjar.weixin.cp.bean.external.*;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactBatchInfo;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import java.util.Date;
import java.util.List;
@@ -109,7 +111,7 @@ public interface WxCpExternalContactService {
* @deprecated 建议使用 {@link #getContactDetail(String)}
*/
@Deprecated
- WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException;
+ WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException;
/**
* 获取客户详情.
@@ -130,7 +132,7 @@ public interface WxCpExternalContactService {
* @return . contact detail
* @throws WxErrorException .
*/
- WxCpUserExternalContactInfo getContactDetail(String userId) throws WxErrorException;
+ WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorException;
/**
* 批量获取客户详情.
@@ -153,8 +155,8 @@ public interface WxCpExternalContactService {
* @return wx cp user external contact batch info
* @throws WxErrorException .
*/
- WxCpUserExternalContactBatchInfo getContactDetailBatch(String userId, String cursor,
- Integer limit)
+ WxCpExternalContactBatchInfo getContactDetailBatch(String userId, String cursor,
+ Integer limit)
throws WxErrorException;
/**
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java
index 8cf5670f9..c8b2aae67 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpUserService.java
@@ -3,7 +3,7 @@ package me.chanjar.weixin.cp.api;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
import me.chanjar.weixin.cp.bean.WxCpUser;
-import me.chanjar.weixin.cp.bean.external.WxCpUserExternalContactInfo;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import java.util.List;
import java.util.Map;
@@ -167,7 +167,7 @@ public interface WxCpUserService {
* @return 联系人详情
* @throws WxErrorException .
*/
- WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException;
+ WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException;
}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
index 2d62f8aef..19e7cdfe7 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImpl.java
@@ -11,6 +11,8 @@ import me.chanjar.weixin.cp.api.WxCpExternalContactService;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
import me.chanjar.weixin.cp.bean.external.*;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactBatchInfo;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
@@ -91,23 +93,23 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
}
@Override
- public WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException {
+ public WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException {
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_EXTERNAL_CONTACT + userId);
String responseContent = this.mainService.get(url, null);
- return WxCpUserExternalContactInfo.fromJson(responseContent);
+ return WxCpExternalContactInfo.fromJson(responseContent);
}
@Override
- public WxCpUserExternalContactInfo getContactDetail(String userId) throws WxErrorException {
+ public WxCpExternalContactInfo getContactDetail(String userId) throws WxErrorException {
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CONTACT_DETAIL + userId);
String responseContent = this.mainService.get(url, null);
- return WxCpUserExternalContactInfo.fromJson(responseContent);
+ return WxCpExternalContactInfo.fromJson(responseContent);
}
@Override
- public WxCpUserExternalContactBatchInfo getContactDetailBatch(String userId,
- String cursor,
- Integer limit)
+ public WxCpExternalContactBatchInfo getContactDetailBatch(String userId,
+ String cursor,
+ Integer limit)
throws WxErrorException {
final String url =
this.mainService
@@ -122,7 +124,7 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
json.addProperty("limit", limit);
}
String responseContent = this.mainService.post(url, json.toString());
- return WxCpUserExternalContactBatchInfo.fromJson(responseContent);
+ return WxCpExternalContactBatchInfo.fromJson(responseContent);
}
@Override
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java
index d6d401624..cb122a014 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpUserServiceImpl.java
@@ -10,7 +10,7 @@ import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.WxCpUserService;
import me.chanjar.weixin.cp.bean.WxCpInviteResult;
import me.chanjar.weixin.cp.bean.WxCpUser;
-import me.chanjar.weixin.cp.bean.external.WxCpUserExternalContactInfo;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import java.util.List;
@@ -193,9 +193,9 @@ public class WxCpUserServiceImpl implements WxCpUserService {
}
@Override
- public WxCpUserExternalContactInfo getExternalContact(String userId) throws WxErrorException {
+ public WxCpExternalContactInfo getExternalContact(String userId) throws WxErrorException {
String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_EXTERNAL_CONTACT + userId);
String responseContent = this.mainService.get(url, null);
- return WxCpUserExternalContactInfo.fromJson(responseContent);
+ return WxCpExternalContactInfo.fromJson(responseContent);
}
}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactBatchInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactBatchInfo.java
deleted file mode 100644
index 5275dc9dd..000000000
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactBatchInfo.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package me.chanjar.weixin.cp.bean.external;
-
-import com.google.gson.annotations.SerializedName;
-import java.io.Serializable;
-import java.util.List;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import me.chanjar.weixin.cp.bean.WxCpBaseResp;
-import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
-
-/**
- *
- * 批量获取客户详情
- * Created by Binary Wang on 2020/10/22.
- * 参考文档:https://work.weixin.qq.com/api/doc/90000/90135/92994
- *
- *
- * @author alucardxh
- */
-@Getter
-@Setter
-public class WxCpUserExternalContactBatchInfo extends WxCpBaseResp implements Serializable {
- private static final long serialVersionUID = -5166048319463473186L;
-
- @SerializedName("external_contact_list")
- private List externalContactList;
-
- @SerializedName("next_cursor")
- private String nextCursor;
-
- @Getter
- @Setter
- public static class ExternalContactInfo {
- @SerializedName("external_contact")
- private ExternalContact externalContact;
-
- @SerializedName("follow_info")
- private FollowedUser followInfo;
- }
-
- @Getter
- @Setter
- public static class ExternalContact {
- @SerializedName("external_userid")
- private String externalUserId;
-
- @SerializedName("position")
- private String position;
-
- @SerializedName("name")
- private String name;
-
- @SerializedName("avatar")
- private String avatar;
-
- @SerializedName("corp_name")
- private String corpName;
-
- @SerializedName("corp_full_name")
- private String corpFullName;
-
- @SerializedName("type")
- private Integer type;
-
- @SerializedName("gender")
- private Integer gender;
-
- @SerializedName("unionid")
- private String unionId;
-
- @SerializedName("external_profile")
- private ExternalProfile externalProfile;
- }
-
- @Setter
- @Getter
- public static class ExternalProfile {
- @SerializedName("external_attr")
- private List externalAttrs;
- }
-
- @Data
- @Builder
- @NoArgsConstructor
- @AllArgsConstructor
- public static class ExternalAttribute {
- @Setter
- @Getter
- public static class Text {
- private String value;
- }
-
- @Setter
- @Getter
- public static class Web {
- private String title;
- private String url;
- }
-
- @Setter
- @Getter
- public static class MiniProgram {
- @SerializedName("pagepath")
- private String pagePath;
- private String appid;
- private String title;
- }
-
- private int type;
-
- private String name;
-
- private Text text;
-
- private Web web;
-
- @SerializedName("miniprogram")
- private MiniProgram miniProgram;
- }
-
- @Setter
- @Getter
- public static class FollowedUser {
- @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("remark_corp_name")
- private String remarkCorpName;
- @SerializedName("add_way")
- private String addWay;
- @SerializedName("oper_userid")
- private String operUserId;
-
- }
-
- public static WxCpUserExternalContactBatchInfo fromJson(String json) {
- return WxCpGsonBuilder.create().fromJson(json, WxCpUserExternalContactBatchInfo.class);
- }
-
- @Setter
- @Getter
- public static class Tag {
- @SerializedName("group_name")
- private String groupName;
- @SerializedName("tag_name")
- private String tagName;
- private int type;
- }
-
-}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfo.java
deleted file mode 100644
index c28326e84..000000000
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfo.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package me.chanjar.weixin.cp.bean.external;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.*;
-import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
-
-import java.util.List;
-
-/**
- *
- * 外部联系人详情
- * Created by Binary Wang on 2018/9/16.
- * 参考文档:https://work.weixin.qq.com/api/doc#13878
- *
- *
- * @author Binary Wang
- */
-@Getter
-@Setter
-public class WxCpUserExternalContactInfo {
- @SerializedName("external_contact")
- private ExternalContact externalContact;
-
- @SerializedName("follow_user")
- private List followedUsers;
-
- @Getter
- @Setter
- public static class ExternalContact {
- @SerializedName("external_userid")
- private String externalUserId;
-
- @SerializedName("position")
- private String position;
-
- @SerializedName("name")
- private String name;
-
- @SerializedName("avatar")
- private String avatar;
-
- @SerializedName("corp_name")
- private String corpName;
-
- @SerializedName("corp_full_name")
- private String corpFullName;
-
- @SerializedName("type")
- private Integer type;
-
- @SerializedName("gender")
- private Integer gender;
-
- @SerializedName("unionid")
- private String unionId;
-
- @SerializedName("external_profile")
- private ExternalProfile externalProfile;
- }
-
- @Setter
- @Getter
- public static class ExternalProfile {
- @SerializedName("external_attr")
- private List externalAttrs;
- }
-
- @Data
- @Builder
- @NoArgsConstructor
- @AllArgsConstructor
- public static class ExternalAttribute {
- @Setter
- @Getter
- public static class Text {
- private String value;
- }
-
- @Setter
- @Getter
- public static class Web {
- private String title;
- private String url;
- }
-
- @Setter
- @Getter
- public static class MiniProgram {
- @SerializedName("pagepath")
- private String pagePath;
- private String appid;
- private String title;
- }
-
- private int type;
-
- private String name;
-
- private Text text;
-
- private Web web;
-
- @SerializedName("miniprogram")
- private MiniProgram miniProgram;
- }
-
- @Setter
- @Getter
- public static class FollowedUser {
- @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("remark_corp_name")
- private String remarkCorpName;
- @SerializedName("add_way")
- private String 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 {
- @SerializedName("group_name")
- private String groupName;
- @SerializedName("tag_name")
- private String tagName;
- private int type;
- }
-}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java
new file mode 100644
index 000000000..5b7f9e67b
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/ExternalContact.java
@@ -0,0 +1,103 @@
+package me.chanjar.weixin.cp.bean.external.contact;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.*;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 外部联系人.
+ *
+ * @author Binary Wang
+ * @date 2020-11-04
+ */
+@Getter
+@Setter
+public class ExternalContact implements Serializable {
+ private static final long serialVersionUID = -1049085217436072418L;
+
+ @SerializedName("external_userid")
+ private String externalUserId;
+
+ @SerializedName("position")
+ private String position;
+
+ @SerializedName("name")
+ private String name;
+
+ @SerializedName("avatar")
+ private String avatar;
+
+ @SerializedName("corp_name")
+ private String corpName;
+
+ @SerializedName("corp_full_name")
+ private String corpFullName;
+
+ @SerializedName("type")
+ private Integer type;
+
+ @SerializedName("gender")
+ private Integer gender;
+
+ @SerializedName("unionid")
+ private String unionId;
+
+ @SerializedName("external_profile")
+ private ExternalProfile externalProfile;
+
+ @Data
+ public static class ExternalProfile implements Serializable {
+ private static final long serialVersionUID = -2899906589789022765L;
+
+ @SerializedName("external_attr")
+ private List externalAttrs;
+ }
+
+ @Data
+ @Builder
+ @NoArgsConstructor
+ @AllArgsConstructor
+ public static class ExternalAttribute implements Serializable {
+ private static final long serialVersionUID = -1262278808286421085L;
+
+ private int type;
+
+ private String name;
+
+ private Text text;
+
+ private Web web;
+
+ @SerializedName("miniprogram")
+ private MiniProgram miniProgram;
+
+ @Data
+ public static class Text implements Serializable {
+ private static final long serialVersionUID = -8161579335600269094L;
+
+ private String value;
+ }
+
+ @Data
+ public static class Web implements Serializable {
+ private static final long serialVersionUID = 3664557135411521862L;
+
+ private String title;
+ private String url;
+ }
+
+ @Data
+ public static class MiniProgram implements Serializable {
+ private static final long serialVersionUID = -5329210594501835796L;
+
+ @SerializedName("pagepath")
+ private String pagePath;
+
+ private String appid;
+
+ private String title;
+ }
+ }
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/FollowedUser.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/FollowedUser.java
new file mode 100644
index 000000000..a9fb7ba83
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/FollowedUser.java
@@ -0,0 +1,81 @@
+package me.chanjar.weixin.cp.bean.external.contact;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 添加了外部联系人的企业成员.
+ *
+ * @author Binary Wang
+ * @date 2020-11-04
+ */
+@Data
+public class FollowedUser {
+ @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;
+
+ /**
+ * 批量获取客户详情 接口专用
+ */
+ @SerializedName("tag_id")
+ private String[] tagIds;
+
+ /**
+ * 获取客户详情 接口专用
+ */
+ private Tag[] tags;
+
+ @SerializedName("remark_corp_name")
+ private String remarkCorpName;
+
+ @SerializedName("add_way")
+ private String addWay;
+
+ @SerializedName("oper_userid")
+ private String operatorUserId;
+
+ @Data
+ public static class Tag implements Serializable {
+ private static final long serialVersionUID = -7556237053703295482L;
+
+ /**
+ * 该成员添加此外部联系人所打标签的分组名称(标签功能需要企业微信升级到2.7.5及以上版本)
+ */
+ @SerializedName("group_name")
+ private String groupName;
+
+ /**
+ * 该成员添加此外部联系人所打标签名称
+ */
+ @SerializedName("tag_name")
+ private String tagName;
+
+ /**
+ * 该成员添加此外部联系人所打企业标签的id,仅企业设置(type为1)的标签返回
+ */
+ @SerializedName("tag_id")
+ private String tagId;
+
+ /**
+ * 该成员添加此外部联系人所打标签类型, 1-企业设置, 2-用户自定义
+ */
+ private int type;
+ }
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactBatchInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactBatchInfo.java
new file mode 100644
index 000000000..65e332613
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactBatchInfo.java
@@ -0,0 +1,48 @@
+package me.chanjar.weixin.cp.bean.external.contact;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Getter;
+import lombok.Setter;
+import me.chanjar.weixin.cp.bean.WxCpBaseResp;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * 批量获取客户详情
+ * 参考文档:https://work.weixin.qq.com/api/doc/90000/90135/92994
+ *
+ *
+ * @author alucardxh
+ */
+@Getter
+@Setter
+public class WxCpExternalContactBatchInfo extends WxCpBaseResp implements Serializable {
+ private static final long serialVersionUID = -5166048319463473186L;
+
+ @SerializedName("external_contact_list")
+ private List externalContactList;
+
+ @SerializedName("next_cursor")
+ private String nextCursor;
+
+ @Getter
+ @Setter
+ public static class ExternalContactInfo implements Serializable {
+ private static final long serialVersionUID = 4723983768235723206L;
+
+ @SerializedName("external_contact")
+ private ExternalContact externalContact;
+
+ @SerializedName("follow_info")
+ private FollowedUser followInfo;
+ }
+
+
+ public static WxCpExternalContactBatchInfo fromJson(String json) {
+ return WxCpGsonBuilder.create().fromJson(json, WxCpExternalContactBatchInfo.class);
+ }
+
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactInfo.java
new file mode 100644
index 000000000..bd7229384
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/contact/WxCpExternalContactInfo.java
@@ -0,0 +1,33 @@
+package me.chanjar.weixin.cp.bean.external.contact;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.*;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * 外部联系人详情
+ * Created by Binary Wang on 2018/9/16.
+ * 参考文档:https://work.weixin.qq.com/api/doc#13878
+ *
+ *
+ * @author Binary Wang
+ */
+@Data
+public class WxCpExternalContactInfo implements Serializable {
+ private static final long serialVersionUID = 4311777322534499260L;
+
+ @SerializedName("external_contact")
+ private ExternalContact externalContact;
+
+ @SerializedName("follow_user")
+ private List followedUsers;
+
+ public static WxCpExternalContactInfo fromJson(String json) {
+ return WxCpGsonBuilder.create().fromJson(json, WxCpExternalContactInfo.class);
+ }
+
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java
index cb3c62195..4a41fa8f7 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpConsts.java
@@ -315,6 +315,7 @@ public class WxCpConsts {
public static final String MARKDOWN = "markdown";
}
+ @UtilityClass
public static class WorkBenchType {
/*
* 关键数据型
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouterRule.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouterRule.java
index fa21a1451..257cc1212 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouterRule.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageRouterRule.java
@@ -5,14 +5,11 @@ import me.chanjar.weixin.common.api.WxErrorExceptionHandler;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.cp.bean.message.WxCpTpXmlMessage;
-import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage;
import me.chanjar.weixin.cp.bean.message.WxCpXmlOutMessage;
import me.chanjar.weixin.cp.message.WxCpMessageMatcher;
import me.chanjar.weixin.cp.tp.service.WxCpTpService;
-import org.apache.commons.lang3.StringUtils;
import java.util.*;
-import java.util.regex.Pattern;
/**
* The type Wx cp message router rule.
@@ -57,6 +54,16 @@ public class WxCpTpMessageRouterRule {
return this;
}
+ /**
+ * 匹配 Message infoType
+ *
+ * @param infoType info
+ */
+ public WxCpTpMessageRouterRule infoType(String infoType) {
+ this.infoType = infoType;
+ return this;
+ }
+
/**
* 如果消息匹配某个matcher,用在用户需要自定义更复杂的匹配规则的时候
*
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java
index 8cace0fe3..29089d478 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpExternalContactServiceImplTest.java
@@ -7,6 +7,7 @@ import me.chanjar.weixin.cp.api.ApiTestModule;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpBaseResp;
import me.chanjar.weixin.cp.bean.external.*;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
@@ -28,7 +29,7 @@ public class WxCpExternalContactServiceImplTest {
@Test
public void testGetExternalContact() throws WxErrorException {
String externalUserId = this.configStorage.getExternalUserId();
- WxCpUserExternalContactInfo result = this.wxCpService.getExternalContactService().getExternalContact(externalUserId);
+ WxCpExternalContactInfo result = this.wxCpService.getExternalContactService().getExternalContact(externalUserId);
System.out.println(result);
assertNotNull(result);
}
@@ -105,7 +106,7 @@ public class WxCpExternalContactServiceImplTest {
@Test
public void testGetContactDetail() throws WxErrorException {
String externalUserId = this.configStorage.getExternalUserId();
- WxCpUserExternalContactInfo result = this.wxCpService.getExternalContactService().getContactDetail(externalUserId);
+ WxCpExternalContactInfo result = this.wxCpService.getExternalContactService().getContactDetail(externalUserId);
System.out.println(result);
assertNotNull(result);
}
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpUserExternalContactInfoTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfoTest.java
similarity index 86%
rename from weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpUserExternalContactInfoTest.java
rename to weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfoTest.java
index 77b25f919..c666c1b94 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/WxCpUserExternalContactInfoTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/bean/external/WxCpUserExternalContactInfoTest.java
@@ -1,10 +1,12 @@
-package me.chanjar.weixin.cp.bean;
+package me.chanjar.weixin.cp.bean.external;
+
+import me.chanjar.weixin.cp.bean.external.contact.ExternalContact;
+import me.chanjar.weixin.cp.bean.external.contact.FollowedUser;
+import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
+import org.testng.annotations.*;
import java.util.List;
-import me.chanjar.weixin.cp.bean.external.WxCpUserExternalContactInfo;
-import org.testng.annotations.*;
-
import static org.assertj.core.api.Assertions.assertThat;
/**
@@ -77,7 +79,7 @@ public class WxCpUserExternalContactInfoTest {
" ]\n" +
"}";
- final WxCpUserExternalContactInfo contactInfo = WxCpUserExternalContactInfo.fromJson(json);
+ final WxCpExternalContactInfo contactInfo = WxCpExternalContactInfo.fromJson(json);
assertThat(contactInfo).isNotNull();
assertThat(contactInfo.getExternalContact()).isNotNull();
@@ -93,21 +95,21 @@ public class WxCpUserExternalContactInfoTest {
assertThat(contactInfo.getExternalContact().getExternalProfile()).isNotNull();
- final List externalAttrs = contactInfo.getExternalContact().getExternalProfile().getExternalAttrs();
+ final List externalAttrs = contactInfo.getExternalContact().getExternalProfile().getExternalAttrs();
assertThat(externalAttrs).isNotEmpty();
- final WxCpUserExternalContactInfo.ExternalAttribute externalAttr1 = externalAttrs.get(0);
+ final ExternalContact.ExternalAttribute externalAttr1 = externalAttrs.get(0);
assertThat(externalAttr1.getType()).isEqualTo(0);
assertThat(externalAttr1.getName()).isEqualTo("文本名称");
assertThat(externalAttr1.getText().getValue()).isEqualTo("文本");
- final WxCpUserExternalContactInfo.ExternalAttribute externalAttr2 = externalAttrs.get(1);
+ final ExternalContact.ExternalAttribute externalAttr2 = externalAttrs.get(1);
assertThat(externalAttr2.getType()).isEqualTo(1);
assertThat(externalAttr2.getName()).isEqualTo("网页名称");
assertThat(externalAttr2.getWeb().getUrl()).isEqualTo("http://www.test.com");
assertThat(externalAttr2.getWeb().getTitle()).isEqualTo("标题");
- final WxCpUserExternalContactInfo.ExternalAttribute externalAttr3 = externalAttrs.get(2);
+ final ExternalContact.ExternalAttribute externalAttr3 = externalAttrs.get(2);
assertThat(externalAttr3.getType()).isEqualTo(2);
assertThat(externalAttr3.getName()).isEqualTo("测试app");
assertThat(externalAttr3.getMiniProgram().getAppid()).isEqualTo("wx8bd80126147df384");
@@ -115,7 +117,7 @@ public class WxCpUserExternalContactInfoTest {
assertThat(externalAttr3.getMiniProgram().getTitle()).isEqualTo("my miniprogram");
- List followedUsers = contactInfo.getFollowedUsers();
+ List followedUsers = contactInfo.getFollowedUsers();
assertThat(followedUsers).isNotEmpty();
assertThat(followedUsers.get(0).getUserId()).isEqualTo("rocky");
assertThat(followedUsers.get(0).getRemark()).isEqualTo("李部长");