Merge pull request #198 from ajffdnt/develop

增加企业号异步任务接口
This commit is contained in:
Daniel Qian 2015-09-10 17:24:28 +08:00
commit cd3237d9cc
2 changed files with 67 additions and 18 deletions

View File

@ -556,4 +556,26 @@ public interface WxCpService {
* @param sessionManager * @param sessionManager
*/ */
void setSessionManager(WxSessionManager sessionManager); void setSessionManager(WxSessionManager sessionManager);
/**
* 上传部门列表覆盖企业号上的部门信息
* @param mediaId
* @throws WxErrorException
*/
String replaceParty(String mediaId) throws WxErrorException;
/**
* 上传用户列表覆盖企业号上的用户信息
* @param mediaId
* @throws WxErrorException
*/
String replaceUser(String mediaId) throws WxErrorException;
/**
* 获取异步任务结果
* @param joinId
* @return
* @throws WxErrorException
*/
String getTaskResult(String joinId) throws WxErrorException;
} }

View File

@ -1,13 +1,14 @@
package me.chanjar.weixin.cp.api; package me.chanjar.weixin.cp.api;
import com.google.gson.JsonArray; import java.io.File;
import com.google.gson.JsonElement; import java.io.IOException;
import com.google.gson.JsonObject; import java.io.InputStream;
import com.google.gson.JsonPrimitive; import java.io.StringReader;
import com.google.gson.internal.Streams; import java.math.BigDecimal;
import com.google.gson.reflect.TypeToken; import java.security.NoSuchAlgorithmException;
import com.google.gson.stream.JsonReader; import java.util.List;
import com.sun.media.sound.SoftTuning; import java.util.UUID;
import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.bean.WxAccessToken;
import me.chanjar.weixin.common.bean.WxJsapiSignature; import me.chanjar.weixin.common.bean.WxJsapiSignature;
import me.chanjar.weixin.common.bean.WxMenu; import me.chanjar.weixin.common.bean.WxMenu;
@ -21,13 +22,19 @@ import me.chanjar.weixin.common.util.RandomUtils;
import me.chanjar.weixin.common.util.StringUtils; import me.chanjar.weixin.common.util.StringUtils;
import me.chanjar.weixin.common.util.crypto.SHA1; import me.chanjar.weixin.common.util.crypto.SHA1;
import me.chanjar.weixin.common.util.fs.FileUtils; import me.chanjar.weixin.common.util.fs.FileUtils;
import me.chanjar.weixin.common.util.http.*; import me.chanjar.weixin.common.util.http.MediaDownloadRequestExecutor;
import me.chanjar.weixin.common.util.http.MediaUploadRequestExecutor;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor;
import me.chanjar.weixin.common.util.http.URIUtil;
import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.common.util.json.GsonHelper;
import me.chanjar.weixin.cp.bean.WxCpDepart; import me.chanjar.weixin.cp.bean.WxCpDepart;
import me.chanjar.weixin.cp.bean.WxCpMessage; import me.chanjar.weixin.cp.bean.WxCpMessage;
import me.chanjar.weixin.cp.bean.WxCpTag; import me.chanjar.weixin.cp.bean.WxCpTag;
import me.chanjar.weixin.cp.bean.WxCpUser; import me.chanjar.weixin.cp.bean.WxCpUser;
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
import org.apache.http.HttpHost; import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope; import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.auth.UsernamePasswordCredentials;
@ -43,14 +50,13 @@ import org.apache.http.impl.client.HttpClients;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.File; import com.google.gson.JsonArray;
import java.io.IOException; import com.google.gson.JsonElement;
import java.io.InputStream; import com.google.gson.JsonObject;
import java.io.StringReader; import com.google.gson.JsonPrimitive;
import java.math.BigDecimal; import com.google.gson.internal.Streams;
import java.security.NoSuchAlgorithmException; import com.google.gson.reflect.TypeToken;
import java.util.List; import com.google.gson.stream.JsonReader;
import java.util.UUID;
public class WxCpServiceImpl implements WxCpService { public class WxCpServiceImpl implements WxCpService {
@ -243,7 +249,6 @@ public class WxCpServiceImpl implements WxCpService {
public File mediaDownload(String media_id) throws WxErrorException { public File mediaDownload(String media_id) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get"; String url = "https://qyapi.weixin.qq.com/cgi-bin/media/get";
return execute(new MediaDownloadRequestExecutor(wxCpConfigStorage.getTmpDirFile()), url, "media_id=" + media_id); return execute(new MediaDownloadRequestExecutor(wxCpConfigStorage.getTmpDirFile()), url, "media_id=" + media_id);
} }
@ -650,6 +655,28 @@ public class WxCpServiceImpl implements WxCpService {
this.sessionManager = sessionManager; this.sessionManager = sessionManager;
} }
@Override
public String replaceParty(String mediaId) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/batch/replaceparty";
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("media_id", mediaId);
return post(url, jsonObject.toString());
}
@Override
public String replaceUser(String mediaId) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/batch/replaceuser";
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("media_id", mediaId);
return post(url, jsonObject.toString());
}
@Override
public String getTaskResult(String joinId) throws WxErrorException {
String url = "https://qyapi.weixin.qq.com/cgi-bin/batch/getresult?jobid="+joinId;
return get(url, null);
}
public File getTmpDirFile() { public File getTmpDirFile() {
return tmpDirFile; return tmpDirFile;
} }