1
0
mirror of synced 2025-12-24 02:57:55 +08:00

#1078 完善企业微信外部联系人相关接口

- 完成ExternalContact基础三个接口
- 外部联系人变更事件的消息解析
- 外部联系人的属性,增加标记公司名称和标记电话号码,还有tag分类
- 企业微信API url修改优化
This commit is contained in:
曹祖鹏
2019-06-18 18:01:38 +08:00
committed by Binary Wang
parent b2cf45297d
commit 90b5ca56c2
15 changed files with 393 additions and 28 deletions

View File

@@ -52,6 +52,8 @@ public class ApiTestModule implements Module {
protected String tagId;
protected String externalUserId;
public String getUserId() {
return this.userId;
}
@@ -76,12 +78,22 @@ public class ApiTestModule implements Module {
this.tagId = tagId;
}
public String getExternalUserId() {
return externalUserId;
}
public void setExternalUserId(String externalUserId) {
this.externalUserId = externalUserId;
}
@Override
public String toString() {
return super.toString() + " > WxXmlCpConfigStorage{" +
"userId='" + this.userId + '\'' +
", departmentId='" + this.departmentId + '\'' +
", tagId='" + this.tagId + '\'' +
", externalUserId='" + this.externalUserId + '\'' +
'}';
}
}

View File

@@ -0,0 +1,45 @@
package me.chanjar.weixin.cp.api.impl;
import com.google.inject.Inject;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.ApiTestModule;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpUserExternalContactInfo;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
import java.util.List;
import static org.testng.Assert.assertNotNull;
@Guice(modules = ApiTestModule.class)
public class WxCpExternalContactServiceImplTest {
@Inject
private WxCpService wxCpService;
@Inject
protected ApiTestModule.WxXmlCpInMemoryConfigStorage configStorage;
private String userId = "someone" + System.currentTimeMillis();
@Test
public void testGetExternalContact() throws WxErrorException {
String externalUserId = this.configStorage.getExternalUserId();
WxCpUserExternalContactInfo result = this.wxCpService.getExternalContactService().getExternalContact(externalUserId);
System.out.println(result);
assertNotNull(result);
}
@Test
public void testListExternalContacts() throws WxErrorException {
String userId = this.configStorage.getUserId();
List<String> ret = this.wxCpService.getExternalContactService().listExternalContacts(userId);
System.out.println(ret);
assertNotNull(ret);
}
@Test
public void testListExternalWithPermission() throws WxErrorException {
List<String> ret = this.wxCpService.getExternalContactService().listFollowUser();
System.out.println(ret);
assertNotNull(ret);
}
}

View File

@@ -93,7 +93,7 @@ public class WxCpUserServiceImplTest {
@Test
public void testInvite() throws Exception {
WxCpInviteResult result = this.wxCpService.getUserService().invite(
Lists.newArrayList(userId), null,null);
Lists.newArrayList(userId), null, null);
System.out.println(result);
}
@@ -111,10 +111,5 @@ public class WxCpUserServiceImplTest {
assertNotNull(result);
}
@Test
public void testGetExternalContact() throws WxErrorException {
WxCpUserExternalContactInfo result = this.wxCpService.getUserService().getExternalContact(userId);
System.out.println(result);
assertNotNull(result);
}
}

View File

@@ -1,6 +1,7 @@
package me.chanjar.weixin.cp.bean;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.cp.constant.WxCpConsts;
import org.testng.annotations.Test;
import static me.chanjar.weixin.cp.constant.WxCpConsts.EventType.TASKCARD_CLICK;
@@ -106,7 +107,7 @@ public class WxCpXmlMessageTest {
"<Count>2</Count>" +
"</SendPicsInfo>" +
"</xml>";
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml.replace("</PicList><PicList>",""));
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml.replace("</PicList><PicList>", ""));
assertEquals(wxMessage.getToUserName(), "wx45a0972125658be9");
assertEquals(wxMessage.getFromUserName(), "xiaohe");
assertEquals(wxMessage.getCreateTime(), new Long(1502012364L));
@@ -173,4 +174,52 @@ public class WxCpXmlMessageTest {
assertEquals(wxMessage.getEventKey(), "key111");
assertEquals(wxMessage.getTaskId(), "taskid111");
}
public void testAddExternalUserEvent() {
String xml = "<xml>" +
"<ToUserName><![CDATA[toUser]]></ToUserName>" +
"<FromUserName><![CDATA[sys]]></FromUserName>" +
"<CreateTime>1403610513</CreateTime>" +
"<MsgType><![CDATA[event]]></MsgType>" +
"<Event><![CDATA[change_external_contact]]></Event>" +
"<ChangeType><![CDATA[add_external_contact]]></ChangeType>" +
"<UserID><![CDATA[zhangsan]]></UserID>" +
"<ExternalUserID><![CDATA[woAJ2GCAAAXtWyujaWJHDDGi0mACH71w]]></ExternalUserID>" +
"<State><![CDATA[teststate]]></State>" +
"<WelcomeCode><![CDATA[WELCOMECODE]]></WelcomeCode>" +
"</xml >";
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml);
assertEquals(wxMessage.getToUserName(), "toUser");
assertEquals(wxMessage.getFromUserName(), "sys");
assertEquals(wxMessage.getCreateTime(), Long.valueOf(1403610513L));
assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT);
assertEquals(wxMessage.getEvent(), WxCpConsts.EventType.CHANGE_EXTERNAL_CONTACT);
assertEquals(wxMessage.getChangeType(), WxCpConsts.ExternalContactChangeType.ADD_EXTERNAL_CONTACT);
assertEquals(wxMessage.getExternalUserID(), "woAJ2GCAAAXtWyujaWJHDDGi0mACH71w");
assertEquals(wxMessage.getState(), "teststate");
assertEquals(wxMessage.getWelcomeCode(), "WELCOMECODE");
}
public void testDelExternalUserEvent() {
String xml = "<xml>" +
"<ToUserName><![CDATA[toUser]]></ToUserName>" +
"<FromUserName><![CDATA[sys]]></FromUserName>" +
"<CreateTime>1403610513</CreateTime>" +
"<MsgType><![CDATA[event]]></MsgType>" +
"<Event><![CDATA[change_external_contact]]></Event>" +
"<ChangeType><![CDATA[del_external_contact]]></ChangeType>" +
"<UserID><![CDATA[zhangsan]]></UserID>" +
"<ExternalUserID><![CDATA[woAJ2GCAAAXtWyujaWJHDDGi0mACH71w]]></ExternalUserID>" +
"</xml>";
WxCpXmlMessage wxMessage = WxCpXmlMessage.fromXml(xml);
assertEquals(wxMessage.getToUserName(), "toUser");
assertEquals(wxMessage.getFromUserName(), "sys");
assertEquals(wxMessage.getCreateTime(), Long.valueOf(1403610513L));
assertEquals(wxMessage.getMsgType(), WxConsts.XmlMsgType.EVENT);
assertEquals(wxMessage.getEvent(), WxCpConsts.EventType.CHANGE_EXTERNAL_CONTACT);
assertEquals(wxMessage.getChangeType(), WxCpConsts.ExternalContactChangeType.DEL_EXTERNAL_CONTACT);
assertEquals(wxMessage.getUserId(), "zhangsan");
assertEquals(wxMessage.getExternalUserID(), "woAJ2GCAAAXtWyujaWJHDDGi0mACH71w");
}
}