Skip to content

Commit 5374dfb

Browse files
authored
Merge pull request #28 from uju-in/LIME-20-change-pay-point
[LIME-20] 포인트 지급 처리를 AOP -> Event로 변경
2 parents a0c64b4 + bb5bda2 commit 5374dfb

File tree

7 files changed

+53
-71
lines changed

7 files changed

+53
-71
lines changed

Diff for: lime-api/build.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ dependencies {
1818
implementation 'org.springframework.boot:spring-boot-starter-security'
1919
implementation 'org.springframework.boot:spring-boot-starter-web'
2020
implementation 'org.springframework.boot:spring-boot-starter-aop'
21+
implementation 'org.springframework:spring-tx'
22+
2123

2224
implementation project(':lime-domain')
2325
implementation project(':lime-common')
@@ -34,7 +36,7 @@ dependencies {
3436
// 테스트 관련
3537
testImplementation(testFixtures(project(':lime-domain')))
3638
testImplementation 'org.springframework.boot:spring-boot-starter-test'
37-
39+
3840
// Cache
3941
implementation 'org.springframework.boot:spring-boot-starter-cache'
4042
implementation "com.github.ben-manes.caffeine:caffeine:3.1.8"

Diff for: lime-api/src/main/java/com/programmers/lime/domains/comment/application/CommentService.java

+8-9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.springframework.context.ApplicationEventPublisher;
44
import org.springframework.stereotype.Service;
5+
import org.springframework.transaction.annotation.Transactional;
56

67
import com.programmers.lime.common.cursor.CursorPageParameters;
78
import com.programmers.lime.common.cursor.CursorSummary;
@@ -19,7 +20,7 @@
1920
import com.programmers.lime.domains.sse.SsePayload;
2021
import com.programmers.lime.error.BusinessException;
2122
import com.programmers.lime.error.ErrorCode;
22-
import com.programmers.lime.global.level.PayPoint;
23+
import com.programmers.lime.global.event.point.PointEvent;
2324
import com.programmers.lime.global.util.MemberUtils;
2425

2526
import lombok.RequiredArgsConstructor;
@@ -37,8 +38,8 @@ public class CommentService {
3738
private final MemberUtils memberUtils;
3839
private final ApplicationEventPublisher applicationEventPublisher;
3940

40-
@PayPoint(5)
41-
public Long createComment(
41+
@Transactional
42+
public void createComment(
4243
final Long feedId,
4344
final String content
4445
) {
@@ -48,8 +49,7 @@ public Long createComment(
4849
SsePayload ssePayload = CommentCreateEvent.toSsePayload(commentWriter.getNickname(), comment);
4950

5051
applicationEventPublisher.publishEvent(ssePayload);
51-
52-
return commentWriter.getId();
52+
applicationEventPublisher.publishEvent(new PointEvent(commentWriter.getId(), 5));
5353
}
5454

5555
public void modifyComment(
@@ -89,8 +89,8 @@ public CommentGetCursorServiceResponse getFeedComments(
8989
return new CommentGetCursorServiceResponse(cursorSummary, totalCommentCount);
9090
}
9191

92-
@PayPoint(20)
93-
public Long adoptComment(
92+
@Transactional
93+
public void adoptComment(
9494
final Long feedId,
9595
final Long commentId
9696
) {
@@ -111,7 +111,6 @@ public Long adoptComment(
111111
}
112112

113113
commentModifier.adopt(comment);
114-
115-
return comment.getMemberId();
114+
applicationEventPublisher.publishEvent(new PointEvent(comment.getMemberId(), 20));
116115
}
117116
}

Diff for: lime-api/src/main/java/com/programmers/lime/domains/review/application/ReviewService.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package com.programmers.lime.domains.review.application;
22

3-
import java.util.UUID;
4-
53
import java.io.IOException;
64
import java.util.List;
5+
import java.util.UUID;
76
import java.util.stream.Collectors;
87

8+
import org.springframework.context.ApplicationEventPublisher;
99
import org.springframework.stereotype.Service;
10+
import org.springframework.transaction.annotation.Transactional;
1011
import org.springframework.util.StringUtils;
1112
import org.springframework.web.multipart.MultipartFile;
1213

@@ -26,7 +27,7 @@
2627
import com.programmers.lime.domains.review.model.ReviewSortCondition;
2728
import com.programmers.lime.error.BusinessException;
2829
import com.programmers.lime.error.ErrorCode;
29-
import com.programmers.lime.global.level.PayPoint;
30+
import com.programmers.lime.global.event.point.PointEvent;
3031
import com.programmers.lime.global.util.MemberUtils;
3132
import com.programmers.lime.s3.S3Manager;
3233

@@ -47,9 +48,10 @@ public class ReviewService {
4748
private final MemberUtils memberUtils;
4849
private final ReviewReader reviewReader;
4950
private final S3Manager s3Manager;
51+
private final ApplicationEventPublisher applicationEventPublisher;
5052

51-
@PayPoint(15)
52-
public Long createReview(
53+
@Transactional
54+
public void createReview(
5355
final Long itemId,
5456
final ReviewContent reviewContent,
5557
final List<MultipartFile> multipartReviewImages
@@ -58,8 +60,7 @@ public Long createReview(
5860

5961
Long memberId = memberUtils.getCurrentMemberId();
6062
reviewAppender.append(itemId, memberId, reviewContent, reviewImageURLs);
61-
62-
return memberId;
63+
applicationEventPublisher.publishEvent(new PointEvent(memberId, 15));
6364
}
6465

6566
private List<String> uploadReviewImages(final List<MultipartFile> multipartReviewImages) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.programmers.lime.global.event.point;
2+
3+
import lombok.Getter;
4+
import lombok.RequiredArgsConstructor;
5+
6+
@Getter
7+
@RequiredArgsConstructor
8+
public class PointEvent {
9+
10+
private final Long memberId;
11+
private final int point;
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.programmers.lime.global.event.point;
2+
3+
import org.springframework.context.event.EventListener;
4+
import org.springframework.stereotype.Component;
5+
6+
import com.programmers.lime.domains.member.domain.Member;
7+
import com.programmers.lime.domains.member.implementation.MemberReader;
8+
9+
import lombok.RequiredArgsConstructor;
10+
11+
@Component
12+
@RequiredArgsConstructor
13+
public class PointEventListener {
14+
15+
private final MemberReader memberReader;
16+
17+
@EventListener
18+
public void earnPoint(final PointEvent pointEvent) {
19+
final Member member = memberReader.read(pointEvent.getMemberId());
20+
member.earnPoint(pointEvent.getPoint());
21+
}
22+
}

Diff for: lime-api/src/main/java/com/programmers/lime/global/level/PayPoint.java

-12
This file was deleted.

Diff for: lime-api/src/main/java/com/programmers/lime/global/level/PointManagerAop.java

-42
This file was deleted.

0 commit comments

Comments
 (0)