From 3359f65bfc5c170291a56a5f22c4070ea3ab3acb Mon Sep 17 00:00:00 2001 From: seohyun-lee Date: Fri, 16 Feb 2024 00:03:02 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Relation=20=EC=83=9D=EC=84=B1=20=EC=8B=9C?= =?UTF-8?q?=EC=97=90=20Journey,=20Week=EB=8F=84=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matching/service/MatchingService.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/matching/service/MatchingService.java b/withmate/src/main/java/com/gdscewha/withmate/domain/matching/service/MatchingService.java index 7389aed..667e73e 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/matching/service/MatchingService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/matching/service/MatchingService.java @@ -3,6 +3,8 @@ import com.gdscewha.withmate.common.response.exception.CategoryException; import com.gdscewha.withmate.common.response.exception.ErrorCode; import com.gdscewha.withmate.common.response.exception.MatchingException; +import com.gdscewha.withmate.domain.journey.entity.Journey; +import com.gdscewha.withmate.domain.journey.service.JourneyService; import com.gdscewha.withmate.domain.matching.dto.MatchedResultDto; import com.gdscewha.withmate.domain.matching.dto.MatchingInputDto; import com.gdscewha.withmate.domain.matching.dto.MatchingResDto; @@ -15,6 +17,9 @@ import com.gdscewha.withmate.domain.model.Category; import com.gdscewha.withmate.domain.relation.entity.Relation; import com.gdscewha.withmate.domain.relation.service.RelationMateService; +import com.gdscewha.withmate.domain.sticker.service.StickerService; +import com.gdscewha.withmate.domain.week.entity.Week; +import com.gdscewha.withmate.domain.week.service.WeekService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,6 +38,10 @@ public class MatchingService { private final MemberService memberService; private final MemberRelationService memberRelationService; private final RelationMateService relationMateService; + // Relation 만들 때 필요한 Service들 + private final JourneyService journeyService; + private final WeekService weekService; + private final StickerService stickerService; // 내 매칭 받아오기 (MatchingResDto 반환, 존재하지 않으면 null 반환) @@ -154,16 +163,19 @@ public List relateMatesByCategory(Category category, Matching myMatchi memberList.add(me); // Relation 생성, MemberRelationPair 생성 - Relation pairRelation = relationMateService.createRelation(); - memberRelationService.createMemberRelationPair(mateList, memberList, pairRelation); - // Matching 삭제 - //matchingRepository.deleteAll(matchingList); + Relation relation = relationMateService.createRelation(); + memberRelationService.createMemberRelationPair(mateList, memberList, relation); + + // 첫번째 Journey 생성 + Journey journey = journeyService.createJourney(relation); + // 첫번째 Week 생성 + Week week = weekService.createWeek(); // Member들의 isRelationed를 true로 업데이트 후 저장 mate.setIsRelationed(true); me.setIsRelationed(true); - // 각 멤버에 Matching null로 + // 각 멤버에 Matching null로, Matching 삭제 memberRepository.save(deleteMatching(mate)); memberRepository.save(deleteMatching(me)); // 수정된 Matching 리스트 반환 From 592f4be6416146724879b9022a5f301bbe9c76ae Mon Sep 17 00:00:00 2001 From: seohyun-lee Date: Fri, 16 Feb 2024 00:24:51 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Week,=20Sticker=20=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=EA=B0=92=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../withmate/domain/sticker/service/StickerService.java | 2 +- .../com/gdscewha/withmate/domain/week/service/WeekService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java index 2fe4dff..9bd6b00 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/sticker/service/StickerService.java @@ -33,7 +33,7 @@ public Sticker createSticker(StickerCreateDTO stickerCreateDTO) { Member member = memberService.getCurrentMember(); Week currentWeek = weekService.updateStickerCountOfCurrentWeek(1L); Sticker sticker = Sticker.builder() - .stickerNum(currentWeek.getStickerCount() + 1) + .stickerNum(currentWeek.getStickerCount() + 1) // 처음에 1L .title(stickerCreateDTO.getTitle()) .creationTime(LocalDate.now()) .stickerColor(stickerCreateDTO.getStickerColor()) diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/week/service/WeekService.java b/withmate/src/main/java/com/gdscewha/withmate/domain/week/service/WeekService.java index 2f742c4..48c5c12 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/week/service/WeekService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/week/service/WeekService.java @@ -27,7 +27,7 @@ public Week createWeek() { if (journey == null) throw new WeekException(ErrorCode.JOURNEY_NOT_FOUND); Week week = Week.builder() - .weekNum(journey.getWeekCount() + 1) // 처음에 1L + .weekNum(journey.getWeekCount()) // 처음에 1L (위에서 업데이트) .weekStartDate(LocalDate.now()) .stickerCount(0L) // 처음에 0L .journey(journey) From c4bdb05883a9f0140575bfc528e8d7d2608d041c Mon Sep 17 00:00:00 2001 From: seohyun-lee Date: Fri, 16 Feb 2024 00:55:23 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix(Relation,=20Auth)=20:=20=EC=A7=80?= =?UTF-8?q?=EC=86=8D=20=EC=9D=BC=EC=88=98,=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= =?UTF-8?q?=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../withmate/auth/login/AuthService.java | 39 +++++++++++-------- .../relation/service/RelationMateService.java | 2 +- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/withmate/src/main/java/com/gdscewha/withmate/auth/login/AuthService.java b/withmate/src/main/java/com/gdscewha/withmate/auth/login/AuthService.java index 1d43857..65e7824 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/auth/login/AuthService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/auth/login/AuthService.java @@ -13,6 +13,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; @@ -56,28 +57,32 @@ public String memberSignUp(SignUpReqDto signUpReqDto) { //회원가입 @Transactional public String memberLogin(LoginReqDto loginRequestDto) { // 기본 로그인 // 사용자가 입력한 아이디, 비밀번호 - log.info("아이디 비번 get"); String userName = loginRequestDto.getUserName(); String password = loginRequestDto.getPasswd(); - log.info("토큰"); UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userName, password); // 사용자 인증 log.info("사용자 인증 진행"); - Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); - // 사용자 인증이 완료된 경우 - if (authentication.isAuthenticated()) { - log.info("사용자 인증 완료"); - /* 사용자가 인증되면 AuthDetails 객체가 생성되어 Authentication 객체에 포함되고, - * 이 AuthDetails 객체를 통해서 인증된 사용자의 정보를 확인 가능 */ - AuthDetails authDetails = (AuthDetails) authentication.getPrincipal(); - Member member = authDetails.getMember(); - Long authenticatedId = member.getId(); - String authenticatedUserName = member.getUserName(); - // 로그인 시간 업데이트 - memberRepository.save(member.updateLoginDate()); - // JWT 토큰 반환 - log.info("JWT 토큰 반환"); - return jwtTokenProvider.generateJwtToken(authenticatedId, authenticatedUserName); + try { + Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); + // 사용자 인증이 완료된 경우 + if (authentication.isAuthenticated()) { + log.info("사용자 인증 완료"); + /* 사용자가 인증되면 AuthDetails 객체가 생성되어 Authentication 객체에 포함되고, + * 이 AuthDetails 객체를 통해서 인증된 사용자의 정보를 확인 가능 */ + AuthDetails authDetails = (AuthDetails) authentication.getPrincipal(); + Member member = authDetails.getMember(); + Long authenticatedId = member.getId(); + String authenticatedUserName = member.getUserName(); + // 로그인 시간 업데이트 + memberRepository.save(member.updateLoginDate()); + // JWT 토큰 반환 + log.info("JWT 토큰 반환"); + return jwtTokenProvider.generateJwtToken(authenticatedId, authenticatedUserName); + } + } catch(AuthenticationException e){ + // 인증 실패 시 예외 처리 + log.error("사용자 인증 실패: {}", e.getMessage()); + return null; } return null; } diff --git a/withmate/src/main/java/com/gdscewha/withmate/domain/relation/service/RelationMateService.java b/withmate/src/main/java/com/gdscewha/withmate/domain/relation/service/RelationMateService.java index 1e5d7e4..ff66888 100644 --- a/withmate/src/main/java/com/gdscewha/withmate/domain/relation/service/RelationMateService.java +++ b/withmate/src/main/java/com/gdscewha/withmate/domain/relation/service/RelationMateService.java @@ -98,7 +98,7 @@ public RelationManageDto getRelationManageInfo() { return RelationManageDto.builder() .startDate(relation.getStartDate().toString()) - .proceedingTime(daysDifference) + .proceedingTime(daysDifference + 1) // 차이에서 하루를 더한 날짜 .myMessage(myMR.getMessage()) .mateName(mateMR.getMember().getNickname()) .mateCategory(mateMR.getCategory().toString())