From aa17bb392449601ca74dd27dfd7bab5b48b02f85 Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 22 Apr 2022 14:40:06 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20?= =?UTF-8?q?=E9=92=89=E9=92=89=E4=BA=92=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pigx-upms/pigx-upms-biz/pom.xml | 5 ++ .../admin/controller/ConnectController.java | 76 +++++++++++++++++++ .../pigx/admin/service/ConnectService.java | 11 +++ .../service/impl/ConnectServiceImpl.java | 57 ++++++++++++++ pom.xml | 1 + 5 files changed, 150 insertions(+) create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/ConnectController.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/ConnectService.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/ConnectServiceImpl.java diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml index a8e0d4cae..44bca5af8 100644 --- a/pigx-upms/pigx-upms-biz/pom.xml +++ b/pigx-upms/pigx-upms-biz/pom.xml @@ -128,6 +128,11 @@ cas-client-core ${cas.sdk.version} + + com.aliyun + dingtalk + ${dingtalk.version} + org.springframework.boot diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/ConnectController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/ConnectController.java new file mode 100644 index 000000000..445268b61 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/ConnectController.java @@ -0,0 +1,76 @@ +package com.pig4cloud.pigx.admin.controller; + +import com.pig4cloud.pigx.common.core.util.R; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 钉钉、微信 互联 + * + * @author lengleng + * @date 2022/4/22 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/connect") +@Api(value = "connect", tags = "开放互联") +public class ConnectController { + + /** + * 同步钉钉用户 + * @return + */ + @PostMapping("/sync/ding/user") + public R syncUser() { + return R.ok(); + } + + /** + * 同步钉钉角色 + * @return + */ + @PostMapping("/sync/ding/role") + public R syncRole() { + return R.ok(); + } + + /** + * 同步钉钉部门 + * @return + */ + @PostMapping("/sync/ding/dept") + public R syncDept() { + return R.ok(); + } + + /** + * 同步企微用户 + * @return + */ + @PostMapping("/sync/cp/user") + public R syncCpUser() { + return R.ok(); + } + + /** + * 同步企微角色 + * @return + */ + @PostMapping("/sync/cp/role") + public R syncCpRole() { + return R.ok(); + } + + /** + * 同步企微部门 + * @return + */ + @PostMapping("/sync/cp/dept") + public R syncCpDept() { + return R.ok(); + } + +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/ConnectService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/ConnectService.java new file mode 100644 index 000000000..faedf2fb6 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/ConnectService.java @@ -0,0 +1,11 @@ +package com.pig4cloud.pigx.admin.service; + +/** + * @author lengleng + * @date 2022/4/22 + * + * 互联平台 + */ +public interface ConnectService { + +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/ConnectServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/ConnectServiceImpl.java new file mode 100644 index 000000000..1a8f54aba --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/ConnectServiceImpl.java @@ -0,0 +1,57 @@ +package com.pig4cloud.pigx.admin.service.impl; + +import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest; +import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; +import com.aliyun.teaopenapi.models.Config; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; +import com.pig4cloud.pigx.admin.mapper.SysSocialDetailsMapper; +import com.pig4cloud.pigx.admin.service.ConnectService; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 互联平台实现 + * + * 钉钉: https://open-dev.dingtalk.com/apiExplorer + * + * @author lengleng + * @date 2022/4/22 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ConnectServiceImpl implements ConnectService { + + private final SysSocialDetailsMapper sysSocialDetailsMapper; + + private String getDingAccessToken() { + SysSocialDetails dingTalk = sysSocialDetailsMapper + .selectOne(Wrappers.lambdaQuery().eq(SysSocialDetails::getType, "ding")); + GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest().setAppKey(dingTalk.getAppId()) + .setAppSecret(dingTalk.getAppSecret()); + GetAccessTokenResponse tokenResponse = null; + try { + tokenResponse = createDingClient().getAccessToken(getAccessTokenRequest); + } + catch (Exception e) { + log.error("调用钉钉异常", e); + } + return tokenResponse.getBody().getAccessToken(); + } + + /** + * 创建钉钉客户端 + * @return + */ + @SneakyThrows + private com.aliyun.dingtalkoauth2_1_0.Client createDingClient() { + Config config = new Config(); + config.protocol = "https"; + config.regionId = "central"; + return new com.aliyun.dingtalkoauth2_1_0.Client(config); + } + +} diff --git a/pom.xml b/pom.xml index b31b411e7..bf21ae7ce 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,7 @@ 2.6.6 1.2.7 3.6.4 + 1.3.40 3.0.0 2.0.9 2.3