회원가입, 회원정보수정, 회원탈퇴, 패스워드초기화, 상태수정, 역할 추가, 역할 삭제, 회원목록 추가

This commit is contained in:
2025-12-03 14:29:48 +09:00
parent 3d6393a65f
commit c8846e97f3
21 changed files with 483 additions and 172 deletions

View File

@@ -5,6 +5,7 @@ import com.kamco.cd.kamcoback.members.dto.MembersDto;
import com.kamco.cd.kamcoback.postgres.core.MembersCoreService;
import lombok.RequiredArgsConstructor;
import org.mindrot.jbcrypt.BCrypt;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -15,6 +16,9 @@ public class AdminService {
private final MembersCoreService membersCoreService;
@Value("${member.init_password}")
private String password;
/**
* 회원가입
*
@@ -23,11 +27,11 @@ public class AdminService {
*/
@Transactional
public Long saveMember(MembersDto.AddReq addReq) {
// salt 생성
String salt = BCryptSaltGenerator.generateSaltWithEmployeeNo(addReq.getEmployeeNo());
// salt 생성, 사번이 salt
String salt = BCryptSaltGenerator.generateSaltWithEmployeeNo(addReq.getEmployeeNo().trim());
// 패스워드 암호화
String hashedPassword = BCrypt.hashpw(addReq.getPassword(), salt);
// 패스워드 암호화, 초기 패스워드 고정
String hashedPassword = BCrypt.hashpw(password, salt);
addReq.setPassword(hashedPassword);
return membersCoreService.saveMembers(addReq);
}
@@ -50,4 +54,31 @@ public class AdminService {
public void deleteRoles(MembersDto.RolesDto rolesDto) {
membersCoreService.deleteRoles(rolesDto);
}
/**
* 역할 수정
*
* @param statusDto
*/
public void updateStatus(MembersDto.StatusDto statusDto) {
membersCoreService.updateStatus(statusDto);
}
/**
* 회원 탈퇴
*
* @param statusDto
*/
public void deleteAccount(MembersDto.StatusDto statusDto) {
membersCoreService.deleteAccount(statusDto);
}
/**
* 패스워드 초기화
*
* @param id
*/
public void resetPassword(Long id) {
membersCoreService.resetPassword(id);
}
}

View File

@@ -1,10 +1,15 @@
package com.kamco.cd.kamcoback.members.service;
import com.kamco.cd.kamcoback.config.BCryptSaltGenerator;
import com.kamco.cd.kamcoback.members.dto.MembersDto;
import com.kamco.cd.kamcoback.members.dto.MembersDto.Basic;
import com.kamco.cd.kamcoback.postgres.core.MembersCoreService;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.mindrot.jbcrypt.BCrypt;
import org.springframework.data.domain.Page;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -24,4 +29,30 @@ public class MembersService {
public Page<Basic> findByMembers(MembersDto.SearchReq searchReq) {
return membersCoreService.findByMembers(searchReq);
}
/**
* 회원정보 수정
*
* @param uuid
* @param updateReq
*/
public void updateMember(UUID uuid, MembersDto.UpdateReq updateReq) {
if (StringUtils.isNotBlank(updateReq.getPassword())) {
if (StringUtils.isBlank(updateReq.getEmployeeNo())) {
throw new HttpMessageNotReadableException("패스워드 변경시 사번은 필수 값입니다.");
}
// salt 생성, 사번이 salt
String salt =
BCryptSaltGenerator.generateSaltWithEmployeeNo(updateReq.getEmployeeNo().trim());
// 패스워드 암호화, 초기 패스워드 고정
String hashedPassword = BCrypt.hashpw(updateReq.getPassword(), salt);
updateReq.setPassword(hashedPassword);
}
membersCoreService.updateMembers(uuid, updateReq);
}
}