🎨 #2295 【企业微信】批量获取外部客户详情接口支持多个userId

This commit is contained in:
xingyao 2021-09-05 22:17:30 +08:00 committed by GitHub
parent b06cc90f94
commit ba99224d13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 39 deletions

View File

@ -153,6 +153,7 @@ public interface WxCpExternalContactService {
/**
* 企业和服务商可通过此接口将微信外部联系人的userid转为微信openid用于调用支付相关接口暂不支持企业微信外部联系人ExternalUserid为wo开头的userid转openid
*
* @param externalUserid 微信外部联系人的userid
* @return 该企业的外部联系人openid
* @throws WxErrorException .
@ -197,13 +198,13 @@ public interface WxCpExternalContactService {
* 第三方/自建应用调用时返回的跟进人follow_user仅包含应用可见范围之内的成员
* </pre>
*
* @param userId 企业成员的userid注意不是外部联系人的帐号
* @param userIdList 企业成员的userid列表注意不是外部联系人的帐号
* @param cursor the cursor
* @param limit the limit
* @return wx cp user external contact batch info
* @throws WxErrorException .
*/
WxCpExternalContactBatchInfo getContactDetailBatch(String userId, String cursor,
WxCpExternalContactBatchInfo getContactDetailBatch(String[] userIdList, String cursor,
Integer limit)
throws WxErrorException;
@ -283,7 +284,7 @@ public interface WxCpExternalContactService {
* <per>
* external_userid必须是handover_userid的客户即配置了客户联系功能的成员所添加的联系人
* 在职成员的每位客户最多被分配2次客户被转接成功后将有90个自然日的服务关系保护期保护期内的客户无法再次被分配
*
* <p>
* 权限说明
* * 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 第三方应用需拥有企业客户权限->客户联系->在职继承权限
@ -291,6 +292,7 @@ public interface WxCpExternalContactService {
* 接替成员需要配置了客户联系功能
* 接替成员需要在企业微信激活且已经过实名认证
* </per>
*
* @param req 转接在职成员的客户给其他成员请求实体
* @return wx cp base resp
* @throws WxErrorException the wx error exception
@ -301,11 +303,12 @@ public interface WxCpExternalContactService {
* 企业和第三方可通过此接口查询在职成员的客户转接情况
* <per>
* 权限说明
*
* <p>
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 第三方应用需拥有企业客户权限->客户联系->在职继承权限
* 接替成员必须在此第三方应用或自建应用的可见范围内
* </per>
*
* @param handOverUserid 原添加成员的userid
* @param takeOverUserid 接替成员的userid
* @param cursor 分页查询的cursor每个分页返回的数据不会超过1000条不填或为空表示获取第一个分页
@ -320,15 +323,16 @@ public interface WxCpExternalContactService {
* handover_userid必须是已离职用户
* external_userid必须是handover_userid的客户即配置了客户联系功能的成员所添加的联系人
* 在职成员的每位客户最多被分配2次客户被转接成功后将有90个自然日的服务关系保护期保护期内的客户无法再次被分配
*
* <p>
* 权限说明
*
* <p>
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 第三方应用需拥有企业客户权限->客户联系->离职分配权限
* 接替成员必须在此第三方应用或自建应用的可见范围内
* 接替成员需要配置了客户联系功能
* 接替成员需要在企业微信激活且已经过实名认证
* </per>
*
* @param req 转接在职成员的客户给其他成员请求实体
* @return wx cp base resp
* @throws WxErrorException the wx error exception
@ -339,11 +343,12 @@ public interface WxCpExternalContactService {
* 企业和第三方可通过此接口查询离职成员的客户分配情况
* <per>
* 权限说明
*
* <p>
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 第三方应用需拥有企业客户权限->客户联系->在职继承权限
* 接替成员必须在此第三方应用或自建应用的可见范围内
* </per>
*
* @param handOverUserid 原添加成员的userid
* @param takeOverUserid 接替成员的userid
* @param cursor 分页查询的cursor每个分页返回的数据不会超过1000条不填或为空表示获取第一个分页
@ -360,7 +365,6 @@ public interface WxCpExternalContactService {
* 微信文档https://work.weixin.qq.com/api/doc/90000/90135/92119
* </pre>
*
* @deprecated 请使用 {@link WxCpExternalContactService#listGroupChat(Integer, String, int, String[])}
* @param pageIndex the page index
* @param pageSize the page size
* @param status the status
@ -368,6 +372,7 @@ public interface WxCpExternalContactService {
* @param partyIds the party ids
* @return the wx cp user external group chat list
* @throws WxErrorException the wx error exception
* @deprecated 请使用 {@link WxCpExternalContactService#listGroupChat(Integer, String, int, String[])}
*/
@Deprecated
WxCpUserExternalGroupChatList listGroupChat(Integer pageIndex, Integer pageSize, int status, String[] userIds, String[] partyIds) throws WxErrorException;
@ -404,24 +409,24 @@ public interface WxCpExternalContactService {
WxCpUserExternalGroupChatInfo getGroupChat(String chatId, Integer needName) throws WxErrorException;
/**
*
* 企业可通过此接口将已离职成员为群主的群分配给另一个客服成员
*
* <per>
* 注意
*
* <p>
* 群主离职了的客户群才可继承
* 继承给的新群主必须是配置了客户联系功能的成员
* 继承给的新群主必须有设置实名
* 继承给的新群主必须有激活企业微信
* 同一个人的群限制每天最多分配300个给新群主
*
* <p>
* 权限说明:
*
* <p>
* 企业需要使用客户联系secret或配置到可调用应用列表中的自建应用secret所获取的accesstoken来调用accesstoken如何获取
* 第三方应用需拥有企业客户权限->客户联系->分配离职成员的客户群权限
* 对于第三方/自建应用群主必须在应用的可见范围
* </per>
*
* @param chatIds 需要转群主的客户群ID列表取值范围 1 ~ 100
* @param newOwner 新群主ID
* @return 分配结果主要是分配失败的群列表

View File

@ -148,7 +148,7 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
}
@Override
public WxCpExternalContactBatchInfo getContactDetailBatch(String userId,
public WxCpExternalContactBatchInfo getContactDetailBatch(String[] userIdList,
String cursor,
Integer limit)
throws WxErrorException {
@ -157,7 +157,7 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
.getWxCpConfigStorage()
.getApiUrl(GET_CONTACT_DETAIL_BATCH);
JsonObject json = new JsonObject();
json.addProperty("userid", userId);
json.add("userid_list", new Gson().toJsonTree(userIdList).getAsJsonArray());
if (StringUtils.isNotBlank(cursor)) {
json.addProperty("cursor", cursor);
}

View File

@ -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.WxCpExternalContactBatchInfo;
import me.chanjar.weixin.cp.bean.external.contact.WxCpExternalContactInfo;
import me.chanjar.weixin.cp.bean.external.msg.Attachment;
import me.chanjar.weixin.cp.bean.external.msg.Image;
@ -115,6 +116,14 @@ public class WxCpExternalContactServiceImplTest {
assertNotNull(result);
}
@Test
public void testGetContactDetailBatch() throws WxErrorException {
String userId = this.configStorage.getUserId();
WxCpExternalContactBatchInfo result = this.wxCpService.getExternalContactService().getContactDetailBatch(new String[]{userId}, "", 100);
System.out.println(result);
assertNotNull(result);
}
@Test
public void testGetCorpTagList() throws WxErrorException {
String[] tag = {};