Parcourir la source

钉钉接口地址配置

yingp il y a 5 ans
Parent
commit
c0770c8701

+ 15 - 15
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/AddrBookSdk.java

@@ -32,7 +32,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public OapiUserGetuserinfoResponse getUserInfo(String agentCode, String authCode) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getuserinfo");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/getuserinfo");
         OapiUserGetuserinfoRequest request = new OapiUserGetuserinfoRequest();
         request.setCode(authCode);
         request.setHttpMethod("GET");
@@ -49,7 +49,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public OapiUserGetResponse getUser(String agentCode, String userId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/get");
         OapiUserGetRequest req = new OapiUserGetRequest();
         req.setUserid(userId);
         req.setHttpMethod("GET");
@@ -65,7 +65,7 @@ public class AddrBookSdk extends BaseSdk {
      * @param req
      */
     public String createUser(String agentCode, OapiUserCreateRequest req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/create");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/create");
         OapiUserCreateResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
         assertOK(resp);
         return resp.getUserid();
@@ -78,7 +78,7 @@ public class AddrBookSdk extends BaseSdk {
      * @param req
      */
     public void updateUser(String agentCode, OapiUserUpdateRequest req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/update");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/update");
         OapiUserUpdateResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
         assertOK(resp);
     }
@@ -90,7 +90,7 @@ public class AddrBookSdk extends BaseSdk {
      * @param userId    人员ID
      */
     public void deleteUser(String agentCode, String userId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/delete");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/delete");
         OapiUserDeleteRequest req = new OapiUserDeleteRequest();
         req.setUserid(userId);
         req.setHttpMethod("GET");
@@ -106,7 +106,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public List<String> getUserIdList(String agentCode, long departmentId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/getDeptMember");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/getDeptMember");
         OapiUserGetDeptMemberRequest req = new OapiUserGetDeptMemberRequest();
         req.setDeptId(String.valueOf(departmentId));
         req.setHttpMethod("GET");
@@ -150,7 +150,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     private List<OapiUserSimplelistResponse.Userlist> getSimpleUserList(String agentCode, long departmentId, long offset, long size) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/simplelist");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/simplelist");
         OapiUserSimplelistRequest req = new OapiUserSimplelistRequest();
         req.setDepartmentId(departmentId);
         req.setOffset(offset);
@@ -210,7 +210,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     private List<OapiUserListbypageResponse.Userlist> getUserList(String agentCode, long departmentId, long offset, long size) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/listbypage");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/listbypage");
         OapiUserListbypageRequest req = new OapiUserListbypageRequest();
         req.setDepartmentId(departmentId);
         req.setOffset(offset);
@@ -229,7 +229,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public String getUserIdByMobile(String agentCode, String mobile) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/user/get_by_mobile");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/user/get_by_mobile");
         OapiUserGetByMobileRequest req = new OapiUserGetByMobileRequest();
         req.setMobile(mobile);
         OapiUserGetByMobileResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
@@ -245,7 +245,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return 部门ID
      */
     public Long createDepartment(String agentCode, OapiDepartmentCreateRequest req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/create");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/create");
         OapiDepartmentCreateResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
         assertOK(resp);
         return resp.getId();
@@ -259,7 +259,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public void updateDepartment(String agentCode, OapiDepartmentUpdateRequest req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/update");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/update");
         OapiDepartmentUpdateResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
         assertOK(resp);
     }
