【添加】添加用户编辑接口逻辑

This commit is contained in:
zer0Black
2023-10-02 13:35:04 +08:00
parent 28dd03a9be
commit 5bfcd58a2f
3 changed files with 202 additions and 25 deletions
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
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.response.IamCommonResponseDto;
import com.jero.modules.docking.iam.dto.response.IamSchemaResponse;
import com.jero.modules.docking.iam.dto.response.IamUserCreateResponse;
import com.jero.modules.docking.iam.exception.IamGlobalException;
@@ -34,7 +35,7 @@ public class SyncIamController {
private SyncIamService syncIamService;
@PostMapping({"/SchemaService"})
public SendPoSystemPo SchemaService(@RequestBody AcceptPoSystemPo<IamCommonAcceptDto> iamCommon) throws JsonProcessingException {
public SendPoSystemPo schemaService(@RequestBody AcceptPoSystemPo<IamCommonAcceptDto> iamCommon) throws JsonProcessingException {
if (iamCommon == null
|| iamCommon.getMessageTabels() == null
|| iamCommon.getMessageTabels().getHeader() == null
@@ -92,35 +93,57 @@ public class SyncIamController {
}
@PostMapping({"/UserUpdateService"})
public SendPoSystemPo UserUpdateService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamUserInfo) {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
public SendPoSystemPo userUpdateService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamUserInfo) throws JsonProcessingException {
if (iamUserInfo == null
|| iamUserInfo.getMessageTabels() == null
|| iamUserInfo.getMessageTabels().getHeader() == null
|| iamUserInfo.getMessageTabels().getHeader().getData() == null){
throw new IamGlobalException(null, "参数传递错误,未收到参数");
}
// 对核心数据解密
String bodyParam = iamUserInfo.getMessageTabels().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 iamCommonResponseDto = this.syncIamService.userUpdateService(userAcceptDto);
// 处理统一响应PO层,并加密业务字段
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
SendPoSystemPo sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamCommonResponseDto);
return sendPoSystemPo;
}
@PostMapping({"/UserDeleteService"})
public SendPoSystemPo UserDeleteService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamUserInfo) {
public SendPoSystemPo userDeleteService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamUserInfo) {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
return sendPoSystemPo;
}
@PostMapping({"/OrgCreateService"})
public SendPoSystemPo OrgCreateService(@RequestBody AcceptPoSystemPo<IamOrgAcceptDto> iamOrgInfo) {
public SendPoSystemPo orgCreateService(@RequestBody AcceptPoSystemPo<IamOrgAcceptDto> iamOrgInfo) {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
return sendPoSystemPo;
}
@PostMapping({"/OrgUpdateService"})
public SendPoSystemPo OrgUpdateService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamOrgInfo) {
public SendPoSystemPo orgUpdateService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamOrgInfo) {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
return sendPoSystemPo;
}
@PostMapping({"/OrgDeleteService"})
public SendPoSystemPo OrgDeleteService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamOrgInfo) {
public SendPoSystemPo orgDeleteService(@RequestBody AcceptPoSystemPo<IamUserAcceptDto> iamOrgInfo) {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
return sendPoSystemPo;
@@ -209,6 +209,156 @@ public class SyncIamService {
return iamUserCreateResponse;
}
/**
* 根据传过来看的bimUid标识用户的唯一id,取出后修改新传递的字符串
* @param userAcceptDto
* @return
*/
public IamCommonResponseDto userUpdateService(IamUserAcceptDto userAcceptDto){
if (userAcceptDto == null || StrUtil.isEmpty(userAcceptDto.getBimUid())){
throw new IamGlobalException(userAcceptDto.getBimRequestId(), "用户id(bimUid)为空,无法进行用户信息更新");
}
// 取出对应的SysUser数据,将iam的数据全部抓取进行判空赋值后存入
SysUser sysUser = this.sysUserService.getById(userAcceptDto.getBimUid());
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsUsername())){
sysUser.setUsername(userAcceptDto.getSrmsUsername());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsRealname())){
sysUser.setRealname(userAcceptDto.getSrmsRealname());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsSex()) && NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsEmail())){
sysUser.setEmail(userAcceptDto.getSrmsEmail());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsPhone())){
sysUser.setPhone(userAcceptDto.getSrmsPhone());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsStatus())){
if ("1".equals(userAcceptDto.getSrmsStatus())){
sysUser.setStatus(CommonConstant.USER_UNFREEZE);
sysUser.setDelFlag(CommonConstant.DEL_FLAG_0);
} else {
sysUser.setStatus(CommonConstant.USER_FREEZE);
sysUser.setDelFlag(CommonConstant.DEL_FLAG_1);
}
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsOfficePhone())){
sysUser.setTelephone(userAcceptDto.getSrmsOfficePhone());
}
sysUser.setUpdateBy("IAM");
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())){
Date updateTime = DateUtils.str2Date(userAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"));
sysUser.setCreateTime(updateTime);
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsTypeId())){
sysUser.setTypeId(userAcceptDto.getSrmsTypeId());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsPost())){
sysUser.setPost(userAcceptDto.getSrmsPost());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsDutyLevelId())){
sysUser.setDutyLevelId(userAcceptDto.getSrmsDutyLevelId());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsRace())){
sysUser.setRace(userAcceptDto.getSrmsRace());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsPostSequence())){
sysUser.setPostSequence(userAcceptDto.getSrmsPostSequence());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsTechnicalPosition())){
sysUser.setTechnicalPosition(userAcceptDto.getSrmsTechnicalPosition());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsDirectLeadership())){
sysUser.setDirectLeadership(userAcceptDto.getSrmsDirectLeadership());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsPostStatus())){
sysUser.setPostStatus(userAcceptDto.getSrmsPostStatus());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsIdNumber())){
sysUser.setIdNumber(userAcceptDto.getSrmsIdNumber());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsEducation())){
sysUser.setEducation(userAcceptDto.getSrmsEducation());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsDepartmentBeforeTransfer())){
sysUser.setDepartmentBeforeTransfer(userAcceptDto.getSrmsDepartmentBeforeTransfer());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsLaborDispatchCode())){
sysUser.setLaborDispatchCode(userAcceptDto.getSrmsLaborDispatchCode());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsLaborDispatchName())){
sysUser.setLaborDispatchName(userAcceptDto.getSrmsLaborDispatchName());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsProfessionalQualification())){
sysUser.setProfessionalQualification(userAcceptDto.getSrmsProfessionalQualification());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsProfessionalLevel())){
sysUser.setProfessionalLevel(userAcceptDto.getSrmsProfessionalLevel());
}
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsEntryTime())){
sysUser.setEntryTime(userAcceptDto.getSrmsEntryTime());
}
// 获取组织机构(多个逗号分隔),TODO 有两个和组织关联在字段,用哪个还需要再和IAM沟通
String companyCode = userAcceptDto.getSrmsCompanyCode();
String orgCode = userAcceptDto.getSrmsOrgCode();
String selectedDeparts = null;
if (StrUtil.isNotEmpty(orgCode)){
selectedDeparts = orgCode;
}
// 编辑存储到用户表中,角色是系统自己处理的,更新不会影响角色,所以不传
this.sysUserService.editUser(sysUser, null, selectedDeparts);
IamCommonResponseDto iamCommonResponseDto = new IamCommonResponseDto();
iamCommonResponseDto.setBimRequestId(userAcceptDto.getBimRequestId());
iamCommonResponseDto.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE);
iamCommonResponseDto.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE);
return iamCommonResponseDto;
}
/**
* 处理统一响应PO层,并加密业务字段
* @param acceptMessageHeader
@@ -219,7 +369,6 @@ public class SyncIamService {
public SendPoSystemPo handlerGloablResponse(MessageHeader acceptMessageHeader, Object object) throws JsonProcessingException {
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
MessageHeader sendMessageHeader = new MessageHeader();
sendMessageHeader.setInterfaceID(acceptMessageHeader.getInterfaceID());
sendMessageHeader.setUUID(UUIDGenerator.generate());