Skip to content

Commit ccef828

Browse files
committed
♻️ refactor: 스토리, 입양, 후원 조회
1 parent 9ec20de commit ccef828

22 files changed

Lines changed: 186 additions & 32 deletions

File tree

src/main/java/kpaas/dogcat/domain/adopt/AdoptScheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ public class AdoptScheduler {
1414

1515
private final AdoptCommandService adoptCommandService;
1616

17-
// @Scheduled(cron = "0 0 0 * * ?", zone = "Asia/Seoul")
18-
@Scheduled(fixedRate = 60000)
17+
@Scheduled(cron = "0 0 0 * * ?", zone = "Asia/Seoul")
18+
// @Scheduled(fixedRate = 60000)
1919
public void closeExpiredAdoption() {
2020
log.info("[ 입양 공고 마감 스케줄러 시작 ]");
2121
adoptCommandService.closeAdoption();

src/main/java/kpaas/dogcat/domain/adopt/entity/Adopt.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import kpaas.dogcat.domain.chat.entity.ChatRoom;
88
import kpaas.dogcat.domain.member.entity.Member;
99
import kpaas.dogcat.domain.pet.entity.Pet;
10+
import kpaas.dogcat.global.enums.PostType;
1011
import lombok.AllArgsConstructor;
1112
import lombok.Builder;
1213
import lombok.Getter;
@@ -61,6 +62,11 @@ public class Adopt {
6162

6263
private LocalDateTime appliedAt;
6364

65+
@Enumerated(EnumType.STRING)
66+
@Builder.Default
67+
@Column(nullable = false)
68+
private PostType postType = PostType.ADOPTION;
69+
6470
@ManyToOne(fetch = FetchType.LAZY)
6571
@JoinColumn(name = "member_id", nullable = false)
6672
private Member writer; // 공고 작성자

src/main/java/kpaas/dogcat/domain/adopt/repository/AdoptQueryDsl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ List<Adopt> searchAdoptions(Long cursor, int size,
1414
Region region,
1515
String district,
1616
String keyword);
17+
18+
List<Adopt> findAdoptsByWalletAddress(String walletAddress, Long cursor, int size);
1719
}

src/main/java/kpaas/dogcat/domain/adopt/repository/AdoptQueryDslImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,21 @@ public List<Adopt> searchAdoptions(Long cursor,
6363
.limit(size)
6464
.fetch();
6565
}
66+
67+
@Override
68+
public List<Adopt> findAdoptsByWalletAddress(String walletAddress, Long cursor, int size) {
69+
QAdopt adopt = QAdopt.adopt;
70+
71+
var query = jpaQueryFactory
72+
.selectFrom(adopt)
73+
.where(adopt.writer.id.eq(walletAddress))
74+
.orderBy(adopt.id.desc())
75+
.limit(size);
76+
77+
if (cursor != null) {
78+
query.where(adopt.id.lt(cursor));
79+
}
80+
81+
return query.fetch();
82+
}
6683
}

src/main/java/kpaas/dogcat/domain/adopt/repository/AdoptRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import kpaas.dogcat.domain.adopt.entity.Adopt;
44
import kpaas.dogcat.domain.adopt.enums.AdoptionStatus;
5-
import kpaas.dogcat.domain.donate.donation.entity.Donation;
6-
import kpaas.dogcat.domain.donate.donation.enums.DonationStatus;
75
import org.springframework.data.domain.Pageable;
86
import org.springframework.data.jpa.repository.JpaRepository;
97
import org.springframework.data.jpa.repository.Query;
@@ -25,4 +23,6 @@ public interface AdoptRepository extends JpaRepository<Adopt, Long>, AdoptQueryD
2523
List<Adopt> findByAdopterIdAndIdLessThanOrderByIdDesc(String adopterId, Long cursor, Pageable pageable);
2624

2725
List<Adopt> findByStatus(AdoptionStatus adoptionStatus);
26+
27+
// List<Adopt> findAdoptionsByWalletAddress(String walletAddress, Long cursor, int size);
2828
}

src/main/java/kpaas/dogcat/domain/donate/donation/entity/Donation.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import kpaas.dogcat.domain.donate.donationList.entity.DonationList;
88
import kpaas.dogcat.domain.member.entity.Member;
99
import kpaas.dogcat.domain.pet.entity.Pet;
10+
import kpaas.dogcat.global.enums.PostType;
1011
import lombok.AllArgsConstructor;
1112
import lombok.Builder;
1213
import lombok.Getter;
@@ -43,6 +44,11 @@ public class Donation {
4344
@Builder.Default
4445
private DonationStatus status = DonationStatus.ACTIVE; // 후원 상태
4546

47+
@Enumerated(EnumType.STRING)
48+
@Builder.Default
49+
@Column(nullable = false)
50+
private PostType postType = PostType.DONATION;
51+
4652
@Column(nullable = false)
4753
private String content;
4854

src/main/java/kpaas/dogcat/domain/donate/donation/repository/DonationQueryDsl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package kpaas.dogcat.domain.donate.donation.repository;
22

3-
import kpaas.dogcat.domain.adopt.entity.Adopt;
4-
import kpaas.dogcat.domain.adopt.enums.AdoptionStatus;
5-
import kpaas.dogcat.domain.adopt.enums.Region;
63
import kpaas.dogcat.domain.donate.donation.entity.Donation;
74
import kpaas.dogcat.domain.donate.donation.enums.DonationStatus;
85
import kpaas.dogcat.domain.pet.enums.Breed;
@@ -14,4 +11,6 @@ List<Donation> searchDonations(Long cursor, int size,
1411
Breed breed,
1512
DonationStatus status,
1613
String keyword);
14+
15+
List<Donation> findDonationsByWalletAddress(String walletAddress, Long cursor, int size);
1716
}

