Skip to content

eojjeoda-nest/nest-settlement-batch-7

Repository files navigation

미션 - 판매금액 정산 배치 구현 미션

🎯 서버 세팅 방식

  • setup.sh 스크립트를 실행하여 서버를 세팅한다.
  • setup.sh 스크립트는 다음과 같은 작업을 수행한다.
    • orm typeorm, prisma, 패키지 매니저 npm, yarn, pnpm 선택
    • npm install | yarn | pnpm install 실행
./setup.sh

🔍 진행 방식

  • 미션은 기능 요구 사항, 프로그래밍 요구 사항, 과제 진행 요구 사항 세 가지로 구성되어 있다.
  • 세 개의 요구 사항을 만족하기 위해 노력한다. 특히 기능을 구현하기 전에 기능 목록을 만들고, 기능 단위로 커밋 하는 방식으로 진행한다.
  • 기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.

📮 미션 제출 방법

  • 미션 구현을 완료한 후 GitHub PR 요청을 통해 제출합니다.

테스트 실행 가이드

  • 터미널에서 npm run test 명령을 실행하여 모든 테스트가 아래와 같이 통과하는지 확인한다.
Ran all test suites.

🚀 기능 요구 사항

판매금액 일일 정산 배치 시스템을 구현한다. 해당 배치 시스템은 한국시간 기준 매일 자정에 실행되며, 판매 금액을 정산한다.

판매자마다 구매확정 상태인 주문건에 한해 중개 수수료(현재 5%, 수수료율은 추후 변동 가능한 상태)를 제외한 판매 금액을 정산하며, 정산된 금액을 판매자에게 지급된다.

주문 상태값에는 결제완료, 배송중, 배송완료, 구매확정, 취소가 있다.

  • 결제완료 상태의 주문건은 결제가 완료되고, 배송이 시작되기 전 상태이다.
  • 배송중 상태의 주문건은 배송이 시작된 상태이다.
  • 배송완료 상태의 주문건은 배송이 완료된 시점의 상태이다.
  • 구매확정 상태의 주문건은 구매자가 배송완료 이후 해당 주문건에 대해 구매 확정을 한 상태이다.
    • 구매자가 구매 확정을 하지 않은 주문건의 경우 5일이 지나면 자동으로 구매 확정된다.
  • 취소 상태의 주문건은 구매자가 주문 취소를 한 상태이다.

백오피스에서 일일 정산 내역을 확인할 수 있어야 한다. 일일 정산 내역은 판매자별로 확인할 수 있어야 한다.

  • 실제 지급이 되는 금액은 판매자의 정산 금액에서 수수료를 제외한 금액이다.
  • 판매자의 정산 금액은 판매자의 판매 금액에서 취소된 주문건의 금액을 제외한 금액이다.

🎯 프로그래밍 요구 사항

  • Javascript 코드가 아닌 Typescript 코드로만 구현해야 한다.

  • Swagger를 이용하여 API 명세를 작성한다.

  • package.json에 명시된 라이브러리만을 이용하여 구현한다.

  • eslint, prettier 등의 코드 포맷팅 라이브러리를 이용하여 제공된 코드 컨벤션에 맞추어 코드를 작성한다.

  • node, npm 버전은 package.json에 명시된 버전을 사용한다. Volta를 이용하여 node 버전을 관리한다.

  • (선택 사항) API 구현이 완료되고, 유닛 테스트, E2E 테스트등 모든 테스트 코드를 작성하여 테스트를 통과하면 굿!


✏️ 과제 진행 요구 사항

  • 미션은 nest-settlement-batch-7 저장소를 Fork & Clone 하고 시작한다.
  • 기능을 구현하기 전 README.md에 구현할 기능/예외처리를 목록으로 정리해 추가한다.

About

판매금액 정산 배치 구현 미션

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published