This commit is contained in:
yuqh 2024-09-24 14:51:58 +08:00
parent d182dec59c
commit 42deacdc7d
3 changed files with 57 additions and 17 deletions

View File

@ -20,12 +20,15 @@ savefile:
# 文件保存路径
path: /Users/xiangerlin/work/app/logs/yuecheng
cbs8:
appId: 1P4AGrpz
appSecret: 2c2369ae5dc04382844bbe3a5abf39e1bea9cd3a
appId: 1Prpz
appSecret: 24bbe3a5abf39e1bea9cd3a
url: https://cbs8-openapi-reprd.csuat.cmburl.cn
# 测试用这个 这个是银行给的,和下面的公钥不是一对密钥
ya_private_key: 83BA7EC821D35F4CB31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44
ya_private_key: 31FF9A51C1EFA520FC52AF828C2337F88E91CF119B07F44
# 这个私钥到时候上传到cbs和下面到是同一对
#ya_private_key: e1eacfdee9b8d4184437d5a2071e17ce31befc3d93395f9f05709ed562e8dc46
ya_public_key: 044fa399d2223760f17b81b863cb482b009294c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
cbs_public_key: 0469146F06BF3B01236E84632441E826F3067A6B93BC3839C836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185
ya_public_key: 044fa399d2223760f17b81b864c4516f8a605dea1475ec09e720eaa98468715e5ad509a592a0b426061551c5a3df236966c23253a7d894eac0dcde
cbs_public_key: 0469146F06BF3B01236E84632441E826F30836A06007869CD351FBBE388B51F742859388BBC1DE089923AAFBC69E448F15141DDF30EE6CE90185
dingtalk:
appKey: dingq3vbsswvyujiuwa7
appSecret: m4IRNcKQn-W9QBLERHWt0iW2hSirvxPS684xiNw-4QFMNg2gsBCur9T4QMvvAR4I

View File

@ -1,10 +1,7 @@
package com.hzya.frame.dingtalk.service;
import com.dingtalk.api.request.OapiV2UserListRequest;
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
import com.dingtalk.api.response.OapiV2UserGetResponse;
import com.dingtalk.api.response.OapiV2UserListResponse;
import com.dingtalk.api.response.*;
import java.util.List;
@ -63,4 +60,9 @@ public interface IDingTalkService {
* @return
*/
List<OapiV2DepartmentListsubResponse.DeptBaseResponse> getDeptList(Long deptId,String appKey,String appSecret);
/**
* 获取考勤记录
*/
List<OapiAttendanceListRecordResponse.Recordresult> getAttendanceList(List<String> userId,String appKey,String appSecret);
}

View File

@ -3,21 +3,23 @@ package com.hzya.frame.dingtalk.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiV2DepartmentGetRequest;
import com.dingtalk.api.request.OapiV2DepartmentListsubRequest;
import com.dingtalk.api.request.OapiV2UserGetRequest;
import com.dingtalk.api.request.OapiV2UserListRequest;
import com.dingtalk.api.response.OapiV2DepartmentGetResponse;
import com.dingtalk.api.response.OapiV2DepartmentListsubResponse;
import com.dingtalk.api.response.OapiV2UserGetResponse;
import com.dingtalk.api.response.OapiV2UserListResponse;
import com.dingtalk.api.request.*;
import com.dingtalk.api.response.*;
import com.hzya.frame.dingtalk.service.IDingTalkService;
import com.hzya.frame.dingtalk.util.DingTalkAccessToken;
import com.taobao.api.ApiException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
@ -161,4 +163,37 @@ public class DingTalkServiceImpl implements IDingTalkService {
}
return null;
}
@Override
public List<OapiAttendanceListRecordResponse.Recordresult> getAttendanceList(List<String> userId, String appKey, String appSecret) {
try {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/listRecord");
OapiAttendanceListRecordRequest req = new OapiAttendanceListRecordRequest();
req.setUserIds(userId);
//获取日期设置为当前日期前7天到前一日每周日晚上执行既9月28日执行获取21日至27日数据
LocalDate currentDate = LocalDate.now();
// 将日期转换为 LocalDateTime假设时间为 00:00:00
LocalDateTime currentDateTime = currentDate.atStartOfDay();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
req.setCheckDateTo(currentDateTime.format(formatter));
LocalDate eightDaysAgo = currentDate.minusDays(7);
// 将日期转换为 LocalDateTime假设时间为 00:00:00
LocalDateTime eightDaysAgoDateTime = eightDaysAgo.atStartOfDay();
req.setCheckDateFrom(eightDaysAgoDateTime.format(formatter));
OapiAttendanceListRecordResponse rsp = client.execute(req, DingTalkAccessToken.getAccessToken(appKey, appSecret));
if (rsp.isSuccess()) {
List<OapiAttendanceListRecordResponse.Recordresult> result = rsp.getRecordresult();
//System.out.println(rsp.getBody());
return result;
}
return null;
} catch (ApiException e) {
e.printStackTrace();
}
return null;
}
}