Skip to content

Commit 78c3c5d

Browse files
committed
feat: 마이바 킵/킵 해제 시 사용자 활동 점수 반영
1 parent 733b829 commit 78c3c5d

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/main/java/com/back/domain/mybar/service/MyBarService.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.back.domain.mybar.enums.KeepStatus;
88
import com.back.domain.mybar.repository.MyBarRepository;
99
import com.back.domain.user.repository.UserRepository;
10+
import com.back.domain.user.service.AbvScoreService;
1011
import lombok.RequiredArgsConstructor;
1112
import org.springframework.data.domain.Page;
1213
import org.springframework.data.domain.PageRequest;
@@ -26,6 +27,7 @@ public class MyBarService {
2627
private final MyBarRepository myBarRepository;
2728
private final UserRepository userRepository;
2829
private final CocktailRepository cocktailRepository;
30+
private final AbvScoreService abvScoreService;
2931

3032
// 내 바 목록 조회 (무한스크롤)
3133
// - 커서: lastKeptAt + lastId 조합으로 안정적인 정렬/페이지네이션
@@ -83,6 +85,8 @@ public void keep(Long userId, Long cocktailId) {
8385
// 해제돼 있던 건 복원
8486
myBar.setStatus(KeepStatus.ACTIVE);
8587
myBar.setDeletedAt(null);
88+
// 활동 점수: 복원 시 +0.1
89+
abvScoreService.awardForKeep(userId);
8690
}
8791
return; // 이미 ACTIVE여도 keptAt 갱신으로 충분
8892
}
@@ -95,12 +99,18 @@ public void keep(Long userId, Long cocktailId) {
9599
myBar.setKeptAt(now);
96100

97101
myBarRepository.save(myBar);
102+
// 활동 점수: 신규 keep 시 +0.1
103+
abvScoreService.awardForKeep(userId);
98104
}
99105

100106
/** 킵 해제(소프트 삭제) — 멱등 처리 */
101107
@Transactional
102108
public void unkeep(Long userId, Long cocktailId) {
103-
myBarRepository.softDeleteByUserAndCocktail(userId, cocktailId);
109+
int changed = myBarRepository.softDeleteByUserAndCocktail(userId, cocktailId);
110+
// 실제로 ACTIVE -> DELETED로 변경된 경우만 -0.1
111+
if (changed > 0) {
112+
abvScoreService.revokeForKeep(userId);
113+
}
104114
}
105115
}
106116

0 commit comments

Comments
 (0)