diff --git a/CHANGE.md b/CHANGE.md
index 1ec9c099..8316f902 100644
--- a/CHANGE.md
+++ b/CHANGE.md
@@ -355,4 +355,6 @@
* 2015-06-26
- + 将微信支付模块移到base工程
\ No newline at end of file
+ + 将微信支付模块移到base工程
+
+ + **weixin4j-qy**: 管理成员新增头像参数
\ No newline at end of file
diff --git a/weixin4j-qy/CHANGE.md b/weixin4j-qy/CHANGE.md
index e36e42dd..a7068f15 100644
--- a/weixin4j-qy/CHANGE.md
+++ b/weixin4j-qy/CHANGE.md
@@ -64,4 +64,8 @@
* 2015-06-24
- + 新增userid与openid互换接口
\ No newline at end of file
+ + 新增userid与openid互换接口
+
+* 2015-06-26
+
+ + 管理成员新增头像参数
\ No newline at end of file
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
index 33119947..1a287f4f 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/WeixinProxy.java
@@ -392,6 +392,24 @@ public class WeixinProxy {
return userApi.createUser(user);
}
+ /**
+ * 创建成员
+ *
+ * @param user
+ * 成员对象
+ * @param avatar
+ * 头像文件
+ * @see com.foxinmy.weixin4j.qy.model.User
+ * @see 创建成员说明
+ * @see com.foxinmy.weixin4j.qy.api.UserApi
+ * @return 处理结果
+ * @throws WeixinException
+ */
+ public JsonResult createUser(User user, File avatar) throws WeixinException {
+ return userApi.createUser(user, avatar);
+ }
+
/**
* 更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
*
@@ -408,6 +426,24 @@ public class WeixinProxy {
return userApi.updateUser(user);
}
+ /**
+ * 更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
+ *
+ * @param user
+ * 成员对象
+ * @param avatar
+ * 头像文件
+ * @see com.foxinmy.weixin4j.qy.model.User
+ * @see 更新成员说明
+ * @see com.foxinmy.weixin4j.qy.api.UserApi
+ * @return 处理结果
+ * @throws WeixinException
+ */
+ public JsonResult updateUser(User user, File avatar) throws WeixinException {
+ return userApi.updateUser(user, avatar);
+ }
+
/**
* 获取成员
*
@@ -852,8 +888,8 @@ public class WeixinProxy {
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E6%8E%A5%E5%8F%A3#.E8.8E.B7.E5.8F.96.E5.BC.82.E6.AD.A5.E4.BB.BB.E5.8A.A1.E7.BB.93.E6.9E.9C">获取异步任务执行结果
* @throws WeixinException
*/
- public BatchResult getresult(String jobId) throws WeixinException {
- return batchApi.getresult(jobId);
+ public BatchResult getBatchResult(String jobId) throws WeixinException {
+ return batchApi.getBatchResult(jobId);
}
/**
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/BatchApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/BatchApi.java
index 5d55ecdd..1c63f8cb 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/BatchApi.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/BatchApi.java
@@ -161,7 +161,7 @@ public class BatchApi extends QyApi {
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E6%8E%A5%E5%8F%A3#.E8.8E.B7.E5.8F.96.E5.BC.82.E6.AD.A5.E4.BB.BB.E5.8A.A1.E7.BB.93.E6.9E.9C">获取异步任务执行结果
* @throws WeixinException
*/
- public BatchResult getresult(String jobId) throws WeixinException {
+ public BatchResult getBatchResult(String jobId) throws WeixinException {
Token token = tokenHolder.getToken();
String batch_getresult_uri = getRequestUri("batch_getresult_uri");
WeixinResponse response = weixinClient.get(String.format(batch_getresult_uri,
diff --git a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/UserApi.java b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/UserApi.java
index f421dff3..a2efa871 100644
--- a/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/UserApi.java
+++ b/weixin4j-qy/src/main/java/com/foxinmy/weixin4j/qy/api/UserApi.java
@@ -1,5 +1,7 @@
package com.foxinmy.weixin4j.qy.api;
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -28,10 +30,12 @@ import com.foxinmy.weixin4j.token.TokenHolder;
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%88%90%E5%91%98">管理成员说明
*/
public class UserApi extends QyApi {
+ private final MediaApi mediaApi;
private final TokenHolder tokenHolder;
public UserApi(TokenHolder tokenHolder) {
this.tokenHolder = tokenHolder;
+ this.mediaApi = new MediaApi(tokenHolder);
}
/**
@@ -47,7 +51,25 @@ public class UserApi extends QyApi {
*/
public JsonResult createUser(User user) throws WeixinException {
String user_create_uri = getRequestUri("user_create_uri");
- return excute(user_create_uri, user);
+ return excute(user_create_uri, user, null);
+ }
+
+ /**
+ * 创建成员
+ *
+ * @param user
+ * 成员对象
+ * @param avatar
+ * 头像文件
+ * @see com.foxinmy.weixin4j.qy.model.User
+ * @see 创建成员说明
+ * @return 处理结果
+ * @throws WeixinException
+ */
+ public JsonResult createUser(User user, File avatar) throws WeixinException {
+ String user_create_uri = getRequestUri("user_create_uri");
+ return excute(user_create_uri, user, avatar);
}
/**
@@ -63,10 +85,29 @@ public class UserApi extends QyApi {
*/
public JsonResult updateUser(User user) throws WeixinException {
String user_update_uri = getRequestUri("user_update_uri");
- return excute(user_update_uri, user);
+ return excute(user_update_uri, user, null);
}
- private JsonResult excute(String uri, User user) throws WeixinException {
+ /**
+ * 更新用户(如果非必须的字段未指定 则不更新该字段之前的设置值)
+ *
+ * @param user
+ * 成员对象
+ * @param avatar
+ * 头像文件
+ * @see com.foxinmy.weixin4j.qy.model.User
+ * @see 更新成员说明
+ * @return 处理结果
+ * @throws WeixinException
+ */
+ public JsonResult updateUser(User user, File avatar) throws WeixinException {
+ String user_update_uri = getRequestUri("user_update_uri");
+ return excute(user_update_uri, user, avatar);
+ }
+
+ private JsonResult excute(String uri, User user, File avatar)
+ throws WeixinException {
JSONObject obj = (JSONObject) JSON.toJSON(user);
Object extattr = obj.remove("extattr");
if (extattr != null) {
@@ -74,6 +115,13 @@ public class UserApi extends QyApi {
attrs.put("attrs", extattr);
obj.put("extattr", attrs);
}
+ if (avatar != null) {
+ try {
+ obj.put("avatar_mediaid", mediaApi.uploadMedia(avatar));
+ } catch (IOException e) {
+ throw new WeixinException(e);
+ }
+ }
Token token = tokenHolder.getToken();
WeixinResponse response = weixinClient.post(
String.format(uri, token.getAccessToken()), obj.toJSONString());
diff --git a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/BatchTest.java b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/BatchTest.java
index 3c22448e..c2390399 100644
--- a/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/BatchTest.java
+++ b/weixin4j-qy/src/test/java/com/foxinmy/weixin4j/qy/test/BatchTest.java
@@ -55,7 +55,7 @@ public class BatchTest extends TokenTest {
@Test
public void getresult() throws WeixinException {
BatchResult result = batchApi
- .getresult("PVucPBfEapLnvQZ1ru2Vdw3Dbl-jXs3AEQdS24cqmI0");
+ .getBatchResult("PVucPBfEapLnvQZ1ru2Vdw3Dbl-jXs3AEQdS24cqmI0");
System.err.println(result);
}
}