-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
490 additions
and
0 deletions.
There are no files selected for viewing
82 changes: 82 additions & 0 deletions
82
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpOaWeDocService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
package me.chanjar.weixin.cp.api; | ||
|
||
import lombok.NonNull; | ||
import me.chanjar.weixin.common.error.WxErrorException; | ||
import me.chanjar.weixin.cp.bean.WxCpBaseResp; | ||
import me.chanjar.weixin.cp.bean.oa.doc.*; | ||
|
||
/** | ||
* 企业微信文档相关接口. | ||
* https://developer.work.weixin.qq.com/document/path/97392 | ||
* | ||
* @author Hugo | ||
*/ | ||
public interface WxCpOaWeDocService { | ||
|
||
/** | ||
* 新建文档 | ||
* 该接口用于新建文档和表格,新建收集表可前往 收集表管理 查看。 | ||
* <p> | ||
* 请求方式:POST(HTTPS) | ||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/create_doc?access_token=ACCESS_TOKEN | ||
* | ||
* @param request 新建文档对应请求参数 | ||
* @return url 新建文档的访问链接 | ||
* @return docid 新建文档的docid | ||
* @throws WxErrorException the wx error exception | ||
*/ | ||
WxCpDocCreateData docCreate(@NonNull WxCpDocCreateRequest request) throws WxErrorException; | ||
|
||
/** | ||
* 重命名文档/收集表 | ||
* 该接口用于对指定文档/收集表进行重命名。 | ||
* <p> | ||
* 请求方式:POST(HTTPS) | ||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/rename_doc?access_token=ACCESS_TOKEN | ||
* | ||
* @param request 重命名文档/收集表 | ||
* @return wx cp base resp | ||
* @throws WxErrorException the wx error exception | ||
*/ | ||
WxCpBaseResp docRename(@NonNull WxCpDocRenameRequest request) throws WxErrorException; | ||
|
||
/** | ||
* 删除文档/收集表 | ||
* 该接口用于删除指定文档/收集表。 | ||
* <p> | ||
* 请求方式:POST(HTTPS) | ||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/del_doc?access_token=ACCESS_TOKEN | ||
* | ||
* @param docId 文档docid(docid、formid只能填其中一个) | ||
* @param formId 收集表id(docid、formid只能填其中一个) | ||
* @return wx cp base resp | ||
* @throws WxErrorException the wx error exception | ||
*/ | ||
WxCpBaseResp docDelete(String docId, String formId) throws WxErrorException; | ||
|
||
/** | ||
* 获取文档基础信息 | ||
* 该接口用于获取指定文档的基础信息。 | ||
* <p> | ||
* 请求方式:POST(HTTPS) | ||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/get_doc_base_info?access_token=ACCESS_TOKEN | ||
* | ||
* @param docId 文档docid | ||
* @return wx cp doc info | ||
* @throws WxErrorException the wx error exception | ||
*/ | ||
WxCpDocInfo docInfo(@NonNull String docId) throws WxErrorException; | ||
|
||
/** | ||
* 分享文档 | ||
* 该接口用于获取文档的分享链接。 | ||
* <p> | ||
* 请求方式:POST(HTTPS) | ||
* 请求地址: https://qyapi.weixin.qq.com/cgi-bin/wedoc/doc_share?access_token=ACCESS_TOKEN | ||
* | ||
* @param docId 文档docid | ||
* @return url 文档分享链接 | ||
* @throws WxErrorException the wx error exception | ||
*/ | ||
WxCpDocShare docShare(@NonNull String docId) throws WxErrorException; | ||
} |
66 changes: 66 additions & 0 deletions
66
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaWeDocServiceImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package me.chanjar.weixin.cp.api.impl; | ||
|
||
import com.google.gson.JsonObject; | ||
import lombok.NonNull; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import me.chanjar.weixin.common.error.WxErrorException; | ||
import me.chanjar.weixin.cp.api.WxCpOaWeDocService; | ||
import me.chanjar.weixin.cp.api.WxCpService; | ||
import me.chanjar.weixin.cp.bean.WxCpBaseResp; | ||
import me.chanjar.weixin.cp.bean.oa.doc.*; | ||
|
||
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Oa.*; | ||
|
||
/** | ||
* 企业微信微盘接口实现类. | ||
* | ||
* @author Wang_Wong created on 2022-04-22 | ||
*/ | ||
@Slf4j | ||
@RequiredArgsConstructor | ||
public class WxCpOaWeDocServiceImpl implements WxCpOaWeDocService { | ||
private final WxCpService cpService; | ||
|
||
@Override | ||
public WxCpDocCreateData docCreate(@NonNull WxCpDocCreateRequest request) throws WxErrorException { | ||
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_CREATE_DOC); | ||
String responseContent = this.cpService.post(apiUrl, request.toJson()); | ||
return WxCpDocCreateData.fromJson(responseContent); | ||
} | ||
|
||
@Override | ||
public WxCpBaseResp docRename(@NonNull WxCpDocRenameRequest request) throws WxErrorException { | ||
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_RENAME_DOC); | ||
String responseContent = this.cpService.post(apiUrl, request.toJson()); | ||
return WxCpBaseResp.fromJson(responseContent); | ||
} | ||
|
||
@Override | ||
public WxCpBaseResp docDelete(String docId, String formId) throws WxErrorException { | ||
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_DEL_DOC); | ||
JsonObject jsonObject = new JsonObject(); | ||
jsonObject.addProperty("docid", docId); | ||
jsonObject.addProperty("formid", formId); | ||
String responseContent = this.cpService.post(apiUrl, jsonObject.toString()); | ||
return WxCpBaseResp.fromJson(responseContent); | ||
} | ||
|
||
@Override | ||
public WxCpDocInfo docInfo(@NonNull String docId) throws WxErrorException { | ||
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_GET_DOC_BASE_INFO); | ||
JsonObject jsonObject = new JsonObject(); | ||
jsonObject.addProperty("docid", docId); | ||
String responseContent = this.cpService.post(apiUrl, jsonObject.toString()); | ||
return WxCpDocInfo.fromJson(responseContent); | ||
} | ||
|
||
@Override | ||
public WxCpDocShare docShare(@NonNull String docId) throws WxErrorException { | ||
String apiUrl = this.cpService.getWxCpConfigStorage().getApiUrl(WEDOC_DOC_SHARE); | ||
JsonObject jsonObject = new JsonObject(); | ||
jsonObject.addProperty("docid", docId); | ||
String responseContent = this.cpService.post(apiUrl, jsonObject.toString()); | ||
return WxCpDocShare.fromJson(responseContent); | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/doc/WxCpDocCreateData
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package me.chanjar.weixin.cp.bean.oa.doc; | ||
|
||
import com.google.gson.annotations.SerializedName; | ||
import lombok.Data; | ||
import me.chanjar.weixin.cp.bean.WxCpBaseResp; | ||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; | ||
|
||
import java.io.Serializable; | ||
|
||
/** | ||
* 新建空间信息. | ||
* | ||
* @author Wang_Wong | ||
*/ | ||
@Data | ||
public class WxCpDocCreateData extends WxCpBaseResp implements Serializable { | ||
private static final long serialVersionUID = -5028321625242879581L; | ||
|
||
/** | ||
* 新建文档的访问链接 | ||
*/ | ||
@SerializedName("url") | ||
private String url; | ||
|
||
/** | ||
* 新建文档的docid | ||
*/ | ||
@SerializedName("docid") | ||
private String docId; | ||
|
||
/** | ||
* From json wx cp space create data. | ||
* | ||
* @param json the json | ||
* @return the wx cp space create data | ||
*/ | ||
public static WxCpDocCreateData fromJson(String json) { | ||
return WxCpGsonBuilder.create().fromJson(json, WxCpDocCreateData.class); | ||
} | ||
|
||
public String toJson() { | ||
return WxCpGsonBuilder.create().toJson(this); | ||
} | ||
|
||
} |
71 changes: 71 additions & 0 deletions
71
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/doc/WxCpDocCreateRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
package me.chanjar.weixin.cp.bean.oa.doc; | ||
|
||
import com.google.gson.annotations.SerializedName; | ||
import lombok.*; | ||
import lombok.experimental.Accessors; | ||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; | ||
|
||
import java.io.Serializable; | ||
import java.util.List; | ||
|
||
/** | ||
* 新建文档请求. | ||
*/ | ||
@Data | ||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@Accessors(chain = true) | ||
public class WxCpDocCreateRequest implements Serializable { | ||
private static final long serialVersionUID = -4960239393895454138L; | ||
|
||
/** | ||
* 空间spaceid。若指定spaceid,则fatherid也要同时指定 | ||
*/ | ||
@SerializedName("spaceid") | ||
private String spaceId; | ||
|
||
/** | ||
* 父目录fileid, 在根目录时为空间spaceid | ||
*/ | ||
@SerializedName("fatherid") | ||
private String fatherId; | ||
|
||
/** | ||
* 文档类型, 3:文档 4:表格 | ||
*/ | ||
@SerializedName("doc_type") | ||
private Integer docType; | ||
|
||
/** | ||
* 文档名字(注意:文件名最多填255个字符, 超过255个字符会被截断) | ||
*/ | ||
@SerializedName("doc_name") | ||
private String docName; | ||
|
||
/** | ||
* 文档管理员userid | ||
*/ | ||
@SerializedName("admin_users") | ||
private List<String> adminUsers; | ||
|
||
/** | ||
* From json wx cp space create request. | ||
* | ||
* @param json the json | ||
* @return the wx cp space create request | ||
*/ | ||
public static WxCpDocCreateRequest fromJson(String json) { | ||
return WxCpGsonBuilder.create().fromJson(json, WxCpDocCreateRequest.class); | ||
} | ||
|
||
/** | ||
* To json string. | ||
* | ||
* @return the string | ||
*/ | ||
public String toJson() { | ||
return WxCpGsonBuilder.create().toJson(this); | ||
} | ||
|
||
} |
98 changes: 98 additions & 0 deletions
98
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/doc/WxCpDocInfo.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
package me.chanjar.weixin.cp.bean.oa.doc; | ||
|
||
import com.google.gson.annotations.SerializedName; | ||
import lombok.Data; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import me.chanjar.weixin.cp.bean.WxCpBaseResp; | ||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder; | ||
|
||
import java.io.Serializable; | ||
|
||
/** | ||
* 获取空间信息. | ||
* | ||
* @author Wang_Wong | ||
*/ | ||
@Data | ||
public class WxCpDocInfo extends WxCpBaseResp implements Serializable { | ||
private static final long serialVersionUID = -5028321623142879581L; | ||
|
||
@SerializedName("doc_base_info") | ||
private DocInfo docBaseInfo; | ||
|
||
/** | ||
* The type Space info. | ||
*/ | ||
@Getter | ||
@Setter | ||
public static class DocInfo implements Serializable { | ||
private static final long serialVersionUID = -4860239393895754598L; | ||
|
||
/** | ||
* 文档docid | ||
*/ | ||
@SerializedName("docid") | ||
private String docId; | ||
|
||
/** | ||
* 文档名字 | ||
*/ | ||
@SerializedName("doc_name") | ||
private String docName; | ||
|
||
/** | ||
* 文档创建时间 | ||
*/ | ||
@SerializedName("create_time") | ||
private Long createTime; | ||
|
||
/** | ||
* 文档最后修改时间 | ||
*/ | ||
@SerializedName("modify_time") | ||
private Long modifyTime; | ||
|
||
/** | ||
* 3: 文档 4: 表格 | ||
*/ | ||
@SerializedName("doc_type") | ||
private Integer docType; | ||
|
||
/** | ||
* From json space info. | ||
* | ||
* @param json the json | ||
* @return the space info | ||
*/ | ||
public static DocInfo fromJson(String json) { | ||
return WxCpGsonBuilder.create().fromJson(json, DocInfo.class); | ||
} | ||
|
||
/** | ||
* To json string. | ||
* | ||
* @return the string | ||
*/ | ||
public String toJson() { | ||
return WxCpGsonBuilder.create().toJson(this); | ||
} | ||
|
||
} | ||
|
||
|
||
/** | ||
* From json wx cp space info. | ||
* | ||
* @param json the json | ||
* @return the wx cp space info | ||
*/ | ||
public static WxCpDocInfo fromJson(String json) { | ||
return WxCpGsonBuilder.create().fromJson(json, WxCpDocInfo.class); | ||
} | ||
|
||
public String toJson() { | ||
return WxCpGsonBuilder.create().toJson(this); | ||
} | ||
|
||
} |
Oops, something went wrong.