【添加】用户创建接口的核心逻辑处理完毕
This commit is contained in:
+2
-2
@@ -84,10 +84,10 @@ public class SyncIamController {
|
||||
// TODO 处理业务逻辑,存储用户,返回用户id
|
||||
IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse();
|
||||
|
||||
SendPoSystemPo sendPoSystemPo = new SendPoSystemPo();
|
||||
|
||||
// 处理统一响应PO层,并加密业务字段
|
||||
MessageHeader acceptMessageHeader = iamUserInfo.getMessageHeader();
|
||||
sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamUserCreateResponse);
|
||||
SendPoSystemPo sendPoSystemPo = this.syncIamService.handlerGloablResponse(acceptMessageHeader, iamUserCreateResponse);
|
||||
|
||||
return sendPoSystemPo;
|
||||
}
|
||||
|
||||
+104
-1
@@ -1,28 +1,42 @@
|
||||
package com.jero.modules.docking.iam.service;
|
||||
|
||||
import cn.hutool.core.lang.Validator;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.bamboocloud.codec.BamboocloudFacade;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.util.DateUtils;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
import com.jero.common.util.UUIDGenerator;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.modules.docking.iam.annotation.IamProperty;
|
||||
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.dto.response.SchemaResponseInner;
|
||||
import com.jero.modules.docking.iam.exception.IamGlobalException;
|
||||
import com.jero.modules.docking.iam.po.MessageHeader;
|
||||
import com.jero.modules.docking.iam.po.SendPoSystemPo;
|
||||
import com.jero.modules.docking.iam.po.SendReturnsPo;
|
||||
import com.jero.modules.docking.utils.DockingConstant;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.security.core.parameters.P;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.print.Doc;
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -40,6 +54,9 @@ public class SyncIamService {
|
||||
@Value("${iam.bimRemotePwd}")
|
||||
private String bimRemotePwd;
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 校验IAM调用时的账号密码是否正确
|
||||
* 校验通过了正常走后续,不通过直接返回
|
||||
@@ -106,10 +123,96 @@ public class SyncIamService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换Iam传来的用户数据,进行转换后存储
|
||||
* @param userAcceptDto
|
||||
* @return
|
||||
*/
|
||||
public IamUserCreateResponse userCreateService(IamUserAcceptDto userAcceptDto){
|
||||
IamUserCreateResponse iamUserCreateResponse = new IamUserCreateResponse();
|
||||
iamUserCreateResponse.setBimRequestId(userAcceptDto.getBimRequestId());
|
||||
iamUserCreateResponse.setResultCode(DockingConstant.IAM_SUCCESS_RESULT_CODE);
|
||||
iamUserCreateResponse.setMessage(DockingConstant.IAM_SUCCESS_MESSAGE);
|
||||
|
||||
// 将iam的数据转换成sysUser数据存入数据库
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setUsername(userAcceptDto.getSrmsUsername());
|
||||
sysUser.setRealname(userAcceptDto.getSrmsRealname());
|
||||
|
||||
sysUser.setPassword(CommonConstant.DEFAULT_PASSWORD);
|
||||
String salt = oConvertUtils.randomGen(8);
|
||||
sysUser.setSalt(salt);
|
||||
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), sysUser.getPassword(), salt);
|
||||
sysUser.setPassword(passwordEncode);
|
||||
|
||||
if (NumberUtil.isInteger(userAcceptDto.getSrmsSex())){
|
||||
sysUser.setSex(Integer.valueOf(userAcceptDto.getSrmsSex()));
|
||||
}
|
||||
|
||||
sysUser.setEmail(userAcceptDto.getSrmsEmail());
|
||||
sysUser.setPhone(userAcceptDto.getSrmsPhone());
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
sysUser.setTelephone(userAcceptDto.getSrmsOfficePhone());
|
||||
sysUser.setCreateBy("IAM");
|
||||
sysUser.setUpdateBy("IAM");
|
||||
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsCreateTime())){
|
||||
Date createTime = DateUtils.str2Date(userAcceptDto.getSrmsCreateTime(), new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"));
|
||||
sysUser.setCreateTime(createTime);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotEmpty(userAcceptDto.getSrmsUpdateTime())){
|
||||
Date updateTime = DateUtils.str2Date(userAcceptDto.getSrmsUpdateTime(), new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"));
|
||||
sysUser.setCreateTime(updateTime);
|
||||
}
|
||||
|
||||
sysUser.setActivitiSync(0);
|
||||
sysUser.setUserIdentity(0);
|
||||
|
||||
sysUser.setTypeId(userAcceptDto.getSrmsTypeId());
|
||||
sysUser.setPost(userAcceptDto.getSrmsPost());
|
||||
sysUser.setDutyLevelId(userAcceptDto.getSrmsDutyLevelId());
|
||||
sysUser.setRace(userAcceptDto.getSrmsRace());
|
||||
sysUser.setPostSequence(userAcceptDto.getSrmsPostSequence());
|
||||
sysUser.setTechnicalPosition(userAcceptDto.getSrmsTechnicalPosition());
|
||||
sysUser.setDirectLeadership(userAcceptDto.getSrmsDirectLeadership());
|
||||
sysUser.setPostStatus(userAcceptDto.getSrmsPostStatus());
|
||||
sysUser.setIdNumber(userAcceptDto.getSrmsIdNumber());
|
||||
sysUser.setEducation(userAcceptDto.getSrmsEducation());
|
||||
sysUser.setDepartmentBeforeTransfer(userAcceptDto.getSrmsDepartmentBeforeTransfer());
|
||||
sysUser.setLaborDispatchCode(userAcceptDto.getSrmsLaborDispatchCode());
|
||||
sysUser.setLaborDispatchName(userAcceptDto.getSrmsLaborDispatchName());
|
||||
sysUser.setProfessionalQualification(userAcceptDto.getSrmsProfessionalQualification());
|
||||
sysUser.setProfessionalLevel(userAcceptDto.getSrmsProfessionalLevel());
|
||||
sysUser.setEntryTime(userAcceptDto.getSrmsEntryTime());
|
||||
|
||||
// 获取组织机构(多个逗号分隔),TODO 有两个和组织关联在字段,用哪个还需要再和IAM沟通
|
||||
String companyCode = userAcceptDto.getSrmsCompanyCode();
|
||||
String orgCode = userAcceptDto.getSrmsOrgCode();
|
||||
String selectedDeparts = orgCode;
|
||||
|
||||
// 获取角色(多个逗号分隔),针对大部分角用户默认写死一般用户(TODO 需要根据实际情况再沟通一遍角色怎么自动赋予)
|
||||
String selectedRoles = "123"; // 一般用户的角色ID
|
||||
|
||||
// 存储到用户表中
|
||||
this.sysUserService.saveUser(sysUser, selectedRoles, selectedDeparts);
|
||||
|
||||
iamUserCreateResponse.setUid(sysUser.getId()); // TODO sysUser处理完毕得到用户id后,设置
|
||||
|
||||
return iamUserCreateResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理统一响应PO层,并加密业务字段
|
||||
* @param acceptMessageHeader
|
||||
* @param iamSchemaResponse
|
||||
* @param object
|
||||
* @return
|
||||
* @throws JsonProcessingException
|
||||
*/
|
||||
|
||||
+10
@@ -25,4 +25,14 @@ public class DockingConstant {
|
||||
*/
|
||||
public static String IAM_ENCRYPT_SECRET = "123456";
|
||||
|
||||
/**
|
||||
* IAM正确时的返回码
|
||||
*/
|
||||
public static String IAM_SUCCESS_RESULT_CODE = "0";
|
||||
|
||||
/**
|
||||
* IAM正确时的返回消息
|
||||
*/
|
||||
public static String IAM_SUCCESS_MESSAGE = "success";
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user