사용자 등록
Swit User 생성
- Swit 의 User API를 이용하여 사용자를 등록 합니다.
- 소속팀 정보는 유저를 생성후 유저아이디를 가지고 생성되어 있는 팀에 추가 시켜줘야 합니다.
public HrUserDto createSwitUser(SwitUserDto user) throws Exception {
HrUserDto hrUserDto = new HrUserDto();
try {
// 유저생성 파라미터를 설정한다.
JSONObject params = new JSONObject();
params.put("language", user.getLanguage());
params.put("timezone", user.getTimezone());
params.put("user_name", user.getUserName());
params.put("user_email", user.getEmail());
params.put("tel", user.getTel());
params.put("msg", user.getMsg());
SwitTokenDto tokenDto = authService.getSwitTokenByDb("cts-api");
JsonObject result = httpUtils.post("organization.user.create", params, tokenDto);
// 팀에 유저 추가 및 메인팀 설정
List<String> userIds = new ArrayList<String>();
userIds.add(result.get("data").getAsJsonObject().get("user").getAsJsonObject().get("user_id").getAsString());
teamService.addUserToSwitTeam(user.getTeamId(), userIds); // return값 없음
//Team에 유저 등록하면 main_dept_yn 자동 Y
// 유저생셩 및 팀추가 결과 반영
JsonElement data = result.get("data");
JsonElement returnUser = data.getAsJsonObject().get("user");
user = this.getSwitUserByAPI(returnUser.getAsJsonObject().get("user_id").getAsString());
// Swit DB 저장
List<SwitUserEntity> switUserEntities = new ArrayList<>();
List<SwitTeamUserEntity> switTeamUserEntities = new ArrayList<>();
switUserEntities.add(user.toEntity());
for(SwitDeptDto team : user.getTeam()){
SwitTeamUserEntity entity = new SwitTeamUserEntity();
entity.setUserId(user.getUserId());
entity.setTeamId(team.getTeamId());
entity.setMainDeptYn(team.getMainDeptYn());
entity.setUpdated(LocalDateTime.now());
switTeamUserEntities.add(entity);
}
this.saveSwitUsers(switUserEntities);
this.teamService.saveSwitTeamUser(switTeamUserEntities);
// HR DB 저장
hrUserDto.setUserId(user.getEmail());
hrUserDto.setUserEmail(user.getEmail());
hrUserDto.setSwitId(user.getUserId());
hrUserDto.setUserName(user.getUserName());
hrUserDto.setTel(user.getTel());
hrUserDto.setActive(true);
hrUserDto.setDeptId(teamService.getHrDeptByTeamId(user.getTeamId()).getDeptId());
this.updateHrUser(hrUserDto.toEntity());
} catch (Exception e) {
log.error(e.getMessage());
throw new Exception(e);
}
return hrUserDto;
}
public SwitDeptDto addUserToSwitTeam(String teamId, List<String> userIds) throws Exception{
SwitDeptDto retVal = new SwitDeptDto();
JSONObject params = new JSONObject();
try {
JSONArray userList = new JSONArray();
for(String id : userIds)
userList.add(id);
params.put("user_ids", userList);
params.put("id", teamId);
SwitTokenDto tokenDto = authService.getSwitTokenByDb("cts-api");
JsonObject result = httpUtils.post("team.user.add", params, tokenDto);
JsonElement data = result.getAsJsonObject().get("data").getAsJsonObject().get("data");
retVal = this.parsingTeamResult(data);
} catch (Exception e) {
log.error(e.getMessage());
throw new Exception(e);
}
return retVal;
}