#541 企业号增加实现管理标签的(获取标签成员)接口

* 定义《企业号应用》的bean

* 增加《获取企业号应用》接口实现

* 增加获取测试企业号应用信息测试类

* tag service增加获取标签成员方法
http://qydev.weixin.qq.com/wiki/index.php?title=管理标签
This commit is contained in:
huansinho 2018-04-16 11:53:35 +08:00 committed by Binary Wang
parent 558f4e7880
commit 74faa2a03e
4 changed files with 110 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package me.chanjar.weixin.cp.api;
import me.chanjar.weixin.common.exception.WxErrorException;
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 java.util.List;
@ -63,4 +64,16 @@ public interface WxCpTagService {
* @param userIds 用户id列表
*/
WxCpTagAddOrRemoveUsersResult removeUsersFromTag(String tagId, List<String> userIds) throws WxErrorException;
/**
* 获取标签成员
* 对应: http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 中的get接口
*
* @param tagId
* @return
* @throws WxErrorException
*/
WxCpTagGetResult get(String tagId) throws WxErrorException;
}

View File

@ -7,6 +7,7 @@ import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.WxCpTagService;
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 me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
@ -113,4 +114,18 @@ public class WxCpTagServiceImpl implements WxCpTagService {
return WxCpTagAddOrRemoveUsersResult.fromJson(this.mainService.post(url, jsonObject.toString()));
}
@Override
public WxCpTagGetResult get(String tagId) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/tag/get";
if (tagId != null) {
url += "?tagId=" + tagId;
} else {
throw new IllegalArgumentException("缺少tagId参数");
}
String responseContent = this.mainService.get(url, null);
return WxCpTagGetResult.fromJson(responseContent);
}
}

View File

@ -0,0 +1,57 @@
package me.chanjar.weixin.cp.bean;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import java.io.Serializable;
import java.util.List;
/**
* <pre>
* 管理企业号应用-测试
* Created by huansinho on 2018/4/16.
* </pre>
*
* @author <a href="https://github.com/huansinho">huansinho</a>
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WxCpTagGetResult implements Serializable {
@SerializedName("errcode")
private Integer errcode;
@SerializedName("errmsg")
private String errmsg;
/**
* 用户列表
*/
@SerializedName("userlist")
private List<WxCpUser> userlist;
/**
* 部门列表
*/
@SerializedName("partylist")
private List<Integer> partylist;
/**
* 标签名称
*/
@SerializedName("tagname")
private String tagname;
public static WxCpTagGetResult fromJson(String json) {
return WxCpGsonBuilder.create().fromJson(json, WxCpTagGetResult.class);
}
public String toJson() {
return WxCpGsonBuilder.create().toJson(this);
}
}

View File

@ -2,15 +2,20 @@ package me.chanjar.weixin.cp.api.impl;
import com.google.common.base.Splitter;
import com.google.inject.Inject;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.cp.api.ApiTestModule;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.WxCpTagService;
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 java.util.List;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.*;
/**
@ -72,4 +77,24 @@ public class WxCpTagServiceImplTest {
this.wxService.getTagService().delete(this.tagId);
}
@Test
public void testGet() throws WxErrorException {
String apiResultJson = "{\"errcode\": 0,\"errmsg\": \"ok\",\"userlist\": [{\"userid\": \"0124035\",\"name\": \"王五\"},{\"userid\": \"0114035\",\"name\": \"梦雪\"}],\"partylist\": [9576,9567,9566],\"tagname\": \"测试标签-001\"}";
WxCpService wxService = mock(WxCpService.class);
when(wxService.get("https://qyapi.weixin.qq.com/cgi-bin/tag/get?tagId=150", null)).thenReturn(apiResultJson);
when(wxService.getTagService()).thenReturn(new WxCpTagServiceImpl(wxService));
WxCpTagService wxCpTagService = wxService.getTagService();
WxCpTagGetResult wxCpTagGetResult = wxCpTagService.get(String.valueOf(150));
assertEquals(0, wxCpTagGetResult.getErrcode().intValue());
assertEquals(2, wxCpTagGetResult.getUserlist().size());
assertEquals(3, wxCpTagGetResult.getPartylist().size());
assertEquals("测试标签-001", wxCpTagGetResult.getTagname());
}
}