REST API5 [개발] 포인트 차감 저번에 게시글을 등록하면 포인트가 적립되는 기능을 구현하였다.이번에는 게시글을 수정하거나 삭제할 때 포인트가 차감되도록 구현 해보았다. 포인트 관련 테이블로는 PointHistory랑 PointHistoryDetail이 있는데 PointHistory에는 단순하게 몇 포인트가 적립되었고 사용되었는지에 대한 기록을 보여준다.PointHistoryDetail에서는 더 세부적으로 보여지게 만들었는데, 예를 들어 게시글 등록을 2번 해서 3포인트씩 2번 6포인트가 쌓였고, 게시글 수정이나 삭제를 통해 2포인트씩 차감한다고 가정해보자.그러면 게시글 수정이나 삭제를 할 때 첫 번째 게시글 등록에서 쌓인 2포인트와 첫 번째 게시글 등록 포인트 1 + 두 번째 게시글 등록 포인트 1 이렇게 차감 해야 한다.따라서 Poi.. 2024. 5. 30. [개발] 총 포인트 조회 이번에는 사용자별로 보유한 총 포인트가 몇 포인트인지를 조회할 수 있는 기능을 구현 해보았다. 나는 간단한 쿼리는 Spring Data JPA를 사용하고 있고 좀 더 복잡한 쿼리는 Querydsl를 활용하여 구현하고 있다. 총 포인트를 조회하는 쿼리는 조건절도 필요하고 집계함수 sum을 사용하여 보여줄 것이기 때문에 Querydsl을 사용하였다. PointHistoryRepoSupport public GetTotalPointDto getTotalPoint(Long userId) { JPAQuery query = jpaQueryFactory .select(Projections.bean(GetTotalPointDto.class, qPointHistory.amount.sum().as("totalPoint"),.. 2024. 4. 17. [개발] 포인트 적립 구현 - 2 저번 글에서 포인트 적립 기능을 구현하기 전 엔티티를 생성하고 Enum을 생성하는 등의 준비를 마쳤다. 포인트 적립은 게시글을 등록할 때 이루어지기 때문에 service단에서 PointCommonService라고 이름을 지어 여러군데에서 사용되는 코드들을 작성하려고 분리했다. PointCommonService @Service @RequiredArgsConstructor @Transactional public class PointCommonService { private final PointHistoryRepo pointHistoryRepo; private final PointHistoryDetailRepo pointHistoryDetailRepo; public Long addPoint(Long userI.. 2024. 4. 16. 포인트 기능 요구사항 정리 이번에 개인 프로젝트에서는 포인트 관련 기능들도 개발 해보려고 한다. 어떤 기능을 구현 해보는게 좋을지 생각하다가 간단하게 게시글 작성 시에 포인트를 지급하고, 게시글을 수정하거나 삭제 할 때, 추후에 댓글 기능도 개발한다면 댓글 작성 시 포인트를 차감하도록 생각하고 있다. 또한, 스케줄러도 적용해서 포인트의 일정 기간이 지나면 소멸되도록 구현 해볼 생각이다. 1. 사용자별 포인트 내역 조회 - 사용자별로 적립, 사용, 만료 소멸된 포인트를 조회할 수 있도록 개발 - 검색 구분 값 (내역, 만료일로 검색 가능하도록 설정) 2. Total 포인트 조회 - 사용자가 보유한 총 포인트 조회 - 캐시로 저장 3. 만료 스케줄러 - 사용자별 만료되어야 할 총 포인트 조회 (만료일이 지난 가용 포인트를 추출) - .. 2024. 4. 11. 이전 1 2 다음