From c77a111f5654ac81d330c663e497278a23fb43dd Mon Sep 17 00:00:00 2001 From: zer0Black Date: Thu, 12 Oct 2023 17:25:51 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90add=E3=80=91=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=BB=84=E7=BB=87id=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=BC=80=E5=8F=91=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/iam/client/TestClient.java | 28 +++++++++++++- .../iam/controller/SyncIamController.java | 37 ++++++++++++++++++- .../dto/response/IamOrgIdListResponse.java | 18 +++++++++ .../docking/iam/service/SyncIamService.java | 19 ++++++++++ 4 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgIdListResponse.java diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/client/TestClient.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/client/TestClient.java index 1fabc742..2f0fe936 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/client/TestClient.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/client/TestClient.java @@ -32,6 +32,7 @@ public class TestClient { testClient.sendUserUpdate(); // 更新用户接口测试 testClient.sendOrgCreate(); // 组织创建接口测试 testClient.sendQueryAllUserIdsService(); // 查询所有用户ID接口测试 + testClient.sendQueryAllOrgIdsService(); // 查询所有组织ID接口测试 } // 对数据解密 @@ -222,7 +223,32 @@ public class TestClient { String sendPoDataJson = objectMapper.writeValueAsString(sendPoDataEntity); String response = HttpUtil.post(url, sendPoDataJson); - System.out.println("查询全部用的id接口响应:" + response); + System.out.println("查询全部用户id接口响应:" + response); + + this.decryptData(response); + } + + /** + * 获取全部组织id + */ + private void sendQueryAllOrgIdsService() throws JsonProcessingException { + String url = "http://localhost:8184/laws-sinotruk/sync/iam/QueryAllOrgIdsService"; + + IamCommonAcceptDto iamCommonAcceptDto = new IamCommonAcceptDto(); + iamCommonAcceptDto.setBimRequestId(UUIDUtils.randomUUID20()); + iamCommonAcceptDto.setBimRemoteUser("srmsIam"); + iamCommonAcceptDto.setBimRemotePwd("srmsIam2023"); + + // 加密数据 + ObjectMapper objectMapper = new ObjectMapper(); + String sendData = objectMapper.writeValueAsString(iamCommonAcceptDto); + String encryptData = BamboocloudFacade.encrypt(sendData, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); + + AcceptEncryptPo sendPoDataEntity = handlerPoPackage(encryptData); + String sendPoDataJson = objectMapper.writeValueAsString(sendPoDataEntity); + + String response = HttpUtil.post(url, sendPoDataJson); + System.out.println("查询全部组织id接口响应:" + response); this.decryptData(response); } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java index 0e274d57..4fc69961 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java @@ -393,7 +393,7 @@ public class SyncIamController { } /** - * 查询全部用的id + * 查询全部用户id * @param iamCommon * @return * @throws JsonProcessingException @@ -427,4 +427,39 @@ public class SyncIamController { return sendPoEncryptPo; } + /** + * 查询全部组织id + * @param iamCommon + * @return + * @throws JsonProcessingException + */ + @PostMapping({"/QueryAllOrgIdsService"}) + public SendPoEncryptPo QueryAllOrgIdsService(@RequestBody AcceptEncryptPo iamCommon) throws JsonProcessingException { + if (iamCommon == null + || iamCommon.getMessageEncryptTabels() == null + || iamCommon.getMessageEncryptTabels().getHeader() == null + || iamCommon.getMessageEncryptTabels().getHeader().getData() == null){ + throw new IamGlobalException(null, this.paramNotGetError); + } + + // 对核心数据解密 + String bodyParam = iamCommon.getMessageEncryptTabels().getHeader().getData(); + String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); + + ObjectMapper objectMapper = new ObjectMapper(); + IamCommonAcceptDto commonAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamCommonAcceptDto.class); + + // 校验身份认证,确保接口正确 必须调用! + this.syncIamService.validateUserAndPwd(commonAcceptDto); + + // 处理业务逻辑,封装字段 + IamOrgIdListResponse orgIdListResponse = this.syncIamService.getAllOrgIds(commonAcceptDto); + + // 处理统一响应PO层,并加密业务字段 + MessageHeader acceptMessageHeader = iamCommon.getMessageHeader(); + SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, orgIdListResponse); + + return sendPoEncryptPo; + } + } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgIdListResponse.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgIdListResponse.java new file mode 100644 index 00000000..9fb1ce3c --- /dev/null +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgIdListResponse.java @@ -0,0 +1,18 @@ +package com.jero.modules.docking.iam.dto.response; + +import lombok.Data; + +import java.util.List; + +/** + * 组织机构创建的响应体 + */ +@Data +public class IamOrgIdListResponse extends IamCommonResponseDto{ + + /** + * 用户创建后生成的id + */ + private List orgIdList; + +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java index bab0f0cf..f761bab2 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java @@ -923,4 +923,23 @@ public class SyncIamService { return iamUserIdListResponse; } + /** + * 返回全部组织的id + * @return + */ + public IamOrgIdListResponse getAllOrgIds(IamCommonAcceptDto commonAcceptDto){ + QueryWrapper departQueryWrapper = new QueryWrapper(); + departQueryWrapper.select("id"); + // 获取全部用户的id,得到一个String的list + List departIds = this.sysDepartService.list(departQueryWrapper).stream().map(SysDepart::getId).collect(Collectors.toList()); + + IamOrgIdListResponse iamOrgIdListResponse = new IamOrgIdListResponse(); + iamOrgIdListResponse.setOrgIdList(departIds); + iamOrgIdListResponse.setBimRequestId(commonAcceptDto.getBimRequestId()); + iamOrgIdListResponse.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE); + iamOrgIdListResponse.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE); + + return iamOrgIdListResponse; + } + }