@@ -271,7 +271,7 @@ public class AddrBookSdk extends BaseSdk {
      * @param departmentId 部门ID
      */
     public void deleteDepartment(String agentCode, long departmentId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/delete");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/delete");
         OapiDepartmentDeleteRequest req = new OapiDepartmentDeleteRequest();
         req.setId(String.valueOf(departmentId));
         req.setHttpMethod("GET");
@@ -287,7 +287,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public List<Long> getSubDepartmentIdList(String agentCode, long departmentId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list_ids");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/list_ids");
         OapiDepartmentListIdsRequest req = new OapiDepartmentListIdsRequest();
         req.setId(String.valueOf(departmentId));
         req.setHttpMethod("GET");
@@ -304,7 +304,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public List<OapiDepartmentListResponse.Department> getDepartmentList(String agentCode, long departmentId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/list");
         OapiDepartmentListRequest req = new OapiDepartmentListRequest();
         req.setId(String.valueOf(departmentId));
         req.setFetchChild(true);
@@ -332,7 +332,7 @@ public class AddrBookSdk extends BaseSdk {
      * @return
      */
     public OapiDepartmentGetResponse getDepartmentDetail(String agentCode, long departmentId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/get");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/department/get");
         OapiDepartmentGetRequest req = new OapiDepartmentGetRequest();
         req.setId(String.valueOf(departmentId));
         req.setHttpMethod("GET");

+ 5 - 1
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/BaseSdk.java

@@ -39,6 +39,10 @@ public abstract class BaseSdk {
         return properties.getAgentMap();
     }
 
+    protected DingTalkProperties getProperties() {
+        return properties;
+    }
+
     protected void assertOK(TaobaoResponse resp) {
         if (!"0".equals(resp.getErrorCode()) && !"40103".equals(resp.getErrorCode())) {
             throw new DingTalkInvokeException(resp);
@@ -65,7 +69,7 @@ public abstract class BaseSdk {
             throw new RuntimeException("没有找到应用" + agentCode);
         }
         if (!accessTokenMap.containsKey(agent.getAppSecret()) || accessTokenMap.get(agent.getAppSecret()).expired()) {
-            DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
+            DefaultDingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/gettoken");
             OapiGettokenRequest request = new OapiGettokenRequest();
             request.setAppkey(agent.getAppKey());
             request.setAppsecret(agent.getAppSecret());

+ 1 - 1
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/MessageSdk.java

@@ -31,7 +31,7 @@ public class MessageSdk extends BaseSdk {
         if (null == agent) {
             throw new RuntimeException("没有找到应用" + agentCode);
         }
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/message/corpconversation/asyncsend_v2");
         req.agentId(agent.getId());
         OapiMessageCorpconversationAsyncsendV2Response resp = cached(() -> client.execute(req.build(), getAccessToken(agentCode)));
         assertOK(resp);

+ 4 - 4
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/OaSdk.java

@@ -75,7 +75,7 @@ public class OaSdk extends BaseSdk {
      * @return
      */
     public List<OapiCheckinRecordResponse.Data> getCheckinData(String agentCode, long departmentId, long startTime, long endTime, long offset, long size) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/checkin/record");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/checkin/record");
         OapiCheckinRecordRequest req = new OapiCheckinRecordRequest();
         req.setDepartmentId(String.valueOf(departmentId));
         req.setStartTime(startTime);
@@ -130,7 +130,7 @@ public class OaSdk extends BaseSdk {
      * @return
      */
     public List<OapiCheckinRecordGetResponse.CheckinRecordVo> getCheckinData(String agentCode, List<String> userIdList, long startTime, long endTime, long cursor, long size) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/checkin/record/get");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/checkin/record/get");
         OapiCheckinRecordGetRequest req = new OapiCheckinRecordGetRequest();
         req.setStartTime(startTime);
         req.setEndTime(endTime);
@@ -156,7 +156,7 @@ public class OaSdk extends BaseSdk {
      * @param endTime    查询考勤打卡记录的结束工作日。格式为“yyyy-MM-dd hh:mm:ss”。注意,起始与结束工作日最多相隔7天
      */
     public List<OapiAttendanceListRecordResponse.Recordresult> getAttendanceRecordList(String agentCode, List<String> userIdList, long startTime, long endTime) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/listRecord");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/attendance/listRecord");
         OapiAttendanceListRecordRequest req = new OapiAttendanceListRecordRequest();
         req.setCheckDateFrom(DateUtils.formatDateTime(startTime));
         req.setCheckDateTo(DateUtils.formatDateTime(endTime));
@@ -182,7 +182,7 @@ public class OaSdk extends BaseSdk {
      * @return
      */
     public List<OapiAttendanceListResponse.Recordresult> getAttendanceList(String agentCode, List<String> userIdList, long startTime, long endTime, long offset, long limit) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/list");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/attendance/list");
         OapiAttendanceListRequest req = new OapiAttendanceListRequest();
         req.setWorkDateFrom(DateUtils.formatDateTime(startTime));
         req.setWorkDateTo(DateUtils.formatDateTime(endTime));

+ 1 - 1
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/ScheduleSdk.java

@@ -27,7 +27,7 @@ public class ScheduleSdk extends BaseSdk {
      * @return 日程id
      */
     public String addSchedule(String agentCode, AddScheduleReq req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/calendar/create");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/calendar/create");
         OapiCalendarCreateResponse resp = cached(() -> client.execute(req.build(), getAccessToken(agentCode)));
         assertOK(resp);
         return resp.getResult().getDingtalkCalendarId();

+ 3 - 3
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/WorkRecordSdk.java

@@ -36,7 +36,7 @@ public class WorkRecordSdk extends BaseSdk {
      * @return 待办事项唯一id
      */
     public String addWorkRecord(String agentCode, OapiWorkrecordAddRequest req) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/workrecord/add");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/workrecord/add");
         OapiWorkrecordAddResponse resp = cached(() -> client.execute(req, getAccessToken(agentCode)));
         assertOK(resp);
         return resp.getBody();
@@ -53,7 +53,7 @@ public class WorkRecordSdk extends BaseSdk {
      * @param recordId  待办事项唯一id。该id可以使用创建待办接口中传入的biz_id,也可以使用创建待办接口返回结果中的record_id
      */
     public void updateWorkRecord(String agentCode, String userId, String recordId) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/workrecord/update");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/workrecord/update");
         OapiWorkrecordUpdateRequest req = new OapiWorkrecordUpdateRequest();
         req.setUserid(userId);
         req.setRecordId(recordId);
@@ -73,7 +73,7 @@ public class WorkRecordSdk extends BaseSdk {
      * @param limit 分页大小,最多50
      */
     public OapiWorkrecordGetbyuseridResponse.PageResult getWorkRecordList(String agentCode, String userId, long offset, long limit) {
-        DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/workrecord/getbyuserid");
+        DingTalkClient client = new DefaultDingTalkClient(getProperties().getApi() + "/topapi/workrecord/getbyuserid");
         OapiWorkrecordGetbyuseridRequest req = new OapiWorkrecordGetbyuseridRequest();
         req.setUserid(userId);
         req.setOffset(offset);

+ 9 - 0
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/config/DingTalkProperties.java

@@ -9,6 +9,7 @@ import java.util.stream.Collectors;
  * @author yingp
  */
 public class DingTalkProperties {
+    private String api = "https://oapi.dingtalk.com";
     /**
      * 企业钉钉ID
      */
@@ -30,6 +31,14 @@ public class DingTalkProperties {
         return agentMap;
     }
 
+    public String getApi() {
+        return api;
+    }
+
+    public void setApi(String api) {
+        this.api = api;
+    }
+
     public void setAgents(List<Agent> agents) {
         if (null == agents) {
             agentMap = new HashMap<>(0);

+ 7 - 1
uas-office-dingtalk/src/main/java/com/usoftchina/uas/office/dingtalk/config/DingTalkConfig.java

@@ -7,6 +7,7 @@ import com.usoftchina.uas.office.dingtalk.manage.entity.DingTalkAgent;
 import com.usoftchina.uas.office.dingtalk.manage.event.DingTalkAgentEvent;
 import com.usoftchina.uas.office.dingtalk.manage.event.DingTalkCorpEvent;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.event.EventListener;
@@ -20,9 +21,14 @@ import java.util.stream.Collectors;
  */
 @Configuration
 public class DingTalkConfig {
+    @Value("${DINGTALK_API:https://oapi.dingtalk.com}")
+    private String dingTalkApi;
+
     @Bean
     public DingTalkProperties dingTalkProperties() {
-        return new DingTalkProperties();
+        DingTalkProperties properties = new DingTalkProperties();
+        properties.setApi(dingTalkApi);
+        return properties;
     }
 
     @Bean