mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +08:00
🆕【企业微信】增加获取企业假期管理配置的接口
This commit is contained in:
parent
07c3545105
commit
7992ee0d3d
@ -10,7 +10,7 @@ import java.util.List;
|
||||
/**
|
||||
* 企业微信OA相关接口.
|
||||
*
|
||||
* @author Element
|
||||
* @author Element & Wang_Wong
|
||||
* @date 2019-04-06 10:52
|
||||
*/
|
||||
public interface WxCpOaService {
|
||||
@ -107,6 +107,7 @@ public interface WxCpOaService {
|
||||
*/
|
||||
WxCpApprovalInfo getApprovalInfo(@NonNull Date startTime, @NonNull Date endTime) throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 获取审批申请详情
|
||||
@ -122,6 +123,21 @@ public interface WxCpOaService {
|
||||
*/
|
||||
WxCpApprovalDetailResult getApprovalDetail(@NonNull String spNo) throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* 获取企业假期管理配置
|
||||
* 企业可通过审批应用或自建应用Secret调用本接口,获取可见范围内员工的“假期管理”配置,包括:各个假期的id、名称、请假单位、时长计算方式、发放规则等。
|
||||
* 第三方应用可获取应用可见范围内员工的“假期管理”配置,包括:各个假期的id、名称、请假单位、时长计算方式、发放规则等。
|
||||
*
|
||||
* 请求方式:GET(HTTPS)
|
||||
* 请求地址:https://qyapi.weixin.qq.com/cgi-bin/oa/vacation/getcorpconf?access_token=ACCESS_TOKEN
|
||||
*
|
||||
* @return
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
WxCpCorpConfInfo getCorpConf() throws WxErrorException;
|
||||
|
||||
|
||||
/**
|
||||
* 获取公费电话拨打记录
|
||||
*
|
||||
|
@ -386,7 +386,7 @@ public interface WxCpService extends WxService {
|
||||
WxCpMessageService getMessageService();
|
||||
|
||||
/**
|
||||
* Gets oa service.
|
||||
* 获取OA相关接口的服务类对象.
|
||||
*
|
||||
* @return the oa service
|
||||
*/
|
||||
|
@ -9,11 +9,9 @@ import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import me.chanjar.weixin.cp.api.WxCpOaAgentService;
|
||||
import me.chanjar.weixin.cp.api.WxCpService;
|
||||
import me.chanjar.weixin.cp.bean.living.WxCpLivingInfo;
|
||||
import me.chanjar.weixin.cp.bean.oa.selfagent.WxCpOpenApprovalData;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Living.GET_USER_ALL_LIVINGID;
|
||||
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Oa.GET_OPEN_APPROVAL_DATA;
|
||||
|
||||
/**
|
||||
|
@ -165,6 +165,13 @@ public class WxCpOaServiceImpl implements WxCpOaService {
|
||||
return WxCpGsonBuilder.create().fromJson(responseContent, WxCpApprovalDetailResult.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxCpCorpConfInfo getCorpConf() throws WxErrorException {
|
||||
final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CORP_CONF);
|
||||
String responseContent = this.mainService.get(url, null);
|
||||
return WxCpCorpConfInfo.fromJson(responseContent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WxCpDialRecord> getDialRecord(Date startTime, Date endTime, Integer offset, Integer limit)
|
||||
throws WxErrorException {
|
||||
|
@ -0,0 +1,74 @@
|
||||
package me.chanjar.weixin.cp.bean.oa;
|
||||
|
||||
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;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 企业假期管理配置信息.
|
||||
*
|
||||
* @author Wang_Wong
|
||||
*/
|
||||
@Data
|
||||
public class WxCpCorpConfInfo extends WxCpBaseResp implements Serializable {
|
||||
private static final long serialVersionUID = 7387181805254287157L;
|
||||
|
||||
@SerializedName("lists")
|
||||
private List<CorpConf> lists;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class CorpConf implements Serializable {
|
||||
private static final long serialVersionUID = -5696099236344075582L;
|
||||
|
||||
@SerializedName("id")
|
||||
private Integer id;
|
||||
|
||||
@SerializedName("name")
|
||||
private String name;
|
||||
|
||||
@SerializedName("time_attr")
|
||||
private Integer timeAttr;
|
||||
|
||||
@SerializedName("duration_type")
|
||||
private Integer durationType;
|
||||
|
||||
@SerializedName("quota_attr")
|
||||
private QuotaAttr quotaAttr;
|
||||
|
||||
@SerializedName("perday_duration")
|
||||
private Integer perdayDuration;
|
||||
|
||||
}
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public static class QuotaAttr implements Serializable {
|
||||
private static final long serialVersionUID = -5696099236344075582L;
|
||||
|
||||
@SerializedName("type")
|
||||
private Integer type;
|
||||
|
||||
@SerializedName("autoreset_time")
|
||||
private Integer autoresetTime;
|
||||
|
||||
@SerializedName("autoreset_duration")
|
||||
private Integer autoresetDuration;
|
||||
|
||||
}
|
||||
|
||||
public static WxCpCorpConfInfo fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxCpCorpConfInfo.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
|
||||
}
|
@ -112,6 +112,11 @@ public interface WxCpApiPathConsts {
|
||||
String APPLY_EVENT = "/cgi-bin/oa/applyevent";
|
||||
String GET_APPROVAL_INFO = "/cgi-bin/oa/getapprovalinfo";
|
||||
String GET_APPROVAL_DETAIL = "/cgi-bin/oa/getapprovaldetail";
|
||||
String GET_APPROVAL_DATA = "/cgi-bin/oa/getapprovaldata";
|
||||
|
||||
String GET_CORP_CONF = "/cgi-bin/oa/vacation/getcorpconf";
|
||||
String GET_USER_VACATION_QUOTA = "/cgi-bin/oa/vacation/getuservacationquota";
|
||||
String SET_ONE_USER_QUOTA = "/cgi-bin/oa/vacation/setoneuserquota";
|
||||
|
||||
/**
|
||||
* 公费电话
|
||||
|
@ -1,15 +1,12 @@
|
||||
package me.chanjar.weixin.cp.api.impl;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.inject.Inject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import me.chanjar.weixin.cp.api.ApiTestModule;
|
||||
import me.chanjar.weixin.cp.api.WxCpService;
|
||||
import me.chanjar.weixin.cp.bean.oa.*;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
import org.testng.annotations.Guice;
|
||||
import org.testng.annotations.Test;
|
||||
@ -25,9 +22,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
/**
|
||||
* 企业微信 OA数据接口 测试用例
|
||||
*
|
||||
* @author Element
|
||||
* @author Element & Wang_Wong
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Guice(modules = ApiTestModule.class)
|
||||
public class WxCpOaServiceImplTest {
|
||||
|
||||
@ -171,4 +168,15 @@ public class WxCpOaServiceImplTest {
|
||||
@Test
|
||||
public void testGetDialRecord() {
|
||||
}
|
||||
|
||||
/**
|
||||
* https://developer.work.weixin.qq.com/document/path/93375
|
||||
* @throws WxErrorException
|
||||
*/
|
||||
@Test
|
||||
public void testGetCorpConf() throws WxErrorException{
|
||||
WxCpCorpConfInfo corpConf = this.wxService.getOaService().getCorpConf();
|
||||
log.info(corpConf.toJson());
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user