From 320bbfe7be66060c39e9a5ee18bf0b09830de983 Mon Sep 17 00:00:00 2001 From: xslong Date: Mon, 26 Sep 2022 23:06:42 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20#2825=20=E3=80=90=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E3=80=91=E5=A2=9E=E5=8A=A0=E5=88=86=E9=85=8D?= =?UTF-8?q?=E5=9C=A8=E8=81=8C=E6=88=90=E5=91=98=E7=9A=84=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=BE=A4=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cp/api/WxCpExternalContactService.java | 18 ++++++++++++++++++ .../impl/WxCpExternalContactServiceImpl.java | 12 ++++++++++++ .../weixin/cp/constant/WxCpApiPathConsts.java | 4 ++++ .../WxCpExternalContactServiceImplTest.java | 13 +++++++++++++ 4 files changed, 47 insertions(+) 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 f44be6d6c..0a8e81eda 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 @@ -595,6 +595,24 @@ public interface WxCpExternalContactService { */ WxCpUserExternalGroupChatTransferResp transferGroupChat(String[] chatIds, String newOwner) throws WxErrorException; + + /** + * 企业可通过此接口,将在职成员为群主的群,分配给另一个客服成员。 + * + * 注意: + * 继承给的新群主,必须是配置了客户联系功能的成员 + * 继承给的新群主,必须有设置实名 + * 继承给的新群主,必须有激活企业微信 + * 同一个人的群,限制每天最多分配300个给新群主 + * 为保障客户服务体验,90个自然日内,在职成员的每个客户群仅可被转接2次。 + * + * @param chatIds 需要转群主的客户群ID列表。取值范围: 1 ~ 100 + * @param newOwner 新群主ID + * @return 分配结果 ,主要是分配失败的群列表 + * @throws WxErrorException the wx error exception + */ + WxCpUserExternalGroupChatTransferResp onjobTransferGroupChat(String[] chatIds, String newOwner) 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 3373e7ccb..11bbd341b 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
@@ -373,6 +373,18 @@ public class WxCpExternalContactServiceImpl implements WxCpExternalContactServic
     return WxCpUserExternalGroupChatTransferResp.fromJson(result);
   }
 
+  @Override
+  public WxCpUserExternalGroupChatTransferResp onjobTransferGroupChat(String[] chatIds, String newOwner) throws WxErrorException {
+    JsonObject json = new JsonObject();
+    if (ArrayUtils.isNotEmpty(chatIds)) {
+      json.add("chat_id_list", new Gson().toJsonTree(chatIds).getAsJsonArray());
+    }
+    json.addProperty("new_owner", newOwner);
+    final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GROUP_CHAT_ONJOB_TRANSFER);
+    final String result = this.mainService.post(url, json.toString());
+    return WxCpUserExternalGroupChatTransferResp.fromJson(result);
+  }
+
   @Override
   public WxCpUserExternalUserBehaviorStatistic getUserBehaviorStatistic(Date startTime, Date endTime,
                                                                         String[] userIds, String[] partyIds) throws WxErrorException {
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
index 1188432b1..7576a8d44 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
@@ -1054,6 +1054,10 @@ public interface WxCpApiPathConsts {
      * The constant GROUP_CHAT_TRANSFER.
      */
     String GROUP_CHAT_TRANSFER = "/cgi-bin/externalcontact/groupchat/transfer";
+    /**
+     * The constant GROUP_CHAT_ONJOB_TRANSFER.
+     */
+    String GROUP_CHAT_ONJOB_TRANSFER = "/cgi-bin/externalcontact/groupchat/onjob_transfer";
     /**
      * The constant LIST_USER_BEHAVIOR_DATA.
      */
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 181924a47..30d2e4f91 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
@@ -406,6 +406,19 @@ public class WxCpExternalContactServiceImplTest {
     assertNotNull(result);
   }
 
+  /**
+   * Test onjob transfer group chat.
+   *
+   * @throws WxErrorException the wx error exception
+   */
+  @Test
+  public void testOnjobTransferGroupChat() throws WxErrorException {
+    String[] str = {"wrHlLKQAAAFbfB99-BO97YZlcywznGZg", "error_group_id"};
+    WxCpUserExternalGroupChatTransferResp result = this.wxCpService.getExternalContactService().onjobTransferGroupChat(str
+      , "x");
+    System.out.println(result);
+    assertNotNull(result);
+  }
   /**
    * Test get user behavior statistic.
    */