본문 바로가기

개발자21

[개발] 포인트 차감 저번에 게시글을 등록하면 포인트가 적립되는 기능을 구현하였다.이번에는 게시글을 수정하거나 삭제할 때 포인트가 차감되도록 구현 해보았다. 포인트 관련 테이블로는 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 포인트 기능 중에 게시글 등록을 하면 3포인트를 적립 해주는 코드를 우선 구현해보려고 한다. PointHistory @Getter @NoArgsConstructor @AllArgsConstructor @Builder @Entity public class PointHistory extends BaseEntity implements Serializable { @Serial private static final long serialVersionUID = -7094631532990738540L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "point_history_id", columnDefinition = "bigint COMM.. 2024. 4. 15.