REQ-2211: 同步数据ids查询用户信息

This commit is contained in:
yangchen 2024-04-03 20:07:09 +08:00
parent 2e0d2ed24e
commit 075f64ca2c
5 changed files with 67 additions and 0 deletions

View File

@ -2,12 +2,16 @@ package cn.axzo.riven.client.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.riven.client.req.CreateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.req.ListUsersBySynIdsReq;
import cn.axzo.riven.client.req.UpdateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.res.CreateDingDingAttendanceGroupRes;
import cn.axzo.riven.client.res.ThirdPartUserRes;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* @author yangchen@axzo.cn
*/
@ -18,4 +22,7 @@ public interface DingDingAttendanceApi {
@PostMapping("/api/dingDing/attendance/group/update")
ApiResult<Void> attendanceGroupUpdate(@RequestBody UpdateDingDingAttendanceGroupReq req);
@PostMapping("/api/dingDing/listUsersBySynIds")
ApiResult<List<ThirdPartUserRes>> listUsersBySynIds(@RequestBody ListUsersBySynIdsReq req);
}

View File

@ -0,0 +1,20 @@
package cn.axzo.riven.client.req;
import lombok.Data;
import java.util.List;
/**
* @author yangchen@axzo.cn
*/
@Data
public class ListUsersBySynIdsReq {
/**
* 单位id
*/
private Long ouId;
/**
* 同步数据id
*/
private List<Long> synIds;
}

View File

@ -3,12 +3,16 @@ package cn.axzo.riven.controller;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.riven.client.feign.DingDingAttendanceApi;
import cn.axzo.riven.client.req.CreateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.req.ListUsersBySynIdsReq;
import cn.axzo.riven.client.req.UpdateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.res.CreateDingDingAttendanceGroupRes;
import cn.axzo.riven.client.res.ThirdPartUserRes;
import cn.axzo.riven.service.DingDingAttendanceGroupService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author yangchen@axzo.cn
*/
@ -28,4 +32,9 @@ public class DingDingAttendanceController implements DingDingAttendanceApi {
dingDingAttendanceGroupService.attendanceGroupUpdate(req);
return null;
}
@Override
public ApiResult<List<ThirdPartUserRes>> listUsersBySynIds(ListUsersBySynIdsReq req) {
return ApiResult.ok(dingDingAttendanceGroupService.listUsersBySynIds(req));
}
}

View File

@ -1,8 +1,13 @@
package cn.axzo.riven.service;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.riven.client.req.CreateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.req.ListUsersBySynIdsReq;
import cn.axzo.riven.client.req.UpdateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.res.CreateDingDingAttendanceGroupRes;
import cn.axzo.riven.client.res.ThirdPartUserRes;
import java.util.List;
/**
* @author yangchen@axzo.cn
@ -11,4 +16,6 @@ public interface DingDingAttendanceGroupService {
CreateDingDingAttendanceGroupRes attendanceGroupCreate(CreateDingDingAttendanceGroupReq req);
void attendanceGroupUpdate(UpdateDingDingAttendanceGroupReq req);
List<ThirdPartUserRes> listUsersBySynIds(ListUsersBySynIdsReq req);
}

View File

@ -1,21 +1,29 @@
package cn.axzo.riven.service.impl;
import cn.axzo.basics.common.BeanMapper;
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.riven.client.req.CreateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.req.DingDingPositionsReq;
import cn.axzo.riven.client.req.ListUsersBySynIdsReq;
import cn.axzo.riven.client.req.UpdateDingDingAttendanceGroupReq;
import cn.axzo.riven.client.res.CreateDingDingAttendanceGroupRes;
import cn.axzo.riven.client.res.ThirdPartUserRes;
import cn.axzo.riven.common.util.Throws;
import cn.axzo.riven.manger.DingDingNewSdkManger;
import cn.axzo.riven.manger.DingDingOldSdkManger;
import cn.axzo.riven.repository.entity.ThirdPartyCredential;
import cn.axzo.riven.repository.entity.ThirdPartyUser;
import cn.axzo.riven.repository.service.ThirdPartyCredentialDao;
import cn.axzo.riven.repository.service.ThirdPartyUserDao;
import cn.axzo.riven.service.DingDingAttendanceGroupService;
import cn.hutool.core.bean.BeanUtil;
import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponseBody;
import com.dingtalk.api.request.OapiAttendanceGroupAddRequest;
import com.dingtalk.api.request.OapiAttendanceGroupModifyRequest;
import com.dingtalk.api.response.OapiAttendanceGroupAddResponse;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -33,6 +41,8 @@ public class DingDingAttendanceGroupServiceImpl implements DingDingAttendanceGro
private DingDingNewSdkManger dingDingNewSdkManger;
@Autowired
private DingDingOldSdkManger dingDingOldSdkManger;
@Autowired
private ThirdPartyUserDao thirdPartyUserDao;
@Override
public CreateDingDingAttendanceGroupRes attendanceGroupCreate(CreateDingDingAttendanceGroupReq req) {
@ -108,4 +118,18 @@ public class DingDingAttendanceGroupServiceImpl implements DingDingAttendanceGro
dingDingOldSdkManger.attendanceGroupModify(accessToken.getAccessToken(), oapiAttendanceGroupModifyRequest);
}
@Override
public List<ThirdPartUserRes> listUsersBySynIds(ListUsersBySynIdsReq req) {
List<ThirdPartyUser> list = thirdPartyUserDao
.lambdaQuery()
.in(BaseEntity::getId, req.getSynIds())
.eq(ThirdPartyUser::getOuId, req.getOuId())
.eq(ThirdPartyUser::getChannel, "DingTalk")
.list();
if(CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return BeanMapper.copyList(list, ThirdPartUserRes.class);
}
}