src/main/java/kpaas/dogcat/domain/donate/donation/repository/DonationQueryDslImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,21 @@ public List<Donation> searchDonations(Long cursor, int size,
5151
.limit(size)
5252
.fetch();
5353
}
54+
55+
@Override
56+
public List<Donation> findDonationsByWalletAddress(String walletAddress, Long cursor, int size) {
57+
QDonation donation = QDonation.donation;
58+
59+
var query = jpaQueryFactory
60+
.selectFrom(donation)
61+
.where(donation.member.id.eq(walletAddress))
62+
.orderBy(donation.id.desc())
63+
.limit(size);
64+
65+
if (cursor != null) {
66+
query.where(donation.id.lt(cursor));
67+
}
68+
69+
return query.fetch();
70+
}
5471
}

src/main/java/kpaas/dogcat/domain/member/controller/MemberController.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import kpaas.dogcat.global.apiPayload.CustomResponse;
1313
import kpaas.dogcat.global.apiPayload.code.SuccessCode;
1414
import kpaas.dogcat.global.auth.CurrentWalletAddress;
15+
import kpaas.dogcat.global.enums.PostType;
1516
import lombok.RequiredArgsConstructor;
1617
import org.springframework.web.bind.annotation.*;
1718

@@ -47,12 +48,20 @@ public CustomResponse<MemberResDto.ProfileResDto> getProfile(
4748
return CustomResponse.onSuccess(SuccessCode.OK, memberQueryService.getProfile(walletAddress));
4849
}
4950

50-
@Operation(summary = "작성한 일지 조회(마이페이지)", description = "일상일지 / 입양 후기 일지 모두 조회하는 API입니다.")
51+
@Operation(summary = "작성한 일지 조회(마이페이지)", description = "일상일지 / 입양 후기 일지 모두 조회하는 API입니다." +
52+
"타입에 DAILY, REVIEW, ADOPTION, DONATION 선택하세요. ")
53+
@ApiResponses(value = {
54+
@ApiResponse(responseCode = "COMMON200", description = "성공입니다"),
55+
@ApiResponse(responseCode = "COMMON400", description = "잘못된 요청입니다.")
56+
})
5157
@GetMapping("/member/stories")
52-
public CustomResponse<MemberResDto.StoriesListDto> getStories(
58+
public CustomResponse<MemberResDto.StoriesListDto> getMyStories(
5359
@Parameter(hidden = true) @CurrentWalletAddress String walletAddress,
5460
@RequestParam(required = false) Long cursor,
55-
@RequestParam(defaultValue = "9") int size){
56-
return CustomResponse.onSuccess(SuccessCode.OK, memberQueryService.getStories(walletAddress, cursor, size));
61+
@RequestParam(defaultValue = "9") int size,
62+
@RequestParam(required = false) PostType type
63+
) {
64+
return CustomResponse.onSuccess(SuccessCode.OK,
65+
memberQueryService.getStories(walletAddress, cursor, size, type));
5766
}
5867
}

src/main/java/kpaas/dogcat/domain/member/converter/MemberConverter.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package kpaas.dogcat.domain.member.converter;
22

3+
import kpaas.dogcat.domain.adopt.entity.Adopt;
4+
import kpaas.dogcat.domain.donate.donation.entity.Donation;
35
import kpaas.dogcat.domain.member.dto.MemberReqDto;
46
import kpaas.dogcat.domain.member.dto.MemberResDto;
57
import kpaas.dogcat.domain.member.entity.Member;
68
import kpaas.dogcat.domain.stories.story.entity.Story;
9+
import kpaas.dogcat.global.enums.PostType;
710
import org.springframework.stereotype.Component;
811

912
@Component
@@ -44,10 +47,27 @@ public MemberResDto.StoryDto toStoryDto(Story story,
4447
Long likeCount,
4548
Long commentCount) {
4649
return MemberResDto.StoryDto.builder()
47-
.storyId(story.getId())
50+
.postId(story.getId())
4851
.title(story.getTitle())
4952
.likes(likeCount)
5053
.comments(commentCount)
54+
.type(story.getPostType())
55+
.build();
56+
}
57+
58+
public MemberResDto.StoryDto toStoryDtoFromAdopt(Adopt adopt) {
59+
return MemberResDto.StoryDto.builder()
60+
.postId(adopt.getId())
61+
.title(adopt.getTitle())
62+
.type(PostType.ADOPTION)
63+
.build();
64+
}
65+
66+
public MemberResDto.StoryDto toStoryDtoFromDonation(Donation donation) {
67+
return MemberResDto.StoryDto.builder()
68+
.postId(donation.getId())
69+
.title(donation.getTitle())
70+
.type(PostType.DONATION)
5171
.build();
5272
}
5373
}

0 commit comments

Comments
 (0)