diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/EncryptTest.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/EncryptTest.java index b0aa5d02..9f61abb4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/EncryptTest.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/EncryptTest.java @@ -2,7 +2,9 @@ package com.jero.modules.docking.iam.controller; import com.banboocloud.Codec.Sm3Signature; import com.banboocloud.Codec.Sm4Cipher; +import lombok.extern.slf4j.Slf4j; +@Slf4j public class EncryptTest { public static void main(String[] args) { //sm3签名 @@ -17,6 +19,6 @@ public class EncryptTest { String target = sm4Cipher.encrypt(source, key); //输出密文 - System.out.println("target:" + target); + log.info("target:" + target); } } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamByCheryController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamByCheryController.java index afb5a1a2..c2539102 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamByCheryController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamByCheryController.java @@ -8,7 +8,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.jero.common.constant.CacheConstant; -import com.jero.modules.base.service.BaseCommonService; import com.jero.modules.docking.iam.dto.IamCommonAcceptDto; import com.jero.modules.docking.iam.dto.IamOrgAcceptDto; import com.jero.modules.docking.iam.dto.IamUserAcceptDto; @@ -32,7 +31,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.sql.SQLIntegrityConstraintViolationException; import java.util.List; /** @@ -49,14 +47,10 @@ public class SyncIamByCheryController { @Resource private SyncIamService syncIamService; - - @Resource - private BaseCommonService baseCommonService; - @PostMapping({"/SchemaService"}) public String schemaService(HttpServletRequest req) { String reqMap = this.syncIamService.getStringObjectMap(req); - IamCommonAcceptDto commonAcceptDto = JSONObject.parseObject(reqMap, IamCommonAcceptDto.class); + IamCommonAcceptDto commonAcceptDto = JSON.parseObject(reqMap, IamCommonAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(commonAcceptDto); // 处理业务逻辑,封装字段 @@ -71,7 +65,7 @@ public class SyncIamByCheryController { IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - userAcceptDto = JSONObject.parseObject(reqMap, IamUserAcceptDto.class); + userAcceptDto = JSON.parseObject(reqMap, IamUserAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(userAcceptDto); iamUserCreateResponse.setBimRequestId(userAcceptDto.getBimRequestId()); @@ -95,7 +89,7 @@ public class SyncIamByCheryController { IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamUserAcceptDto userAcceptDto = JSONObject.parseObject(reqMap, IamUserAcceptDto.class); + IamUserAcceptDto userAcceptDto = JSON.parseObject(reqMap, IamUserAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(userAcceptDto); // 处理业务逻辑,存储用户,返回用户id @@ -123,7 +117,7 @@ public class SyncIamByCheryController { IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamUserAcceptDto userAcceptDto = JSONObject.parseObject(reqMap, IamUserAcceptDto.class); + IamUserAcceptDto userAcceptDto = JSON.parseObject(reqMap, IamUserAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(userAcceptDto); // 处理业务逻辑,存储用户,返回用户id @@ -155,7 +149,7 @@ public class SyncIamByCheryController { IamOrgCreateResponse iamOrgCreateResponse = new IamOrgCreateResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - orgAcceptDto = JSONObject.parseObject(reqMap, IamOrgAcceptDto.class); + orgAcceptDto = JSON.parseObject(reqMap, IamOrgAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(orgAcceptDto); // 处理业务逻辑,存储组织,返回组织id @@ -189,7 +183,7 @@ public class SyncIamByCheryController { IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamOrgAcceptDto orgAcceptDto = JSONObject.parseObject(reqMap, IamOrgAcceptDto.class); + IamOrgAcceptDto orgAcceptDto = JSON.parseObject(reqMap, IamOrgAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(orgAcceptDto); // 处理业务逻辑,更新组织 @@ -207,7 +201,7 @@ public class SyncIamByCheryController { IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamOrgAcceptDto orgAcceptDto = JSONObject.parseObject(reqMap, IamOrgAcceptDto.class); + IamOrgAcceptDto orgAcceptDto = JSON.parseObject(reqMap, IamOrgAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(orgAcceptDto); // 处理业务逻辑,更新组织 @@ -238,7 +232,7 @@ public class SyncIamByCheryController { MessageHeader messageHeader = acceptDecryptPo.getMessageHeader(); BpmcResponseDto bpmcResponseDto = BpmcResponseDto.success(); - SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo(); + SendPoEncryptPo sendPoEncryptPo; if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getType())){ bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); @@ -383,7 +377,7 @@ public class SyncIamByCheryController { IamUserIdListResponse userIdListResponse = new IamUserIdListResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamCommonAcceptDto commonAcceptDto = JSONObject.parseObject(reqMap, IamCommonAcceptDto.class); + IamCommonAcceptDto commonAcceptDto = JSON.parseObject(reqMap, IamCommonAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(commonAcceptDto); @@ -408,7 +402,7 @@ public class SyncIamByCheryController { IamOrgIdListResponse orgIdListResponse = new IamOrgIdListResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamCommonAcceptDto commonAcceptDto = JSONObject.parseObject(reqMap, IamCommonAcceptDto.class); + IamCommonAcceptDto commonAcceptDto = JSON.parseObject(reqMap, IamCommonAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(commonAcceptDto); // 处理业务逻辑,封装字段 @@ -425,7 +419,7 @@ public class SyncIamByCheryController { IamUserInfoResponse iamUserInfoResponse = new IamUserInfoResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamUserAcceptDto userAcceptDto = JSONObject.parseObject(reqMap, IamUserAcceptDto.class); + IamUserAcceptDto userAcceptDto = JSON.parseObject(reqMap, IamUserAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(userAcceptDto); @@ -444,7 +438,7 @@ public class SyncIamByCheryController { IamOrgInfoResponse iamOrgInfoResponse = new IamOrgInfoResponse(); try { String reqMap = this.syncIamService.getStringObjectMap(req); - IamOrgAcceptDto orgAcceptDto = JSONObject.parseObject(reqMap, IamOrgAcceptDto.class); + IamOrgAcceptDto orgAcceptDto = JSON.parseObject(reqMap, IamOrgAcceptDto.class); // 校验身份认证,确保接口正确 必须调用! this.syncIamService.validateUserAndPwd(orgAcceptDto); // 处理业务逻辑,存储用户,返回用户id 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 deleted file mode 100644 index 50c9c97f..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/controller/SyncIamController.java +++ /dev/null @@ -1,599 +0,0 @@ -package com.jero.modules.docking.iam.controller; - -import cn.hutool.core.text.CharSequenceUtil; -import com.alibaba.fastjson.JSON; -import com.aliyun.oss.ServiceException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.jero.common.constant.CacheConstant; -import com.jero.modules.base.service.BaseCommonService; -import com.jero.modules.docking.iam.dto.IamCommonAcceptDto; -import com.jero.modules.docking.iam.dto.IamOrgAcceptDto; -import com.jero.modules.docking.iam.dto.IamUserAcceptDto; -import com.jero.modules.docking.iam.dto.bpmc.*; -import com.jero.modules.docking.iam.dto.response.*; -import com.jero.modules.docking.iam.exception.IamGlobalException; -import com.jero.modules.docking.iam.po.MessageHeader; -import com.jero.modules.docking.iam.po.decrypt.AcceptDecryptPo; -import com.jero.modules.docking.iam.po.encrypt.AcceptEncryptPo; -import com.jero.modules.docking.iam.po.encrypt.SendPoEncryptPo; -import com.jero.modules.docking.iam.service.SyncIamService; -import com.jero.modules.docking.utils.BamboocloudUtils; -import com.jero.modules.docking.utils.DockingConstant; -import com.jero.modules.docking.utils.SHA256Util; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.dao.DuplicateKeyException; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * IAM同步的控制器,提供用户、组织、菜单和权限的同步 - */ -@RestController -@RequestMapping("/sync/iam") -@Slf4j -public class SyncIamController { - - @Value("${iam.bpmcAppkey}") - private String bpmcAppkey; - - @Resource - private SyncIamService syncIamService; - - public final String paramNotGetError = "参数传递错误,未收到参数"; - - @Resource - private BaseCommonService baseCommonService; - - @PostMapping({"/SchemaService"}) - public SendPoEncryptPo schemaService(@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); - - // 处理业务逻辑,封装字段 - IamSchemaResponse iamSchemaResponse = this.syncIamService.getSchemaInfo(commonAcceptDto); - - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamCommon.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamSchemaResponse); - - return sendPoEncryptPo; - } - - @PostMapping({"/UserCreateService"}) - public SendPoEncryptPo userCreateService(@RequestBody AcceptEncryptPo iamUserInfo) throws JsonProcessingException { - log.info("进入账号创建"); - IamUserAcceptDto userAcceptDto = null; - IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse(); - SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo(); - try { - if (iamUserInfo == null - || iamUserInfo.getMessageEncryptTabels() == null - || iamUserInfo.getMessageEncryptTabels().getHeader() == null - || iamUserInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamUserInfo.getMessageEncryptTabels().getHeader().getData(); - String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); - - ObjectMapper objectMapper = new ObjectMapper(); - userAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamUserAcceptDto.class); - - // 校验身份认证,确保接口正确 必须调用! - this.syncIamService.validateUserAndPwd(userAcceptDto); - iamUserCreateResponse.setBimRequestId(userAcceptDto.getBimRequestId()); - // 处理业务逻辑,存储用户,返回用户id - iamUserCreateResponse = this.syncIamService.userCreateService(userAcceptDto); - } catch (ServiceException e) { - iamUserCreateResponse.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - String message = e.getErrorMessage(); - iamUserCreateResponse.setMessage(message); - log.error(iamUserCreateResponse.getMessage()); - }catch (Exception e){ - iamUserCreateResponse.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - iamUserCreateResponse.setMessage("操作失败" + e.getMessage()); - log.error(iamUserCreateResponse.getMessage()); - } - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamUserCreateResponse); - return sendPoEncryptPo; - } - - @PostMapping({"/UserUpdateService"}) - public SendPoEncryptPo userUpdateService(@RequestBody AcceptEncryptPo iamUserInfo) throws JsonProcessingException { - IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); - try { - if (iamUserInfo == null - || iamUserInfo.getMessageEncryptTabels() == null - || iamUserInfo.getMessageEncryptTabels().getHeader() == null - || iamUserInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamUserInfo.getMessageEncryptTabels().getHeader().getData(); - String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); - - ObjectMapper objectMapper = new ObjectMapper(); - IamUserAcceptDto userAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamUserAcceptDto.class); - - // 校验身份认证,确保接口正确 必须调用! - this.syncIamService.validateUserAndPwd(userAcceptDto); - - // 处理业务逻辑,存储用户,返回用户id - iamCommonResponseDto = this.syncIamService.userUpdateService(userAcceptDto); - iamCommonResponseDto.setBimRequestId(userAcceptDto.getBimRequestId()); - }catch (IamGlobalException e){ - iamCommonResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - String message = e.getMessage(); - iamCommonResponseDto.setMessage(message); - log.error(iamCommonResponseDto.getMessage()); - }catch (Exception e){ - iamCommonResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - iamCommonResponseDto.setMessage("操作失败" + e.getMessage()); - log.error(iamCommonResponseDto.getMessage()); - } - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto); - return sendPoEncryptPo; - } - - @PostMapping({"/UserDeleteService"}) - public SendPoEncryptPo userDeleteService(@RequestBody AcceptEncryptPo iamUserInfo) throws JsonProcessingException { - IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); - try { - if (iamUserInfo == null - || iamUserInfo.getMessageEncryptTabels() == null - || iamUserInfo.getMessageEncryptTabels().getHeader() == null - || iamUserInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamUserInfo.getMessageEncryptTabels().getHeader().getData(); - String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); - - ObjectMapper objectMapper = new ObjectMapper(); - IamUserAcceptDto userAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamUserAcceptDto.class); - - // 校验身份认证,确保接口正确 必须调用! - this.syncIamService.validateUserAndPwd(userAcceptDto); - - // 处理业务逻辑,存储用户,返回用户id - iamCommonResponseDto = this.syncIamService.userDeleteService(userAcceptDto); - iamCommonResponseDto.setBimRequestId(userAcceptDto.getBimRequestId()); - }catch (IamGlobalException e){ - iamCommonResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - String message = e.getMessage(); - iamCommonResponseDto.setMessage(message); - log.error(iamCommonResponseDto.getMessage()); - }catch (Exception e){ - iamCommonResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - iamCommonResponseDto.setMessage("操作失败" + e.getMessage()); - log.error(iamCommonResponseDto.getMessage()); - } - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto); - return sendPoEncryptPo; - } - - /** - * 组织创建和更新移除缓存 - * @param iamOrgInfo - * @return - * @throws JsonProcessingException - */ - @PostMapping({"/OrgCreateService"}) - @CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) - public SendPoEncryptPo orgCreateService(@RequestBody AcceptEncryptPo iamOrgInfo) throws JsonProcessingException { - IamOrgAcceptDto orgAcceptDto = null; - try { - if (iamOrgInfo == null - || iamOrgInfo.getMessageEncryptTabels() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamOrgInfo.getMessageEncryptTabels().getHeader().getData(); - String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); - - ObjectMapper objectMapper = new ObjectMapper(); - orgAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamOrgAcceptDto.class); - - // 校验身份认证,确保接口正确 必须调用! - this.syncIamService.validateUserAndPwd(orgAcceptDto); - - // 处理业务逻辑,存储组织,返回组织id - IamOrgCreateResponse iamOrgCreateResponse = this.syncIamService.orgCreateService(orgAcceptDto); - - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamOrgInfo.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamOrgCreateResponse); - return sendPoEncryptPo; - } catch (DuplicateKeyException duplicateKeyException) { - log.error("数据库值重复:{}", duplicateKeyException.getMessage()); - if (orgAcceptDto != null) { - throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "数据库值重复,请检查组织编号【" + orgAcceptDto.getSrmsOrgCode() + "】是否异常"); - } else { - throw new IamGlobalException(null, "未知异常,请联系管理员"); - } - } - } - - /** - * 组织创建和更新移除缓存 - * @param iamOrgInfo - * @return - * @throws JsonProcessingException - */ - @PostMapping({"/OrgUpdateService"}) - @CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) - public SendPoEncryptPo orgUpdateService(@RequestBody AcceptEncryptPo iamOrgInfo) throws JsonProcessingException { - if (iamOrgInfo == null - || iamOrgInfo.getMessageEncryptTabels() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamOrgInfo.getMessageEncryptTabels().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(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto); - - return sendPoEncryptPo; - } - - @PostMapping({"/OrgDeleteService"}) - public SendPoEncryptPo orgDeleteService(@RequestBody AcceptEncryptPo iamOrgInfo) throws JsonProcessingException { - if (iamOrgInfo == null - || iamOrgInfo.getMessageEncryptTabels() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader() == null - || iamOrgInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamOrgInfo.getMessageEncryptTabels().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(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamCommonResponseDto); - - return sendPoEncryptPo; - } - - /** - * 对接统一权限服务平台。 - * 该接口包含角色创建、菜单创建、角色菜单关联、用户角色关联等4个接口 - * 通过type字段来区分 - */ - @PostMapping({"/bpmcCreate"}) - public SendPoEncryptPo bpmcCreate(@RequestBody AcceptDecryptPo acceptDecryptPo) throws JsonProcessingException { - if (acceptDecryptPo == null - || acceptDecryptPo.getMessageDecryptTabels() == null - || acceptDecryptPo.getMessageDecryptTabels().getHeader() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - log.info("统一权限服务平台请求数据:{}", acceptDecryptPo.toString()); - ObjectMapper objectMapper = new ObjectMapper(); - BpmcAcceptDto bpmcAcceptDto = objectMapper.readValue(acceptDecryptPo.getMessageDecryptTabels().getHeader().getData(), BpmcAcceptDto.class); - - MessageHeader messageHeader = acceptDecryptPo.getMessageHeader(); - BpmcResponseDto bpmcResponseDto = BpmcResponseDto.success(); - SendPoEncryptPo sendPoEncryptPo = new SendPoEncryptPo(); - - if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getType())){ - bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - bpmcResponseDto.setMessage("接口类型(type)未传参,请检查"); - log.error(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getEntity())){ - bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - bpmcResponseDto.setMessage("数据实体(entity)未传参,请检查"); - log.error(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getAction())){ - bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - bpmcResponseDto.setMessage("操作方式(action)未传参,请检查"); - log.error(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - if (CharSequenceUtil.isEmpty(bpmcAcceptDto.getSignature())){ - bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - bpmcResponseDto.setMessage("签名(signature)未传参,请检查"); - log.error(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - // 验证签名 - String validateSign = SHA256Util.getSHA256StrJava(bpmcAcceptDto.getEntity() + bpmcAppkey + bpmcAcceptDto.getTimestamp()); - if (!bpmcAcceptDto.getSignature().equals(validateSign)){ - bpmcResponseDto.setResultCode(DockingConstant.IAM_ERROR_RESULT_CODE); - bpmcResponseDto.setMessage("签名校验不通过,请检查"); - log.error(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - try { - switch (bpmcAcceptDto.getType()){ - // 角色 - case DockingConstant.BPMC_TYPE_ROLE: - bpmcResponseDto = bpmcTypeRole(objectMapper, bpmcAcceptDto, bpmcResponseDto); - break; - - // 菜单 - case DockingConstant.BPMC_TYPE_RESOURCE: - bpmcResponseDto = bpmcTypeResource(objectMapper, bpmcAcceptDto, bpmcResponseDto); - break; - - // 用户角色关联 - case DockingConstant.BPMC_TYPE_USER_ROLE: - bpmcResponseDto = bpmcTypeUserRole(objectMapper, bpmcAcceptDto, bpmcResponseDto); - break; - - // 角色菜单关联 - case DockingConstant.BPMC_TYPE_ROLE_RESOURCE: - bpmcResponseDto = bpmcTypeRoleResource(objectMapper, bpmcAcceptDto, bpmcResponseDto); - break; - - default: - bpmcResponseDto = BpmcResponseDto.error("接口类型(type)未找到,请检查"); - break; - } - }catch (Exception e){ - e.printStackTrace(); - log.error(e.getMessage()); - bpmcResponseDto = BpmcResponseDto.error(e.getMessage()); - } - log.info(bpmcResponseDto.getMessage()); - sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(messageHeader, bpmcResponseDto); - sendPoEncryptPo.getReturns().setData(JSON.toJSONString(bpmcResponseDto)); - return sendPoEncryptPo; - } - - private BpmcResponseDto bpmcTypeRoleResource(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { - List roleResourceDtoList = objectMapper.readValue(bpmcAcceptDto.getEntity(), new TypeReference>() {}); - // 根据新增/删除调用不同的业务处理代码 - if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){ - bpmcResponseDto = this.syncIamService.roleResourceCreateService(roleResourceDtoList); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) { - bpmcResponseDto = this.syncIamService.roleResourceDeleteService(roleResourceDtoList); - } - return bpmcResponseDto; - } - - private BpmcResponseDto bpmcTypeUserRole(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { - List userRoleDtoList = objectMapper.readValue(bpmcAcceptDto.getEntity(), new TypeReference>() {}); - // 根据新增/删除调用不同的业务处理代码 - if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){ - bpmcResponseDto = this.syncIamService.userRoleCreateService(userRoleDtoList); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) { - bpmcResponseDto = this.syncIamService.userRoleDeleteService(userRoleDtoList); - } - return bpmcResponseDto; - } - - private BpmcResponseDto bpmcTypeResource(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { - ResourceDto resourceDto = objectMapper.readValue(bpmcAcceptDto.getEntity(), ResourceDto.class); - // 根据新增/编辑/删除调用不同的业务处理代码 - if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){ - bpmcResponseDto = this.syncIamService.resourceCreateService(resourceDto); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_UPDATE)) { - bpmcResponseDto = this.syncIamService.resourceUpdateService(resourceDto); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) { - bpmcResponseDto = this.syncIamService.resourceDeleteService(resourceDto); - } - return bpmcResponseDto; - } - - private BpmcResponseDto bpmcTypeRole(ObjectMapper objectMapper, BpmcAcceptDto bpmcAcceptDto, BpmcResponseDto bpmcResponseDto) throws JsonProcessingException { - RoleDto roleDto = objectMapper.readValue(bpmcAcceptDto.getEntity(), RoleDto.class); - // 根据新增/编辑/删除调用不同的业务处理代码 - if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_ADD)){ - bpmcResponseDto = this.syncIamService.roleCreateService(roleDto); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_UPDATE)) { - bpmcResponseDto = this.syncIamService.roleUpdateService(roleDto); - } else if (bpmcAcceptDto.getAction().equals(DockingConstant.BPMC_ACTION_DELETE)) { - bpmcResponseDto = this.syncIamService.roleDeleteService(roleDto); - } - return bpmcResponseDto; - } - - /** - * 查询全部用户id - * @param iamCommon - * @return - * @throws JsonProcessingException - */ - @PostMapping({"/QueryAllUserIdsService"}) - public SendPoEncryptPo QueryAllUserIdsService(@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); - - // 处理业务逻辑,封装字段 - IamUserIdListResponse userIdListResponse = this.syncIamService.getAllUserIds(commonAcceptDto); - - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamCommon.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, userIdListResponse); - - 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; - } - - @PostMapping({"/QueryUserByIdService"}) - public SendPoEncryptPo QueryUserByIdService(@RequestBody AcceptEncryptPo iamUserInfo) throws JsonProcessingException { - if (iamUserInfo == null - || iamUserInfo.getMessageEncryptTabels() == null - || iamUserInfo.getMessageEncryptTabels().getHeader() == null - || iamUserInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamUserInfo.getMessageEncryptTabels().getHeader().getData(); - String bodyParamDecrypt = BamboocloudUtils.getPlaintext(bodyParam, DockingConstant.IAM_ENCRYPT_SECRET, DockingConstant.IAM_ENCRYPT_TYPE); - - ObjectMapper objectMapper = new ObjectMapper(); - IamUserAcceptDto userAcceptDto = objectMapper.readValue(bodyParamDecrypt, IamUserAcceptDto.class); - - // 校验身份认证,确保接口正确 必须调用! - this.syncIamService.validateUserAndPwd(userAcceptDto); - - // 处理业务逻辑,存储用户,返回用户id - IamUserInfoResponse iamUserInfoResponse = this.syncIamService.getUserInfoById(userAcceptDto); - - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamUserInfoResponse); - - return sendPoEncryptPo; - } - - @PostMapping({"/QueryOrgByIdService"}) - public SendPoEncryptPo QueryOrgByIdService(@RequestBody AcceptEncryptPo iamUserInfo) throws JsonProcessingException { - if (iamUserInfo == null - || iamUserInfo.getMessageEncryptTabels() == null - || iamUserInfo.getMessageEncryptTabels().getHeader() == null - || iamUserInfo.getMessageEncryptTabels().getHeader().getData() == null){ - throw new IamGlobalException(null, "参数传递错误,未收到参数"); - } - - // 对核心数据解密 - String bodyParam = iamUserInfo.getMessageEncryptTabels().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); - - // 处理业务逻辑,存储用户,返回用户id - IamOrgInfoResponse iamOrgInfoResponse = this.syncIamService.getOrgInfoById(orgAcceptDto); - - // 处理统一响应PO层,并加密业务字段 - MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader(); - SendPoEncryptPo sendPoEncryptPo = this.syncIamService.handlerGloablEncryptResponse(acceptMessageHeader, iamOrgInfoResponse); - - return sendPoEncryptPo; - } - - -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgInfoResponse.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgInfoResponse.java index 0e631a50..10c44224 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgInfoResponse.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamOrgInfoResponse.java @@ -1,7 +1,6 @@ package com.jero.modules.docking.iam.dto.response; import com.jero.modules.docking.iam.dto.IamOrgAcceptDto; -import com.jero.modules.docking.iam.dto.IamUserAcceptDto; import lombok.Data; /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamUserInfoResponse.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamUserInfoResponse.java index 7a6a8e2b..86d3215a 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamUserInfoResponse.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/dto/response/IamUserInfoResponse.java @@ -3,8 +3,6 @@ package com.jero.modules.docking.iam.dto.response; import com.jero.modules.docking.iam.dto.IamUserAcceptDto; import lombok.Data; -import java.util.List; - /** * 组织机构创建的响应体 */ diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/exception/IamGlobalException.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/exception/IamGlobalException.java index 38f2785c..fba0b787 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/exception/IamGlobalException.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/exception/IamGlobalException.java @@ -1,7 +1,5 @@ package com.jero.modules.docking.iam.exception; -import com.jero.common.util.MessageUtils; - public class IamGlobalException extends RuntimeException { private String bimRequestId; 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 42f66781..a1d91896 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 @@ -38,6 +38,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -90,9 +91,11 @@ public class SyncIamService { @Resource private SysDepartMapper sysDepartMapper; - private String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; + private static final String DATE_FORMAT = "yyyy-MM-dd"; - public final String PARAM_NOT_GET_ERROR = "参数传递错误,未收到参数"; + private static final String PARAM_NOT_GET_ERROR = "参数传递错误,未收到参数"; + + private static final String SELECT_ERROR = "未查询到id为("; //SM4 @Value("${iam.sm4.key}") @@ -112,10 +115,10 @@ public class SyncIamService { public String getStringObjectMap(HttpServletRequest req) { try { String bodyparam = BamboocloudCheryUtils.getRequestBody(req); - System.out.println("first--param-->" + bodyparam); + log.info("first--param-->" + bodyparam); //报文解密 bodyparam = BamboocloudCheryUtils.getPlaintext(bodyparam, key, type); - System.out.println("json--param-->" + bodyparam); + log.info("json--param-->" + bodyparam); Map reqMap = (Map) JSON.parse(bodyparam); //验证签名 if (!BamboocloudCheryUtils.verify(reqMap, signType)) { @@ -216,37 +219,13 @@ public class SyncIamService { SysUser sysUser = new SysUser(); sysUser.setUsername(userAcceptDto.getSrmsUsername()); sysUser.setRealname(userAcceptDto.getSrmsRealname()); - try { - if(StringUtils.isEmpty(userAcceptDto.getBirthday())){ - sysUser.setBirthday(null); - }else{ - sysUser.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getBirthday())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"生日格式错误,请输入(yyyy-MM-dd)"); - } - try { - if(StringUtils.isEmpty(userAcceptDto.getEntryTime())){ - sysUser.setEntryTime(null); - }else{ - sysUser.setEntryTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getEntryTime())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"入职时间格式错误,请输入(yyyy-MM-dd)"); - } - try { - if(StringUtils.isEmpty(userAcceptDto.getResignationTime())){ - sysUser.setResignationTime(null); - }else{ - sysUser.setResignationTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getResignationTime())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"离职时间格式错误,请输入(yyyy-MM-dd)"); - } + setBirthday(userAcceptDto, sysUser); + setEntryTime(userAcceptDto, sysUser); + setResignationTime(userAcceptDto, sysUser); sysUser.setPassword(CommonConstant.DEFAULT_PASSWORD); String salt = UUIDUtils.randomUUID(8); - System.out.println(salt); + log.info(salt); sysUser.setSalt(salt); String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), sysUser.getPassword(), salt); sysUser.setPassword(passwordEncode); @@ -280,6 +259,18 @@ public class SyncIamService { return iamUserCreateResponse; } + private void setEntryTime(IamUserAcceptDto userAcceptDto, SysUser sysUser) { + try { + if (StringUtils.isEmpty(userAcceptDto.getEntryTime())) { + sysUser.setEntryTime(null); + } else { + sysUser.setEntryTime(new SimpleDateFormat(DATE_FORMAT).parse(userAcceptDto.getEntryTime())); + } + } catch (ParseException e) { + throw new IamGlobalException(userAcceptDto.getBimRequestId(), "入职时间格式错误,请输入(yyyy-MM-dd)"); + } + } + /** *根据传过来看的bimUid标识用户的唯一id,取出后修改新传递的字符串 * @param userAcceptDto @@ -295,7 +286,7 @@ public class SyncIamService { // 取出对应的SysUser数据,将iam的数据全部抓取进行判空赋值后存入 SysUser sysUser = this.sysUserService.getById(userAcceptDto.getBimUid()); if (sysUser == null){ - throw new IamGlobalException(userAcceptDto.getBimRequestId(), "未查询到id为(" + userAcceptDto.getBimUid() + ")用户,无法更新"); + throw new IamGlobalException(userAcceptDto.getBimRequestId(), SELECT_ERROR + userAcceptDto.getBimUid() + ")用户,无法更新"); } if(!Objects.isNull(userAcceptDto.get__ENABLE__())){ @@ -335,48 +326,15 @@ public class SyncIamService { if (CharSequenceUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())){ sysUser.setTypeId(userAcceptDto.getSrmsTypeId()); } - try { - if(StringUtils.isEmpty(userAcceptDto.getBirthday())){ - sysUser.setBirthday(null); - }else{ - sysUser.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getBirthday())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"生日格式错误,请输入(yyyy-MM-dd)"); - } - try { - if(StringUtils.isEmpty(userAcceptDto.getEntryTime())){ - sysUser.setEntryTime(null); - }else{ - sysUser.setEntryTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getEntryTime())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"入职时间格式错误,请输入(yyyy-MM-dd)"); - } - try { - if(StringUtils.isEmpty(userAcceptDto.getResignationTime())){ - sysUser.setResignationTime(null); - }else{ - sysUser.setResignationTime(new SimpleDateFormat("yyyy-MM-dd").parse(userAcceptDto.getResignationTime())); - } - } catch (ParseException e) { - throw new IamGlobalException(userAcceptDto.getBimRequestId(),"离职时间格式错误,请输入(yyyy-MM-dd)"); - } + setBirthday(userAcceptDto, sysUser); + setEntryTime(userAcceptDto, sysUser); + setResignationTime(userAcceptDto, sysUser); // 设置飞书id, IAM村的id就是飞书id sysUser.setFeishuId(userAcceptDto.getEmployeeNo()); // 获取组织机构(多个逗号分隔) String orgCode = userAcceptDto.getSrmsOrgCode(); - String selectedDeparts = null; - if (CharSequenceUtil.isNotEmpty(orgCode)){ - List sysDepartList = sysDepartService.list( - new LambdaQueryWrapper() - .in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(",")))); - if (CollectionUtils.isNotEmpty(sysDepartList)){ - selectedDeparts = sysDepartList.stream().map(SysDepart::getId) - .collect(Collectors.joining(",")); - } - } + String selectedDeparts = getStringSelectedDeparts(orgCode); // 编辑存储到用户表中,角色是系统自己处理的,更新不会影响角色,所以不传 this.sysUserService.editUser(sysUser, null, selectedDeparts); } @@ -389,6 +347,45 @@ public class SyncIamService { return iamUserCreateResponse; } + @Nullable + private String getStringSelectedDeparts(String orgCode) { + String selectedDeparts = null; + if (CharSequenceUtil.isNotEmpty(orgCode)){ + List sysDepartList = sysDepartService.list( + new LambdaQueryWrapper() + .in(SysDepart::getOrgCode, Arrays.asList(orgCode.split(",")))); + if (CollectionUtils.isNotEmpty(sysDepartList)){ + selectedDeparts = sysDepartList.stream().map(SysDepart::getId) + .collect(Collectors.joining(",")); + } + } + return selectedDeparts; + } + + private void setResignationTime(IamUserAcceptDto userAcceptDto, SysUser sysUser) { + try { + if (StringUtils.isEmpty(userAcceptDto.getResignationTime())) { + sysUser.setResignationTime(null); + } else { + sysUser.setResignationTime(new SimpleDateFormat(DATE_FORMAT).parse(userAcceptDto.getResignationTime())); + } + } catch (ParseException e) { + throw new IamGlobalException(userAcceptDto.getBimRequestId(), "离职时间格式错误,请输入(yyyy-MM-dd)"); + } + } + + private void setBirthday(IamUserAcceptDto userAcceptDto, SysUser sysUser) { + try { + if (StringUtils.isEmpty(userAcceptDto.getBirthday())) { + sysUser.setBirthday(null); + } else { + sysUser.setBirthday(new SimpleDateFormat(DATE_FORMAT).parse(userAcceptDto.getBirthday())); + } + } catch (ParseException e) { + throw new IamGlobalException(userAcceptDto.getBimRequestId(), "生日格式错误,请输入(yyyy-MM-dd)"); + } + } + /** * 删除用户 * @param userAcceptDto @@ -449,7 +446,7 @@ public class SyncIamService { // 将iam的数据转换成sysDepart数据存入数据库 SysDepart sysDepart = this.sysDepartService.getById(orgAcceptDto.getSrmsOrgCode()); if (sysDepart == null){ - throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "未查询到id为(" + orgAcceptDto.getSrmsOrgCode() + ")组织,无法更新"); + throw new IamGlobalException(orgAcceptDto.getBimRequestId(), SELECT_ERROR + orgAcceptDto.getSrmsOrgCode() + ")组织,无法更新"); } if (CharSequenceUtil.isNotEmpty(orgAcceptDto.getSrmsParentCode())){ @@ -495,10 +492,11 @@ public class SyncIamService { * @return */ public IamCommonResponseDto orgUpdateService(IamOrgAcceptDto orgAcceptDto){ - log.info("组织更新收到的解密后数据:{}", orgAcceptDto.toString()); + log.info("组织更新收到的解密后数据:{}", Objects.isNull(orgAcceptDto) ? "" : orgAcceptDto.toString()); if (orgAcceptDto == null || CharSequenceUtil.isEmpty(orgAcceptDto.getBimOrgId())){ - throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "机构id为空,无法进行组织信息更新"); + throw new IamGlobalException(Objects.isNull(orgAcceptDto) ? "" : orgAcceptDto.getBimRequestId(), + "机构id为空,无法进行组织信息更新"); } IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto(); @@ -509,7 +507,7 @@ public class SyncIamService { // 将iam的数据转换成sysDepart数据存入数据库 SysDepart sysDepart = this.sysDepartService.getById(orgAcceptDto.getBimOrgId()); if (sysDepart == null){ - throw new IamGlobalException(orgAcceptDto.getBimRequestId(), "未查询到id为(" + orgAcceptDto.getBimOrgId() + ")组织,无法更新"); + throw new IamGlobalException(orgAcceptDto.getBimRequestId(), SELECT_ERROR + orgAcceptDto.getBimOrgId() + ")组织,无法更新"); } if(!Objects.isNull(orgAcceptDto.get__ENABLE__())){ LambdaUpdateWrapper updateSysDepart = new LambdaUpdateWrapper<>(); @@ -712,17 +710,7 @@ public class SyncIamService { // 菜单英文名 sysPermission.setMenuEn(resourceDto.getMenu_en()); - - // sysPermission的 menuType (0:一级菜单;1:子菜单 ;2:按钮权限) - if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){ - if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){ - sysPermission.setMenuType(0); - } else { - sysPermission.setMenuType(1); - } - } else { - sysPermission.setMenuType(2); - } + setMenuType(resourceDto, sysPermission); sysPermission.setCreateTime(new Date()); sysPermission.setCreateBy(DockingConstant.IAM_SYSTEM_NAME); @@ -736,20 +724,38 @@ public class SyncIamService { } // 以下为IAM没有的属性,设置默认值 - sysPermission.setRoute(resourceDto.getIs_route() == 0 ? false : true); // 是否路由,设固定值 - sysPermission.setKeepAlive(resourceDto.getKeep_alive() == 0 ? false : true); // 是否缓存,设固定值 + // 是否路由,设固定值 + sysPermission.setRoute(isRoute(resourceDto.getIs_route())); + // 是否缓存,设固定值 + sysPermission.setKeepAlive(isRoute(resourceDto.getKeep_alive())); sysPermission.setDelFlag(CommonConstant.DEL_FLAG_0); - sysPermission.setRuleFlag(0); // 是否配置菜单的数据权限 1是0否 默认0 - sysPermission.setHidden(resourceDto.getHidden() == 0 ? false : true); // 是否配置菜单的数据权限 1是0否 默认0 - sysPermission.setStatus("1"); // 按钮权限状态(0无效1有效) + // 是否配置菜单的数据权限 1是0否 默认0 + sysPermission.setRuleFlag(0); + // 是否配置菜单的数据权限 1是0否 默认0 + sysPermission.setHidden(isRoute(resourceDto.getHidden())); + // 按钮权限状态(0无效1有效) + sysPermission.setStatus("1"); sysPermission.setAlwaysShow(false); - sysPermission.setInternalOrExternal(resourceDto.getInternal_or_external() == 0 ? false : true); + sysPermission.setInternalOrExternal(isRoute(resourceDto.getInternal_or_external())); sysPermissionService.addPermission(sysPermission); return BpmcResponseDto.success(); } + private void setMenuType(ResourceDto resourceDto, SysPermission sysPermission) { + // sysPermission的 menuType (0:一级菜单;1:子菜单 ;2:按钮权限) + if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()) { + if (CharSequenceUtil.isEmpty(resourceDto.getParentId())) { + sysPermission.setMenuType(0); + } else { + sysPermission.setMenuType(1); + } + } else { + sysPermission.setMenuType(2); + } + } + /** * 菜单更新 */ @@ -799,15 +805,7 @@ public class SyncIamService { } // sysPermission的 menuType (0:一级菜单;1:子菜单 ;2:按钮权限) - if (DockingConstant.BPMC_RESOURCE_TYPE_MENU == resourceDto.getMenu_type()){ - if (CharSequenceUtil.isEmpty(resourceDto.getParentId())){ - sysPermission.setMenuType(0); - } else { - sysPermission.setMenuType(1); - } - } else { - sysPermission.setMenuType(2); - } + setMenuType(resourceDto, sysPermission); if (!Objects.isNull(resourceDto.getModifyTime())){ sysPermission.setUpdateTime(resourceDto.getModifyTime()); } @@ -817,25 +815,29 @@ public class SyncIamService { } if (resourceDto.getIs_route() != null){ - sysPermission.setRoute(resourceDto.getIs_route() == 0 ? false : true); + sysPermission.setRoute(isRoute(resourceDto.getIs_route())); } if (resourceDto.getKeep_alive() != null){ - sysPermission.setKeepAlive(resourceDto.getKeep_alive() == 0 ? false : true); + sysPermission.setKeepAlive(isRoute(resourceDto.getKeep_alive())); } if (resourceDto.getHidden() != null){ - sysPermission.setHidden(resourceDto.getKeep_alive() == 0 ? false : true); + sysPermission.setHidden(isRoute(resourceDto.getKeep_alive())); } if (resourceDto.getInternal_or_external() != null){ - sysPermission.setInternalOrExternal(resourceDto.getInternal_or_external() == 0 ? false : true); + sysPermission.setInternalOrExternal(isRoute(resourceDto.getInternal_or_external())); } sysPermissionService.editPermission(sysPermission); return BpmcResponseDto.success(); } + private boolean isRoute(Integer is_route) { + return is_route == 0 ? false : true; + } + /** * 菜单删除(真实删除) */ @@ -945,7 +947,7 @@ public class SyncIamService { * @return */ public IamUserIdListResponse getAllUserIds(IamCommonAcceptDto commonAcceptDto){ - QueryWrapper userQueryWrapper = new QueryWrapper(); + QueryWrapper userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.select("id"); userQueryWrapper.ne("username", "admin"); // 获取全部用户的id,得到一个String的list @@ -965,7 +967,7 @@ public class SyncIamService { * @return */ public IamOrgIdListResponse getAllOrgIds(IamCommonAcceptDto commonAcceptDto){ - QueryWrapper departQueryWrapper = new QueryWrapper(); + QueryWrapper departQueryWrapper = new QueryWrapper<>(); departQueryWrapper.select("id"); // 获取全部用户的id,得到一个String的list List departIds = this.sysDepartService.list(departQueryWrapper).stream().map(SysDepart::getId).collect(Collectors.toList());