@@ -10,7 +10,7 @@ import java.util.List; | |||
/** | |||
* <pre> | |||
* 标签管理接口 | |||
* 标签管理接口. | |||
* Created by BinaryWang on 2017/6/24. | |||
* </pre> | |||
* | |||
@@ -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<WxCpTag> listAll() throws WxErrorException; | |||
/** | |||
* 获取标签成员 | |||
* 获取标签成员. | |||
* | |||
* @param tagId 标签ID | |||
*/ | |||
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; | |||
/** | |||
* 移除标签成员 | |||
* @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接口 | |||
* | |||
* @param tagId | |||
* @return | |||
* @throws WxErrorException | |||
* @param tagId 标签id | |||
*/ | |||
WxCpTagGetResult get(String tagId) throws WxErrorException; | |||
@@ -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<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) { | |||
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<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 | |||
@@ -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; | |||
/** | |||
* <pre> | |||
@@ -68,7 +70,7 @@ public class WxCpTagServiceImplTest { | |||
@Test(dependsOnMethods = {"testListUsersByTagId", "testAddUsers2Tag", "testListAll", "testUpdate", "testCreate"}) | |||
public void testRemoveUsersFromTag() throws Exception { | |||
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)); | |||
} | |||