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
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.33'
implementation 'org.projectlombok:lombok:1.18.26'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,38 +26,38 @@ public class BookmarkController {
@GetMapping("/names")
public ApiResponse<List<PlaceBookmarkDto>> getBookmarkPlaceNames(
@AuthenticationPrincipal PrincipalDetails principalDetails){
return ApiResponse.success(Success.GET_BOOKMARK_PLACE_NAMES_SUCCESS, bookmarkService.getBookmarkPlaceNames(principalDetails.getMember()));
return ApiResponse.success(Success.GET_BOOKMARK_PLACE_NAMES_SUCCESS, bookmarkService.getBookmarkPlaceNames(principalDetails.getMemberId()));
}
@GetMapping("/place")
public ApiResponse<List<PlaceBookmarkRes>> getPlaceBookmarks(
@AuthenticationPrincipal PrincipalDetails principalDetails){
return ApiResponse.success(Success.GET_BOOKMARK_PLACES_SUCCESS, bookmarkService.getPlaceBookmarks(principalDetails.getMember()));
return ApiResponse.success(Success.GET_BOOKMARK_PLACES_SUCCESS, bookmarkService.getPlaceBookmarks(principalDetails.getMemberId()));
}

@GetMapping("/plan")
public ApiResponse<List<PlanBookmarkRes>> getPlanBookmarks(
@AuthenticationPrincipal PrincipalDetails principalDetails){
return ApiResponse.success(Success.GET_BOOKMARK_PLAN_SUCCESS, bookmarkService.getPlanBookmarks(principalDetails.getMember()));
return ApiResponse.success(Success.GET_BOOKMARK_PLAN_SUCCESS, bookmarkService.getPlanBookmarks(principalDetails.getMemberId()));
}

@PatchMapping("/place/{placeId}")
public ApiResponse<?> updatePlaceBookmark(
@AuthenticationPrincipal PrincipalDetails principalDetails, @PathVariable Long placeId){
bookmarkService.placeBookmark(principalDetails.getMember(), placeId);
bookmarkService.placeBookmark(principalDetails.getMemberId(), placeId);
return ApiResponse.success(Success.CHANGE_BOOKMARK_SUCCESS);
}

@PatchMapping("/plan/{planId}")
public ApiResponse<?> updatePlanBookmark(
@AuthenticationPrincipal PrincipalDetails principalDetails, @PathVariable Long planId){
bookmarkService.planBookmark(principalDetails.getMember(), planId);
bookmarkService.planBookmark(principalDetails.getMemberId(), planId);
return ApiResponse.success(Success.CHANGE_BOOKMARK_SUCCESS);
}

@GetMapping("/plan/{planId}")
public ApiResponse<PlanBookMarkStateRes> findPlanBookmark(
@AuthenticationPrincipal PrincipalDetails principalDetails, @PathVariable Long planId){
return ApiResponse.success(Success.GET_BOOKMARK_PLAN_STATE_SUCCESS,bookmarkService.findPlanBookmark(principalDetails.getMember(), planId));
return ApiResponse.success(Success.GET_BOOKMARK_PLAN_STATE_SUCCESS,bookmarkService.findPlanBookmark(principalDetails.getMemberId(), planId));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@
import Journey.Together.domain.place.entity.Place;
import Journey.Together.global.common.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.*;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import Journey.Together.domain.bookbark.entity.PlanBookmarkRes;
import Journey.Together.domain.bookbark.repository.PlaceBookmarkRepository;
import Journey.Together.domain.bookbark.repository.PlanBookmarkRepository;
import Journey.Together.domain.member.service.MemberService;
import Journey.Together.domain.plan.entity.Day;
import Journey.Together.domain.plan.entity.Plan;
import Journey.Together.domain.plan.repository.DayRepository;
Expand Down Expand Up @@ -39,12 +40,14 @@ public class BookmarkService {
private final DayRepository dayRepository;
private final PlanRepository planRepository;

private final MemberService memberService;

private final S3Client s3Client;


//북마크한 여행지 이름만 가져오기
public List<PlaceBookmarkDto> getBookmarkPlaceNames(Member member){
public List<PlaceBookmarkDto> getBookmarkPlaceNames(Long memberId){
Member member = memberService.findMemberById(memberId);
List<PlaceBookmark> placeBookmarkList = placeBookmarkRepository.findAllByMemberOrderByPlaceNameAsc(member);
if(placeBookmarkList.isEmpty() || placeBookmarkList==null)
return new ArrayList<>();
Expand All @@ -55,8 +58,9 @@ public List<PlaceBookmarkDto> getBookmarkPlaceNames(Member member){

@Transactional
// 북마크 상태변경
public void placeBookmark(Member member, Long placeId){
public void placeBookmark(Long memberId, Long placeId){
Place place = getPlace(placeId);
Member member = memberService.findMemberById(memberId);

PlaceBookmark placeBookmark = placeBookmarkRepository.findPlaceBookmarkByPlaceAndMember(place, member);
if (placeBookmark == null) {
Expand All @@ -73,7 +77,8 @@ public void placeBookmark(Member member, Long placeId){

@Transactional
// 북마크 상태변경
public void planBookmark(Member member, Long planId){
public void planBookmark(Long memberId, Long planId){
Member member = memberService.findMemberById(memberId);
Plan plan = planRepository.findById(planId)
.orElseThrow(() -> new ApplicationException(ErrorCode.NOT_FOUND_PLACE_EXCEPTION));

Expand All @@ -92,7 +97,8 @@ public void planBookmark(Member member, Long planId){

@Transactional
// 북마크 상태변경
public PlanBookMarkStateRes findPlanBookmark(Member member, Long planId){
public PlanBookMarkStateRes findPlanBookmark(Long memberId, Long planId){
Member member = memberService.findMemberById(memberId);
Plan plan = planRepository.findById(planId)
.orElseThrow(() -> new ApplicationException(ErrorCode.NOT_FOUND_PLAN_EXCEPTION));
PlanBookmark planBookmark = planBookmarkRepository.findPlanBookmarkByPlanAndMember(plan, member);
Expand All @@ -109,8 +115,9 @@ private Place getPlace(Long placeId){
()->new ApplicationException(ErrorCode.NOT_FOUND_PLACE_EXCEPTION));
}

public List<PlaceBookmarkRes> getPlaceBookmarks(Member member) {
public List<PlaceBookmarkRes> getPlaceBookmarks(Long memberId) {
List<PlaceBookmarkRes> list = new ArrayList<>();
Member member = memberService.findMemberById(memberId);

List<PlaceBookmark> placeBookmarkList = placeBookmarkRepository.findAllByMemberOrderByCreatedAtDesc(member);
placeBookmarkList.forEach(
Expand All @@ -123,18 +130,19 @@ public List<PlaceBookmarkRes> getPlaceBookmarks(Member member) {
return list;
}

public List<PlanBookmarkRes> getPlanBookmarks(Member member) {
public List<PlanBookmarkRes> getPlanBookmarks(Long memberId) {
List<PlanBookmarkRes> list = new ArrayList<>();
Member member = memberService.findMemberById(memberId);

List<PlanBookmark> planBookmarkList = planBookmarkRepository.findAllByMemberOrderByCreatedAtDesc(member);
planBookmarkList.forEach( planBookmark -> {
list.add(PlanBookmarkRes.of(planBookmark.getPlan(),s3Client.getUrl()+planBookmark.getPlan().getMember().getProfileUuid()+"/profile_"+planBookmark.getPlan().getMember().getProfileUuid(),getPlanImageUrl(member, planBookmark.getPlan())));
list.add(PlanBookmarkRes.of(planBookmark.getPlan(),s3Client.getUrl()+planBookmark.getPlan().getMember().getProfileUuid()+"/profile_"+planBookmark.getPlan().getMember().getProfileUuid(),getPlanImageUrl(planBookmark.getPlan())));
});

return list;
}

private String getPlanImageUrl(Member member, Plan plan){
private String getPlanImageUrl(Plan plan){
List<Day> dayList = dayRepository.findByPlanOrderByCreatedAtDesc(plan);
if (dayList.isEmpty() || dayList == null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ public ApiResponse<LoginRes> signIn(@RequestHeader("Authorization") String token
@PostMapping("/sign-out")
public ApiResponse<Void> signOut(HttpServletRequest request, @AuthenticationPrincipal PrincipalDetails principalDetails) {
String token = request.getHeader("Authorization");
authService.signOut(token, principalDetails.getMember());
authService.signOut(token, principalDetails.getMemberId());
return ApiResponse.success(Success.SIGNOUT_SUCCESS);
}

@Operation(summary = "회원탈퇴 API", description = "회원탈퇴 등록")
@DeleteMapping("/withdrawal")
public ApiResponse<Void> withdrawal(@AuthenticationPrincipal PrincipalDetails principalDetails) {
authService.withdrawal(principalDetails.getMember());
authService.withdrawal(principalDetails.getMemberId());
return ApiResponse.success(Success.DELETE_USER_SUCCESS);
}

Expand All @@ -59,6 +59,6 @@ public ApiResponse<TokenDto> reissue(HttpServletRequest request, @Authentication
if (token == null || !token.startsWith("Bearer ")) {
return ApiResponse.success(Success.LOGIN_SUCCESS);
}
return ApiResponse.success(Success.RE_ISSUE_TOKEN_SUCCESS,authService.reissue(token, principalDetails.getMember()));
return ApiResponse.success(Success.RE_ISSUE_TOKEN_SUCCESS,authService.reissue(token, principalDetails.getMemberId()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,25 @@ public class MemberController {

@PatchMapping ("")
public ApiResponse saveMemberInfo(@AuthenticationPrincipal PrincipalDetails principalDetails, @RequestPart(required = false) MultipartFile profileImage, @RequestPart(required = false) MemberReq memberReq) {
memberService.saveInfo(principalDetails.getMember(),profileImage,memberReq);
memberService.saveInfo(principalDetails.getMemberId(),profileImage,memberReq);
return ApiResponse.success(Success.UPDATE_USER_INFO_SUCCESS);
}

@GetMapping("")
public ApiResponse<MemberRes> findMemberInfo(@AuthenticationPrincipal PrincipalDetails principalDetails){
MemberRes memberRes = memberService.findMemberInfo(principalDetails.getMember());
MemberRes memberRes = memberService.findMemberInfo(principalDetails.getMemberId());
return ApiResponse.success(Success.GET_MYPAGE_SUCCESS,memberRes);
}

@PatchMapping("/interest-type")
public ApiResponse updateInterestType(@AuthenticationPrincipal PrincipalDetails principalDetails, @RequestBody InterestDto interestDto) {
memberService.updateMemberInterest(principalDetails.getMember(),interestDto);
memberService.updateMemberInterest(principalDetails.getMemberId(),interestDto);
return ApiResponse.success(Success.UPDATE_USER_INFO_SUCCESS);
}

@GetMapping("/interest-type")
public ApiResponse<InterestDto> findInterestType(@AuthenticationPrincipal PrincipalDetails principalDetails) {
InterestDto interestDto = memberService.findMemberInterest(principalDetails.getMember());
InterestDto interestDto = memberService.findMemberInterest(principalDetails.getMemberId());
return ApiResponse.success(Success.GET_USER_INTEREST_SUCCESS,interestDto);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public class MyPageController {

@GetMapping
public ApiResponse<MyPageRes> getMyPage(@AuthenticationPrincipal PrincipalDetails principalDetails) {
return ApiResponse.success(Success.GET_MYPAGE_SUCCESS, memberService.getMypage(principalDetails.getMember()));
return ApiResponse.success(Success.GET_MYPAGE_SUCCESS, memberService.getMypage(principalDetails.getMemberId()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public class AuthService {
private final NaverProperties naverProperties;
private final S3Client s3Client;

private final MemberService memberService;
private final RestTemplate restTemplate = new RestTemplate();

@Transactional
Expand Down Expand Up @@ -131,21 +132,23 @@ public LoginRes signIn(String token, String type, LoginReq loginReq) throws IOEx
return LoginRes.of(member, tokenDto);
}
@Transactional
public void signOut(String token, Member member) {
public void signOut(String token, Long memberId) {
// Validation
String accessToken = token.substring(7);
tokenProvider.validateToken(accessToken);

// Business Logic - Refresh Token 삭제 및 Access Token 블랙리스트 등록
tokenProvider.getExpiration(accessToken);
Member member = memberService.findMemberById(memberId);
member.setRefreshToken(null);

// Response
}

@Transactional
public void withdrawal(Member member) {
public void withdrawal(Long memberId) {
// Validation
Member member = memberService.findMemberById(memberId);

// Business Logic - 회원 논리적 삭제 진행
if(member.getLoginType().equals(LoginType.NAVER)) {
Expand Down Expand Up @@ -173,12 +176,14 @@ public void withdrawal(Member member) {

}
@Transactional
public TokenDto reissue(String token, Member member) {
public TokenDto reissue(String token, Long memberId) {
String refreshToken = token.substring(7);

// Token 유효성 검사
tokenProvider.validateToken(refreshToken);

Member member = memberService.findMemberById(memberId);

String memberRefreshToken = member.getRefreshToken();
if (refreshToken.isBlank() || memberRefreshToken.isEmpty() || !memberRefreshToken.equals(refreshToken)) {
throw new ApplicationException(ErrorCode.WRONG_TOKEN_EXCEPTION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import Journey.Together.domain.member.dto.MemberRes;
import Journey.Together.domain.member.entity.Interest;
import Journey.Together.domain.member.entity.Member;
import Journey.Together.domain.member.enumerate.MemberType;
import Journey.Together.domain.member.repository.InterestRepository;
import Journey.Together.domain.member.repository.MemberRepository;
import Journey.Together.domain.place.repository.PlaceReviewRepository;
Expand All @@ -32,20 +33,18 @@ public class MemberService {
private final PlanReviewRepository planReviewRepository;
private final PlaceReviewRepository placeReviewRepository;


public MyPageRes getMypage(Member member){
public MyPageRes getMypage(Long memberId){
Member member = findMemberById(memberId);
Long date = Duration.between(member.getCreatedAt(), LocalDateTime.now()).toDays();
long cnt1 = placeReviewRepository.countPlaceReviewByMember(member);
long cnt2 = planReviewRepository.countPlanReviewByMember(member);
System.out.println(cnt1);
System.out.println(cnt2);
return new MyPageRes(member.getNickname(), (int) (cnt1+cnt2), date, s3Client.getUrl()+member.getProfileUuid()+"/profile_"+member.getProfileUuid());
}

@Transactional
public void saveInfo(Member member, MultipartFile profileImage, MemberReq memberReq){
public void saveInfo(Long memberId, MultipartFile profileImage, MemberReq memberReq){
// Validation
memberRepository.findMemberByEmailAndDeletedAtIsNull(member.getEmail()).orElseThrow(()->new ApplicationException(ErrorCode.NOT_FOUND_EXCEPTION));
Member member = findMemberById(memberId);
//Business
if (profileImage != null) {
s3Client.update(member.getProfileUuid()+"/profile_"+member.getProfileUuid(),profileImage);
Expand Down Expand Up @@ -93,26 +92,26 @@ public void saveInfo(Member member, MultipartFile profileImage, MemberReq member
memberRepository.save(member);
}
@Transactional
public MemberRes findMemberInfo(Member member){
public MemberRes findMemberInfo(Long memberId){
// Validation
memberRepository.findMemberByEmailAndDeletedAtIsNull(member.getEmail()).orElseThrow(()->new ApplicationException(ErrorCode.NOT_FOUND_EXCEPTION));
Member member = findMemberById(memberId);
//Business
MemberRes memberRes = MemberRes.of(member, s3Client.getUrl()+member.getProfileUuid()+"/profile_"+member.getProfileUuid());
//Response
return memberRes;
}
@Transactional
public void updateMemberInterest(Member member, InterestDto interestDto){
public void updateMemberInterest(Long memberId, InterestDto interestDto){
// Validation
memberRepository.findMemberByEmailAndDeletedAtIsNull(member.getEmail()).orElseThrow(()->new ApplicationException(ErrorCode.NOT_FOUND_EXCEPTION));
Member member = findMemberById(memberId);
Interest interest = interestRepository.findByMemberAndDeletedAtIsNull(member);
//Business
interest.update(interestDto);
}
@Transactional
public InterestDto findMemberInterest(Member member){
public InterestDto findMemberInterest(Long memberId){
// Validation
memberRepository.findMemberByEmailAndDeletedAtIsNull(member.getEmail()).orElseThrow(()->new ApplicationException(ErrorCode.NOT_FOUND_EXCEPTION));
Member member = findMemberById(memberId);
Interest interest = interestRepository.findByMemberAndDeletedAtIsNull(member);
//Business
InterestDto interestDto = InterestDto.of(
Expand All @@ -126,4 +125,8 @@ public InterestDto findMemberInterest(Member member){
return interestDto;
}

public Member findMemberById(Long memberId){
return memberRepository.findById(memberId).orElseThrow(() -> new ApplicationException(ErrorCode.NOT_FOUND_EXCEPTION));
}

}
Loading