Skip to content

Commit d8cee6c

Browse files
authored
Merge pull request #431 from Juinjang/fix/#430
fix #430 - 1. Reward 달성 시에 content 수정 2. 얻은 연필 목록에서 buildingName 같이 넘기도록 수정
2 parents 956612f + 4d9712b commit d8cee6c

5 files changed

Lines changed: 34 additions & 21 deletions

File tree

src/main/java/umc/th/juinjang/api/note/shared/service/SharedNoteCommandService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ public void executePayment(Member buyer, PencilAccount buyerAccount, PencilAccou
9595
}
9696

9797
private AcquiredPencil createAcquiredPencil(Long sharedNoteId, Member seller, Long price, AcquiredType type) {
98-
return AcquiredPencil.create(seller, "", sharedNoteId, price, false, type);
98+
String content = "노트 공유 완료!";
99+
return AcquiredPencil.create(seller, content, sharedNoteId, price, false, type);
99100
}
100101

101102
private void consumePurchasedPencils(Member buyer, long unpaidPencil) {

src/main/java/umc/th/juinjang/api/pencil/service/AcquiredPencilFinder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.springframework.stereotype.Component;
66

77
import lombok.RequiredArgsConstructor;
8+
import umc.th.juinjang.api.pencil.service.response.AcquiredPencilResponse;
89
import umc.th.juinjang.domain.member.model.Member;
910
import umc.th.juinjang.domain.pencil.acquired.model.AcquiredPencil;
1011
import umc.th.juinjang.domain.pencil.acquired.repository.AcquiredPencilRepository;
@@ -15,8 +16,8 @@ public class AcquiredPencilFinder {
1516

1617
private final AcquiredPencilRepository acquiredPencilRepository;
1718

18-
public List<AcquiredPencil> findAllByMemberOrderByCreatedAtDesc(Member member) {
19-
return acquiredPencilRepository.findAllByMemberOrderByCreatedAtDesc(member);
19+
public List<AcquiredPencilResponse> findAllByMemberOrderByCreatedAtDesc(Member member) {
20+
return acquiredPencilRepository.findAllByMemberWithBuildingNameOrderByCreatedAtDesc(member);
2021
}
2122

2223
public boolean existsByMemberAndIsReadFalse(Member member) {

src/main/java/umc/th/juinjang/api/pencil/service/PencilQueryService.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import umc.th.juinjang.api.pencilAccount.service.PencilAccountFinder;
2626
import umc.th.juinjang.common.exception.handler.PencilAccountHandler;
2727
import umc.th.juinjang.domain.member.model.Member;
28-
import umc.th.juinjang.domain.pencil.acquired.model.AcquiredPencil;
2928
import umc.th.juinjang.domain.pencil.purchased.model.PurchasedPencil;
3029
import umc.th.juinjang.domain.pencil.used.model.UsedPencil;
3130
import umc.th.juinjang.domain.pencilaccount.model.PencilAccount;
@@ -42,10 +41,7 @@ public class PencilQueryService {
4241
private final PencilAccountFinder pencilAccountFinder;
4342

4443
public List<AcquiredPencilResponse> getAcquiredPencils(Member member) {
45-
List<AcquiredPencil> acquiredPencils = acquiredPencilFinder.findAllByMemberOrderByCreatedAtDesc(member);
46-
return acquiredPencils.stream()
47-
.map(AcquiredPencilResponse::from)
48-
.toList();
44+
return acquiredPencilFinder.findAllByMemberOrderByCreatedAtDesc(member);
4945
}
5046

5147
public List<PurchasedPencilResponse> getPurchasedPencils(Member member) {

src/main/java/umc/th/juinjang/api/pencil/service/response/AcquiredPencilResponse.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import lombok.Builder;
66
import lombok.Getter;
7-
import umc.th.juinjang.domain.pencil.acquired.model.AcquiredPencil;
7+
import umc.th.juinjang.domain.pencil.acquired.model.AcquiredType;
88

99
@Getter
1010
public class AcquiredPencilResponse {
@@ -13,31 +13,34 @@ public class AcquiredPencilResponse {
1313
private final String content;
1414
private final Long sharedNoteId;
1515
private final Long acquiredQuantity;
16+
private final String buildingName;
1617
private final boolean isRead;
1718
private final String type;
1819
private final LocalDateTime createdAt;
1920

2021
@Builder
2122
public AcquiredPencilResponse(Long acquiredPencilId, String content, Long sharedNoteId, Long acquiredQuantity,
22-
boolean isRead, String type, LocalDateTime createdAt) {
23+
String buildingName, boolean isRead, String type, LocalDateTime createdAt) {
2324
this.acquiredPencilId = acquiredPencilId;
2425
this.content = content;
2526
this.sharedNoteId = sharedNoteId;
2627
this.acquiredQuantity = acquiredQuantity;
28+
this.buildingName = buildingName;
2729
this.isRead = isRead;
2830
this.type = type;
2931
this.createdAt = createdAt;
3032
}
3133

32-
public static AcquiredPencilResponse from(AcquiredPencil acquiredPencil) {
33-
return AcquiredPencilResponse.builder()
34-
.acquiredPencilId(acquiredPencil.getId())
35-
.content(acquiredPencil.getContent())
36-
.sharedNoteId(acquiredPencil.getSharedNoteId())
37-
.acquiredQuantity(acquiredPencil.getAcquiredQuantity())
38-
.isRead(acquiredPencil.isRead())
39-
.type(acquiredPencil.getType().name())
40-
.createdAt(acquiredPencil.getCreatedAt())
41-
.build();
34+
public AcquiredPencilResponse(Long acquiredPencilId, String content, Long sharedNoteId,
35+
Long acquiredQuantity, boolean isRead, AcquiredType type,
36+
LocalDateTime createdAt, String buildingName) {
37+
this.acquiredPencilId = acquiredPencilId;
38+
this.content = content;
39+
this.sharedNoteId = sharedNoteId;
40+
this.acquiredQuantity = acquiredQuantity;
41+
this.isRead = isRead;
42+
this.type = type.name();
43+
this.createdAt = createdAt;
44+
this.buildingName = buildingName;
4245
}
4346
}

src/main/java/umc/th/juinjang/domain/pencil/acquired/repository/AcquiredPencilRepository.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,25 @@
33
import java.util.List;
44

55
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Query;
7+
import org.springframework.data.repository.query.Param;
68

9+
import umc.th.juinjang.api.pencil.service.response.AcquiredPencilResponse;
710
import umc.th.juinjang.domain.member.model.Member;
811
import umc.th.juinjang.domain.pencil.acquired.model.AcquiredPencil;
912

1013
public interface AcquiredPencilRepository extends JpaRepository<AcquiredPencil, Long> {
11-
List<AcquiredPencil> findAllByMemberOrderByCreatedAtDesc(Member member);
14+
15+
@Query("SELECT new umc.th.juinjang.api.pencil.service.response.AcquiredPencilResponse(" +
16+
"ap.id, ap.content, ap.sharedNoteId, ap.acquiredQuantity, " +
17+
"ap.isRead, ap.type, ap.createdAt, sn.buildingName) " +
18+
"FROM AcquiredPencil ap " +
19+
"LEFT JOIN SharedNote sn ON ap.sharedNoteId = sn.sharedNoteId " +
20+
"WHERE ap.member = :member " +
21+
"ORDER BY ap.createdAt DESC")
22+
List<AcquiredPencilResponse> findAllByMemberWithBuildingNameOrderByCreatedAtDesc(@Param("member") Member member);
1223

1324
boolean existsByMemberAndIsReadFalse(Member member);
25+
1426
boolean existsByMember(Member member);
1527
}

0 commit comments

Comments
 (0)