
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.example.educatback.Application;
import com.example.educatback.DuplicateIdException;
import com.example.educatback.controller.request.MemberRequest;
import com.example.educatback.controller.response.MemberResponse;
import com.example.educatback.model.entity.Member;
import com.example.educatback.model.entity.Solved;
import com.example.educatback.model.repository.MemberRepository;
import jakarta.persistence.EntityNotFoundException;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class MemberAppService {
private final MemberRepository memberRepository;
//회원가입
@Transactional
public MemberResponse.Detail createMember(MemberRequest.Create memberRequest){
// 중복된 아이디 검사
Optional<Member> existingMember = memberRepository.findById(memberRequest.getId());
if (existingMember.isPresent()) {
// 중복된 아이디가 있을 경우 클라이언트에게 중복 에러 응답을 반환합니다.
throw new DuplicateIdException("ID '" + memberRequest.getId() + "' is already in use.");
}
var result = new BCryptPasswordEncoder().encode(memberRequest.getPassword());
Member member = Member.builder()
.name(memberRequest.getName())
.username(memberRequest.getId())
.password(result)
.focus(50)
.grammar(50)
.sentence(50)
.understand(50)
.expression(50)
.word(50)
.grade(memberRequest.getGrade())
.gender(memberRequest.getGender())
.build();
Member savedMember = memberRepository.save(member);
return MemberResponse.Detail.of(savedMember);
}
@Transactional
public MemberResponse.Detail getMember(String memberId){
Optional<Member> existingMember = memberRepository.findById(memberId);
if (!existingMember.isPresent()) {
throw new EntityNotFoundException("ID '" + memberId + "' 없다 이놈아");
}
Member member = existingMember.get();
MemberResponse.Detail memberDetail = MemberResponse.Detail.of(member);
return memberDetail;
}
@Transactional
public MemberResponse.Rating getMemberRating(String memberId){
Optional<Member> existingMember = memberRepository.findById(memberId);
if (!existingMember.isPresent()) {
throw new EntityNotFoundException("ID '" + memberId + "' 없다 이놈아");
}
Member member = existingMember.get();
MemberResponse.Rating memberRating = MemberResponse.Rating.of(member);
return memberRating;
}
@Transactional
public List<Solved> getSolvedByMember(String memberId) {
System.out.println("solved 하기전");
Optional<Member> member = memberRepository.findById(memberId);
if (!member.isPresent()) {
throw new EntityNotFoundException("Member not found");
}
System.out.println("solved 하고나서");
return member.get().getSolveds();
}
}