kk2415 / spring-batch-practice

스프링 배치를 활용한 포인트 서비스 서버

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

spring-batch-practice

* 포인트 서비스 기능

  • 결제시 포인트 사용
  • 이벤트에 의한 포인트 적립 예약
  • 포인트 적립 예약 건 반영
  • 포인트 만료
  • 포인트 만료 알림
  • 포인트 만료 예정 알림

* 시나리오

유저와 포인트 지갑

  • 1명의 유저는 1개의 포인트 지갑을 가진다
  • 1명의 유저는 N개의 포인트를 적립한 내역을 가진다.
  • 적립된 포인트들은 유효기간이 모두 다르다

포인트 만료

  • 유효기간이 만료되면 해당 포인트는 사용불가한 상태가 된다.
  • 유효기간은 일단위 까지만 고려하고 시간단위는 무시한다.
  • 하루에 한 번 알림을 위해 유효기간이 만료된 금액에 대하여 알림서버에 메시지 전송을 요청한다.
  • 하루에 한 번 알림을 위해 유효기간이 1주일이내로 임박한 포인트 금액에 대하여 알림서버에 메시지 전송을 요청한다.

포인트 예약 적립

  • 캐시백 보상이나 이벤트와 같은 이유로 포인트 적립을 예약한다.
  • 예약된 포인트는 정해진 일시에 유저에게 적립된다.

* 상세 기능

포인트 만료

  • 포인트의 사용기한이 오늘보다 이전인 경우에는 포인트의 상태를 만료로 변경합니다.
  • 포인트를 만료하면 포인트지갑의 잔액도 차감합니다.
  • 이미 사용한 포인트는 만료하지 않습니다.
  • 만료한 포인트는 유저에게 알림서비스를 통해 알려줍니다.

포인트 만료 예약

  • 포인트 사용 기한이 7일 이내인 경우 (만료일자 < 오늘일자 + 7일)에는 유저에게 만료예정 알림을 보냄

포인트 예약 적립

  • 포인트 적립 예약에 저장된 내역 중에 적립일이 오늘이면 그 유저의 포인트 지갑에 포인트를 적립합니다.
  • 적립 예약 건은 완료되면 상태를 완료로 변경합니다.
  • 적립한 포인트만큼 포인트 지갑에서 증액시킵니다.

About

스프링 배치를 활용한 포인트 서비스 서버


Languages

Language:Java 100.0%