Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,22 @@ public boolean isAlreadyUsedName(String username){

//2
public JwtTokenDTO signUpWithSocial(String email, String username) {
String finalUsername = username;
if (memberRepository.existsByUsername(finalUsername)) {
Random random = new Random();
do {
int randomNumber = random.nextInt(10000); // 0~9999
finalUsername = username + randomNumber;
} while (memberRepository.existsByUsername(finalUsername));
}

MemberDTO memberDTO = new MemberDTO();
memberDTO.setEmail(email);
memberDTO.setUsername(username);
memberDTO.setUsername(finalUsername);
memberDTO.setPassword(""); // 소셜 로그인이라 비밀번호는 필요 없음
memberRepository.save(MemberMapper.toEntity(memberDTO));
Member savedMember = memberRepository.save(MemberMapper.toEntity(memberDTO));
Author author = new Author(savedMember,"", "", new HashSet<>());
authorRepository.save(author);
return signInWithSocial(email);
}

Expand All @@ -100,12 +111,29 @@ public JwtTokenDTO naverLogin(String code, String state) {
// DB에서 사용자 확인, 없으면 신규 생성
Member member = memberRepository.findByEmail(email)
.orElseGet(() -> {
// 닉네임 중복 시 랜덤 숫자 붙이기
String finalUsername = nickname;
if (memberRepository.existsByUsername(finalUsername)) {
Random random = new Random();
do {
int randomNumber = random.nextInt(10000); // 0~9999
finalUsername = nickname + randomNumber;
} while (memberRepository.existsByUsername(finalUsername));
}

// Member 저장
Member newMember = Member.builder()
.username(nickname)
.username(finalUsername)
.email(email)
.password("NaverLogin") // 비밀번호는 네이버 로그인의 경우 사용하지 않음
.build();
return memberRepository.save(newMember);
Member savedMember = memberRepository.save(newMember);

// Author 저장 (MapsId 매핑)
Author author = new Author(savedMember, "", "", new HashSet<>());
authorRepository.save(author);

return savedMember;
});


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ public String getAccessToken(String code, String state) {
throw new RuntimeException("Failed to get access token from Naver");
}
}

// 네이버 API에서 사용자 정보 가져오기
public Map<String, Object> getUserInfo(String accessToken) {
String userInfoUrl = "https://openapi.naver.com/v1/nid/me";
Expand All @@ -76,4 +75,5 @@ public Map<String, Object> getUserInfo(String accessToken) {
throw new RuntimeException("Failed to get user info from Naver");
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,11 @@ public class SearchWorkService {

@Transactional
public void processSearch(String searchWord) {
// searchWord에 해당하는 엔티티를 검색
SearchWork searchWork = searchWorkRepository.findBySearchWord(searchWord)
.orElseGet(() -> {
// 없다면 새로 생성
SearchWork newSearchWork = new SearchWork(searchWord);
return searchWorkRepository.save(newSearchWork);
});

// 검색 횟수 증가
.orElse(null);
if (searchWork == null) {
searchWork = new SearchWork(searchWord); // count = 0 이어야 함
}
searchWork.incrementSearchCount();
searchWorkRepository.save(searchWork);
}
Expand Down