Browse Source

#550 企业微信删除标签成员接口增加部门列表参数

master
Binary Wang 6 years ago
parent
commit
b5c3b5e59a
3 changed files with 41 additions and 36 deletions
  1. +19
    -17
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java
  2. +17
    -16
      weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java
  3. +5
    -3
      weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java

+ 19
- 17
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpTagService.java View File

@@ -10,7 +10,7 @@ import java.util.List;


/** /**
* <pre> * <pre>
* 标签管理接口
* 标签管理接口.
* Created by BinaryWang on 2017/6/24. * Created by BinaryWang on 2017/6/24.
* </pre> * </pre>
* *
@@ -18,14 +18,14 @@ import java.util.List;
*/ */
public interface WxCpTagService { public interface WxCpTagService {
/** /**
* 创建标签
* 创建标签.
* *
* @param tagName 标签名 * @param tagName 标签名
*/ */
String create(String tagName) throws WxErrorException; String create(String tagName) throws WxErrorException;


/** /**
* 更新标签
* 更新标签.
* *
* @param tagId 标签id * @param tagId 标签id
* @param tagName 标签名 * @param tagName 标签名
@@ -33,46 +33,48 @@ public interface WxCpTagService {
void update(String tagId, String tagName) throws WxErrorException; void update(String tagId, String tagName) throws WxErrorException;


/** /**
* 删除标签
* 删除标签.
* *
* @param tagId 标签id * @param tagId 标签id
*/ */
void delete(String tagId) throws WxErrorException; void delete(String tagId) throws WxErrorException;


/** /**
* 获得标签列表
* 获得标签列表.
*/ */
List<WxCpTag> listAll() throws WxErrorException; List<WxCpTag> listAll() throws WxErrorException;


/** /**
* 获取标签成员
* 获取标签成员.
* *
* @param tagId 标签ID * @param tagId 标签ID
*/ */
List<WxCpUser> listUsersByTagId(String tagId) throws WxErrorException; List<WxCpUser> 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<String> userIds, List<String> partyIds) throws WxErrorException; WxCpTagAddOrRemoveUsersResult addUsers2Tag(String tagId, List<String> userIds, List<String> partyIds) throws WxErrorException;


/** /**
* 移除标签成员
* @param tagId 标签id
* @param userIds 用户id列表
* 移除标签成员.
*
* @param tagId 标签id
* @param userIds 用户id列表
* @param partyIds 企业部门ID列表
*/ */
WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List<String> userIds) throws WxErrorException;
WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List<String> userIds, List<String> partyIds) throws WxErrorException;




/** /**
* 获取标签成员
* 获取标签成员.
* 对应: http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 中的get接口 * 对应: http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 中的get接口
* *
* @param tagId
* @return
* @throws WxErrorException
* @param tagId 标签id
*/ */
WxCpTagGetResult get(String tagId) throws WxErrorException; WxCpTagGetResult get(String tagId) throws WxErrorException;




+ 17
- 16
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImpl.java View File

@@ -83,6 +83,22 @@ public class WxCpTagServiceImpl implements WxCpTagService {
String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/addtagusers"; String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/addtagusers";
JsonObject jsonObject = new JsonObject(); JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("tagid", tagId); 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<String> userIds, List<String> 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<String> userIds, List<String> partyIds, JsonObject jsonObject) {
if (userIds != null) { if (userIds != null) {
JsonArray jsonArray = new JsonArray(); JsonArray jsonArray = new JsonArray();
for (String userId : userIds) { for (String userId : userIds) {
@@ -90,6 +106,7 @@ public class WxCpTagServiceImpl implements WxCpTagService {
} }
jsonObject.add("userlist", jsonArray); jsonObject.add("userlist", jsonArray);
} }

if (partyIds != null) { if (partyIds != null) {
JsonArray jsonArray = new JsonArray(); JsonArray jsonArray = new JsonArray();
for (String userId : partyIds) { for (String userId : partyIds) {
@@ -97,22 +114,6 @@ public class WxCpTagServiceImpl implements WxCpTagService {
} }
jsonObject.add("partylist", jsonArray); jsonObject.add("partylist", jsonArray);
} }

return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString()));
}

@Override
public WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List<String> 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 @Override


+ 5
- 3
weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpTagServiceImplTest.java View File

@@ -10,13 +10,15 @@ import me.chanjar.weixin.cp.bean.WxCpTag;
import me.chanjar.weixin.cp.bean.WxCpTagAddOrRemoveUsersResult; import me.chanjar.weixin.cp.bean.WxCpTagAddOrRemoveUsersResult;
import me.chanjar.weixin.cp.bean.WxCpTagGetResult; import me.chanjar.weixin.cp.bean.WxCpTagGetResult;
import me.chanjar.weixin.cp.bean.WxCpUser; 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 java.util.List;


import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import static org.testng.Assert.*;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotEquals;


/** /**
* <pre> * <pre>
@@ -68,7 +70,7 @@ public class WxCpTagServiceImplTest {
@Test(dependsOnMethods = {"testListUsersByTagId", "testAddUsers2Tag", "testListAll", "testUpdate", "testCreate"}) @Test(dependsOnMethods = {"testListUsersByTagId", "testAddUsers2Tag", "testListAll", "testUpdate", "testCreate"})
public void testRemoveUsersFromTag() throws Exception { public void testRemoveUsersFromTag() throws Exception {
List<String> userIds = Splitter.on("|").splitToList(this.configStorage.getUserId()); List<String> 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)); assertEquals(result.getErrCode(), Integer.valueOf(0));
} }




Loading…
Cancel
Save