diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java index 1cffaf35..9c180823 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java @@ -10,7 +10,7 @@ import java.util.List; /** *
- *  标签管理接口
+ *  标签管理接口.
  *  Created by BinaryWang on 2017/6/24.
  * 
* @@ -18,14 +18,14 @@ import java.util.List; */ public interface WxCpTagService { /** - * 创建标签 + * 创建标签. * * @param tagName 标签名 */ String create(String tagName) throws WxErrorException; /** - * 更新标签 + * 更新标签. * * @param tagId 标签id * @param tagName 标签名 @@ -33,46 +33,48 @@ public interface WxCpTagService { void update(String tagId, String tagName) throws WxErrorException; /** - * 删除标签 + * 删除标签. * * @param tagId 标签id */ void delete(String tagId) throws WxErrorException; /** - * 获得标签列表 + * 获得标签列表. */ List listAll() throws WxErrorException; /** - * 获取标签成员 + * 获取标签成员. * * @param tagId 标签ID */ List listUsersByTagId(String tagId) throws WxErrorException; /** - * 增加标签成员 - * @param tagId 标签id - * @param userIds 用户ID 列表 + * 增加标签成员. + * + * @param tagId 标签id + * @param userIds 用户ID 列表 + * @param partyIds 企业部门ID列表 */ WxCpTagAddOrRemoveUsersResult addUsers2Tag(String tagId, List userIds, List partyIds) throws WxErrorException; /** - * 移除标签成员 - * @param tagId 标签id - * @param userIds 用户id列表 + * 移除标签成员. + * + * @param tagId 标签id + * @param userIds 用户id列表 + * @param partyIds 企业部门ID列表 */ - WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List userIds) throws WxErrorException; + WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List userIds, List partyIds) throws WxErrorException; /** - * 获取标签成员 + * 获取标签成员. * 对应: http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 中的get接口 * - * @param tagId - * @return - * @throws WxErrorException + * @param tagId 标签id */ WxCpTagGetResult get(String tagId) throws WxErrorException; diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java index b6f64b62..af482bae 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java @@ -83,6 +83,22 @@ public class WxCpTagServiceImpl implements WxCpTagService { String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/addtagusers"; JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("tagid", tagId); + this.addUserIdsAndPartyIdsToJson(userIds, partyIds, jsonObject); + + return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString())); + } + + @Override + public WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List userIds, List partyIds) throws WxErrorException { + String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/deltagusers"; + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("tagid", tagId); + this.addUserIdsAndPartyIdsToJson(userIds, partyIds, jsonObject); + + return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString())); + } + + private void addUserIdsAndPartyIdsToJson(List userIds, List partyIds, JsonObject jsonObject) { if (userIds != null) { JsonArray jsonArray = new JsonArray(); for (String userId : userIds) { @@ -90,6 +106,7 @@ public class WxCpTagServiceImpl implements WxCpTagService { } jsonObject.add("userlist", jsonArray); } + if (partyIds != null) { JsonArray jsonArray = new JsonArray(); for (String userId : partyIds) { @@ -97,22 +114,6 @@ public class WxCpTagServiceImpl implements WxCpTagService { } jsonObject.add("partylist", jsonArray); } - - return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString())); - } - - @Override - public WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List userIds) throws WxErrorException { - String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/deltagusers"; - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("tagid", tagId); - JsonArray jsonArray = new JsonArray(); - for (String userId : userIds) { - jsonArray.add(new JsonPrimitive(userId)); - } - jsonObject.add("userlist", jsonArray); - - return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString())); } @Override diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java index 0a7a6d33..e77de87e 100644 --- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java +++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java @@ -10,13 +10,15 @@ import me.chanjar.weixin.cp.bean.WxCpTag; import me.chanjar.weixin.cp.bean.WxCpTagAddOrRemoveUsersResult; import me.chanjar.weixin.cp.bean.WxCpTagGetResult; import me.chanjar.weixin.cp.bean.WxCpUser; -import org.testng.annotations.*; +import org.testng.annotations.Guice; +import org.testng.annotations.Test; import java.util.List; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.testng.Assert.*; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotEquals; /** *
@@ -68,7 +70,7 @@ public class WxCpTagServiceImplTest {
   @Test(dependsOnMethods = {"testListUsersByTagId", "testAddUsers2Tag", "testListAll", "testUpdate", "testCreate"})
   public void testRemoveUsersFromTag() throws Exception {
     List userIds = Splitter.on("|").splitToList(this.configStorage.getUserId());
-    WxCpTagAddOrRemoveUsersResult result = this.wxService.getTagService().removeUsersFromTag(this.tagId, userIds);
+    WxCpTagAddOrRemoveUsersResult result = this.wxService.getTagService().removeUsersFromTag(this.tagId, userIds, null);
     assertEquals(result.getErrCode(), Integer.valueOf(0));
   }