From 74faa2a03e37d6d4d5affe4e33fb7a57e663c91b Mon Sep 17 00:00:00 2001 From: huansinho Date: Mon, 16 Apr 2018 11:53:35 +0800 Subject: [PATCH] =?UTF-8?q?#541=20=E4=BC=81=E4=B8=9A=E5=8F=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AE=9E=E7=8E=B0=E7=AE=A1=E7=90=86=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E7=9A=84=EF=BC=88=E8=8E=B7=E5=8F=96=E6=A0=87=E7=AD=BE=E6=88=90?= =?UTF-8?q?=E5=91=98=EF=BC=89=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 定义《企业号应用》的bean * 增加《获取企业号应用》接口实现 * 增加获取测试企业号应用信息测试类 * tag service增加获取标签成员方法 http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 --- .../chanjar/weixin/cp/api/WxCpTagService.java | 13 +++++ .../cp/api/impl/WxCpTagServiceImpl.java | 15 +++++ .../weixin/cp/bean/WxCpTagGetResult.java | 57 +++++++++++++++++++ .../cp/api/impl/WxCpTagServiceImplTest.java | 25 ++++++++ 4 files changed, 110 insertions(+) create mode 100644 weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagGetResult.java 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 c96318b8..1cffaf35 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 @@ -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 userIds) throws WxErrorException; + + + /** + * 获取标签成员 + * 对应: http://qydev.weixin.qq.com/wiki/index.php?title=管理标签 中的get接口 + * + * @param tagId + * @return + * @throws WxErrorException + */ + 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 ff995d97..b6f64b62 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 @@ -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); + } } diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagGetResult.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagGetResult.java new file mode 100644 index 00000000..28cc4807 --- /dev/null +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpTagGetResult.java @@ -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; + +/** + *
+ *  管理企业号应用-测试
+ *  Created by huansinho on 2018/4/16.
+ * 
+ * + * @author huansinho + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WxCpTagGetResult implements Serializable { + + @SerializedName("errcode") + private Integer errcode; + + @SerializedName("errmsg") + private String errmsg; + + /** + * 用户列表 + */ + @SerializedName("userlist") + private List userlist; + + /** + * 部门列表 + */ + @SerializedName("partylist") + private List 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); + } + +} 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 94ac3b09..0a7a6d33 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 @@ -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()); + + + } + }