사용자 매출 통계 부분 로직을 짜면서 한 번 보단 두번.

728x90

사용자 - 사용자의 정보에는 로그인 정보와 가입날짜가 있습니다.

사용자의 매출 정보 - 매출날짜, 매출액 등

예) 1번 사용자, 매출액 1만원, 매출날짜 2023-09-01

     2번 사용자, 매출액 2만원, 매출날짜 2023-09-02

      1번 사용자, 매출액 3만원, 매출날짜 2023-09-03

통계하고 싶은 데이터 - 사용자별 가입일 이전, 이후 매출

 

* 가입일 이후 기간은 가입일 이후 부터 현재 날짜까지 -> 6개월 넘을 경우 오늘 날짜 부터 6개월 전까지만 기간 계산

* 가입일 이전 기간은 가입기간 - (현재날짜 - 가입일 기간만큼) -> 최대 6개월이다.


기존 적용 로직

사용자의 매출 정보에 status 0 을 주어 해당 매출이 통계로 사용되었는지 확인

0 - x, 1 - o

사용자의 status가 0 인 매출 데이터를 다 가져와서 매출날짜가 사용자의 가입 기간 이전인지 이후 인지 확인 하여

더해준다. -> status 1로 변경

최대 기간인 6개월이 초과되면 초과된 해당 기간만큼과 status 1인 매출을 status 0 으로 처리하고 통계 금액에서 마이너스 해준다.


발생한 문제

6개월이 초과되어, 초과된 기간 만큼 매출액을 마이너스 처리할 때 발생.

2023-06-01 이 가입기간이고 2023-12-01의 매출통계를 내고 나서 3일이 지나 2023-12-04가 되었고, 

2023-06-01 ~ 2023-06-03 까지의 기간 매출을 통계에서 빼야함.

여기서 빼야하는 3일 기간의 매출액이 너무 커 통계에서 마이너스 처리하였더니, 매출액이 마이너스 되어버림.

 


바꾼 로직

매출액 데이터를 해당 날짜, 사용자 별로 일 매출 통계를 먼저 만듬

1번 사용자, 매출액 1만원, 매출날짜 2023-09-01

2번 사용자, 매출액 2만원, 매출날짜 2023-09-02

1번 사용자, 매출액 3만원, 매출날짜 2023-09-01 이라는 데이터가 있으면,

 

1번 사용자, 매출액 4만원, 매출날짜 2023-09-01

2번 사용자, 매출액 2만원, 매출날짜 2023-09-02 이렇게.

 

그 후 통계 시 마다 가입기간 전, 후 를 계산해서 해당 기간만큼 일 매출 통계를 가져와서 다시 통계를 내는 방법

으로 바꿈

 

 

자잘하게 쪼개진 데이터를 가지고 한 번에 뽑아 내려니 변수에 대해 대처가 불리해짐

합칠 수 있는 데이터를 합치고, 이슈가 발생한 날짜를 계산해서 적용하니 정확도와 유지보수가 좋아짐

반응형