Skip to content

Commit

Permalink
PR : JPA 영속성 컨텍스트 관련 수정 (#19)
Browse files Browse the repository at this point in the history
* Chore : JPA 영속성 컨텍스트 관련 로직 수정

* Chore : gradle.yml 파일 수정 반영
  • Loading branch information
MinsFuture authored Jun 25, 2024
1 parent 488af5b commit f0ea957
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public List<Photo> savePhotosToWalkInvitation(MultipartFile[] multipartFiles, Wa
.walkInvitation(walkInvitation)
.build();

savedPhotos.add(photoRepository.save(photo));
savedPhotos.add(photo);
}

return savedPhotos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class HomeController {

@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@PreAuthorize("isAuthenticated()")
@Operation(summary = "홈 화면 글쓰기 로직", description = "홈 화면 글쓰기 로직, WalkInvitaionCreateRequestDto는 json형식, uploadPhotos는 multipart/form-data")
@Operation(summary = "홈 화면 글쓰기 로직", description = "홈 화면 글쓰기 로직, WalkInvitaionCreateRequestDto는 application/json형식, uploadPhotos는 multipart/form-data로 한번에 form-data 형식으로 보내주면 됨. <br> try it out을 누르면 dto 정보를 확인 할 수 있습니다. swagger에서 직접 테스트는 안되니 참고하세요!")
@ApiResponse(responseCode = "200", description = "글쓰기 성공 시 Long 타입 id 값 반환")
public ResponseEntity<Long> createWalkInvitation(
@RequestPart("walkInvitaionCreateRequestDto") WalkInvitaionCreateRequestDto request,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,5 @@ public class WalkInvitaionCreateRequestDto {
private double latitude; // 산책 위치 위도
private double longitude; // 산책 위치 경도
private String detailedLocation; // 세부 위치
private LocalDateTime walkDateTime; // 산책 시작 날짜 및 시간

private LocalDateTime walkStartDateTime; // 산책 시작 날짜 및 시간
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static List<HomePageResponseDto> getListFrom(List<WalkInvitation> walkInv
.latitude(walkInvitation.getLatitude())
.longitude(walkInvitation.getLongitude())
.detailedLocation(walkInvitation.getDetailedLocation())
.walkDateTime(walkInvitation.getWalkDateTime())
.walkDateTime(walkInvitation.getWalkStartDateTime())
.walkingStatus(walkInvitation.getWalkingStatus())
// .walkInvitationPhotoUrl(walkInvitation.getPhotoUrls().get(0).getPhotoUrl())
.walkInvitationPhotoUrl(null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class WalkInvitation {
private String detailedLocation; // 세부 위치

@Column(nullable = false)
private LocalDateTime walkDateTime; // 산책 날짜
private LocalDateTime walkStartDateTime; // 산책 날짜

private String walkingStatus; // 산책 상태

Expand All @@ -52,16 +52,20 @@ public class WalkInvitation {
private List<Photo> photoUrls = new ArrayList<>();

@Builder
public WalkInvitation(Long id, String title, String content, double latitude, double longitude, String detailedLocation, LocalDateTime walkDateTime, String walkingStatus, Member writer, List<Photo> photoUrls) {
public WalkInvitation(Long id, String title, String content, double latitude, double longitude, String detailedLocation, LocalDateTime walkStartDateTime, String walkingStatus, Member writer, List<Photo> photoUrls) {
this.id = id;
this.title = title;
this.content = content;
this.latitude = latitude;
this.longitude = longitude;
this.detailedLocation = detailedLocation;
this.walkDateTime = walkDateTime;
this.walkStartDateTime = walkStartDateTime;
this.walkingStatus = walkingStatus;
this.writer = writer;
this.photoUrls = photoUrls;
}

public void addPhotos(List<Photo> photos){
this.photoUrls = photos;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
public interface WalkInvitationRepository extends JpaRepository<WalkInvitation, Long> {
List<WalkInvitation> findAllByWriter(Member member);

List<WalkInvitation> findAllByWalkDateTimeBetween(LocalDateTime start, LocalDateTime end);
List<WalkInvitation> findAllByWalkStartDateTimeBetween(LocalDateTime start, LocalDateTime end);

@Query("SELECT u FROM walk_invitations u WHERE " +
"(6371 * acos(cos(radians(:centerLat)) * cos(radians(u.latitude)) " +
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.gdsc.petwalk.domain.walkinvitation.service;

import com.gdsc.petwalk.domain.member.entity.Member;
import com.gdsc.petwalk.domain.member.repository.MemberRepository;
import com.gdsc.petwalk.domain.photo.entity.Photo;
import com.gdsc.petwalk.domain.photo.service.PhotoService;
import com.gdsc.petwalk.domain.walkinvitation.dto.request.WalkInvitaionCreateRequestDto;
Expand All @@ -10,6 +11,7 @@
import com.gdsc.petwalk.domain.walkinvitation.repository.WalkInvitationRepository;
import com.gdsc.petwalk.global.principal.PrincipalDetails;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -23,6 +25,7 @@
@RequiredArgsConstructor
public class WalkInvitationService {

private final MemberRepository memberRepository;
private final WalkInvitationRepository walkInvitationRepository;
private final PhotoService photoService;

Expand All @@ -42,7 +45,7 @@ public WalkInvitationDetailsResponseDto getHomeDetailsById(Long id) {
.latitude(walkInvitation.getLatitude())
.longitude(walkInvitation.getLongitude())
.detailedLocation(walkInvitation.getDetailedLocation())
.walkDateTime(walkInvitation.getWalkDateTime())
.walkDateTime(walkInvitation.getWalkStartDateTime())
.walkingStatus(walkInvitation.getWalkingStatus())
.walkInvitationPhotoUrls(photoUrls)
.memberName(member.getNickName())
Expand All @@ -53,7 +56,8 @@ public WalkInvitationDetailsResponseDto getHomeDetailsById(Long id) {
public Long createWalkInvitation(WalkInvitaionCreateRequestDto request,
MultipartFile[] multipartFiles, PrincipalDetails principalDetails) {

Member member = principalDetails.getMember();
Member member = memberRepository.findByEmail(principalDetails.getMember().getEmail())
.orElseThrow(() -> new UsernameNotFoundException("해당 Email에 해당하는 유저가 없습니다"));

WalkInvitation walkInvitation = WalkInvitation.builder()
.writer(member)
Expand All @@ -62,11 +66,13 @@ public Long createWalkInvitation(WalkInvitaionCreateRequestDto request,
.latitude(request.getLatitude())
.longitude(request.getLongitude())
.detailedLocation(request.getDetailedLocation())
.walkDateTime(request.getWalkDateTime())
.walkStartDateTime(request.getWalkStartDateTime())
.walkingStatus("산책 대기 중")
.build();
member.getWalkInvitations().add(walkInvitation);

walkInvitation.setPhotoUrls(photoService.savePhotosToWalkInvitation(multipartFiles, walkInvitation));
List<Photo> photos = photoService.savePhotosToWalkInvitation(multipartFiles, walkInvitation);
walkInvitation.addPhotos(photos);

walkInvitationRepository.save(walkInvitation);

Expand All @@ -82,7 +88,7 @@ public List<HomePageResponseDto> getTodayHomePageLists(PrincipalDetails principa
LocalDateTime after24Hours = now.plusHours(24);

List<WalkInvitation> walkInvitations
= walkInvitationRepository.findAllByWalkDateTimeBetween(now, after24Hours);
= walkInvitationRepository.findAllByWalkStartDateTimeBetween(now, after24Hours);

return HomePageResponseDto.getListFrom(walkInvitations);
}
Expand Down

0 comments on commit f0ea957

Please sign in to comment.