From 34885278b931dfe917418e8360c15f8650c3d6ec Mon Sep 17 00:00:00 2001 From: zer0Black <694429613@qq.com> Date: Mon, 2 Oct 2023 14:32:16 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=B7=BB=E5=8A=A0=E3=80=91=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84=20=E7=BC=96?= =?UTF-8?q?=E8=BE=91/=E5=88=A0=E9=99=A4=20=E6=8E=A5=E5=8F=A3=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iam/controller/SyncIamController.java | 54 +++++++- .../docking/iam/service/SyncIamService.java | 118 +++++++++++++++++- 2 files changed, 165 insertions(+), 7 deletions(-) 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 bbae880d..fb71b46c 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 @@ -170,7 +170,7 @@ public class SyncIamController { // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(orgAcceptDto); - // 处理业务逻辑,存储用户,返回用户id + // 处理业务逻辑,存储组织,返回组织id IamOrgCreateResponse iamOrgCreateResponse = this.syncIamService.orgCreateService(orgAcceptDto); // 处理统一响应PO层,并加密业务字段 @@ -181,15 +181,59 @@ public class SyncIamController { } @PostMapping({"/OrgUpdateService"}) - public SendPoSystemPo orgUpdateService(@RequestBody AcceptPoSystemPo iamOrgInfo) { - SendPoSystemPo sendPoSystemPo = new SendPoSystemPo(); + public SendPoSystemPo orgUpdateService(@RequestBody AcceptPoSystemPo iamOrgInfo) throws JsonProcessingException { + if (iamOrgInfo == null + || iamOrgInfo.getMessageTabels() == null + || iamOrgInfo.getMessageTabels().getHeader() == null + || iamOrgInfo.getMessageTabels().getHeader().getData() == null){ + throw new IamGlobalException(null, "参数传递错误,未收到参数"); + } + + // 对核心数据解密 + String bodyParam = iamOrgInfo.getMessageTabels().getHeader().getData(); + String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); + + ObjectMapper objectMapper = new ObjectMapper(); + IamOrgAcceptDto orgAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamOrgAcceptDto.class); + + // 校验身份认证,确保接口正确 必须调用! + this.syncIamService.validateUserAndPwd(orgAcceptDto); + + // 处理业务逻辑,更新组织 + IamCommonResponseDto iamCommonResponseDto = this.syncIamService.orgUpdateService(orgAcceptDto); + + // 处理统一响应PO层,并加密业务字段 + MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader(); + SendPoSystemPo sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto); return sendPoSystemPo; } @PostMapping({"/OrgDeleteService"}) - public SendPoSystemPo orgDeleteService(@RequestBody AcceptPoSystemPo iamOrgInfo) { - SendPoSystemPo sendPoSystemPo = new SendPoSystemPo(); + public SendPoSystemPo orgDeleteService(@RequestBody AcceptPoSystemPo iamOrgInfo) throws JsonProcessingException { + if (iamOrgInfo == null + || iamOrgInfo.getMessageTabels() == null + || iamOrgInfo.getMessageTabels().getHeader() == null + || iamOrgInfo.getMessageTabels().getHeader().getData() == null){ + throw new IamGlobalException(null, "参数传递错误,未收到参数"); + } + + // 对核心数据解密 + String bodyParam = iamOrgInfo.getMessageTabels().getHeader().getData(); + String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); + + ObjectMapper objectMapper = new ObjectMapper(); + IamOrgAcceptDto orgAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamOrgAcceptDto.class); + + // 校验身份认证,确保接口正确 必须调用! + this.syncIamService.validateUserAndPwd(orgAcceptDto); + + // 处理业务逻辑,更新组织 + IamCommonResponseDto iamCommonResponseDto = this.syncIamService.orgDeleteService(orgAcceptDto); + + // 处理统一响应PO层,并加密业务字段 + MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader(); + SendPoSystemPo sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto); return sendPoSystemPo; } 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 d378036a..ff67d91a 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 @@ -223,6 +223,9 @@ public class SyncIamService { // 取出对应的SysUser数据,将iam的数据全部抓取进行判空赋值后存入 SysUser sysUser = this.sysUserService.getById(userAcceptDto.getBimUid()); + if (sysUser == null){ + throw new IamGlobalException(userAcceptDto.getBimRequestId(), "未查询到id为(" + userAcceptDto.getBimUid() + ")用户,无法更新"); + } if (StrUtil.isNotEmpty(userAcceptDto.getSrmsUsername())){ sysUser.setUsername(userAcceptDto.getSrmsUsername()); @@ -412,8 +415,15 @@ public class SyncIamService { sysDepart.setOrgType(orgAcceptDto.getSrmsType()); sysDepart.setOrgCode(orgAcceptDto.getSrmsOrgCode()); - sysDepart.setStatus(CommonConstant.STATUS_1); - sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); + + if ("1".equals(orgAcceptDto.getSrmsStatus())){ + sysDepart.setStatus(CommonConstant.STATUS_1); + sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); + } else { + sysDepart.setStatus(CommonConstant.STATUS_0); + sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_1)); + } + sysDepart.setCreateBy(DockingConstant.IAM_SYSTEM_NAME); if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsCreateTime())){ Date createTime = DateUtils.str2Date(orgAcceptDto.getSrmsCreateTime(), new SimpleDateFormat("YYYY-MM-dd HH:mm:ss")); @@ -439,6 +449,110 @@ public class SyncIamService { return iamOrgCreateResponse; } + /** + * 更新组织机构 + * @param orgAcceptDto + * @return + */ + public IamCommonResponseDto orgUpdateService(IamOrgAcceptDto orgAcceptDto){ + if (orgAcceptDto == null || StrUtil.isEmpty(orgAcceptDto.getBimOrgId())){ + throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "机构id为空,无法进行组织信息更新"); + } + + IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); + iamCommonResponseDto.setBimRequestId(orgAcceptDto.getBimRequestId()); + iamCommonResponseDto.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE); + iamCommonResponseDto.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE); + + // 将iam的数据转换成sysDepart数据存入数据库 + SysDepart sysDepart = this.sysDepartService.getById(orgAcceptDto.getBimOrgId()); + if (sysDepart == null){ + throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "未查询到id为(" + orgAcceptDto.getBimOrgId() + ")组织,无法更新"); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsParentCode())){ + sysDepart.setParentId(orgAcceptDto.getSrmsParentCode()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsDepartName())){ + sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCategory())){ + // 1为单位,2为部门,转映射到 本系统内的数据 1公司,2组织机构,映射关系一致。如下代码是为了后续修改方便 + if ("1".equals(orgAcceptDto.getSrmsOrgCategory())){ + sysDepart.setOrgCategory("1"); + } else { + sysDepart.setOrgCategory("2"); + } + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsType())){ + sysDepart.setOrgType(orgAcceptDto.getSrmsType()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsOrgCode())){ + sysDepart.setOrgCode(orgAcceptDto.getSrmsOrgCode()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsStatus())){ + if ("1".equals(orgAcceptDto.getSrmsStatus())){ + sysDepart.setStatus(CommonConstant.STATUS_1); + sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); + } else { + sysDepart.setStatus(CommonConstant.STATUS_0); + sysDepart.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_1)); + } + } + + sysDepart.setUpdateBy(DockingConstant.IAM_SYSTEM_NAME); + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsUpdateTime())){ + Date updateTime = DateUtils.str2Date(orgAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat("YYYY-MM-dd HH:mm:ss")); + sysDepart.setCreateTime(updateTime); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsCompany())){ + sysDepart.setCompany(orgAcceptDto.getSrmsCompany()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsHeadOfDepartment())){ + sysDepart.setHeadOfDepartment(orgAcceptDto.getSrmsHeadOfDepartment()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsLeadersInCharge())){ + sysDepart.setLeadersInCharge(orgAcceptDto.getSrmsLeadersInCharge()); + } + + if (StrUtil.isNotEmpty(orgAcceptDto.getSrmsDeputyLeader())){ + sysDepart.setDeputyLeader(orgAcceptDto.getSrmsDeputyLeader()); + } + + // 存储到组织机构表中 + this.sysDepartService.updateById(sysDepart); + + return iamCommonResponseDto; + } + + /** + * 删除组织机构 + * @param orgAcceptDto + * @return + */ + public IamCommonResponseDto orgDeleteService(IamOrgAcceptDto orgAcceptDto){ + if (orgAcceptDto == null || StrUtil.isEmpty(orgAcceptDto.getBimOrgId())){ + throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "用户id(bimUid)为空,无法进行组织删除"); + } + + this.sysDepartService.delete(orgAcceptDto.getBimOrgId()); + + IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); + iamCommonResponseDto.setBimRequestId(orgAcceptDto.getBimRequestId()); + iamCommonResponseDto.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE); + iamCommonResponseDto.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE); + + return iamCommonResponseDto; + } + /** * 处理统一响应PO层,并加密业务字段 * @param acceptMessageHeader