221025_광고 관리 플랫폼 대행사 센터 제작 39_광고 관리 페이지 (광고주 리스트) 수정 및 통계 기능 구현

창고·2022년 10월 26일
0

해당 게시글은 개인 프로젝트인 "광고 관리 플랫폼 대행사 센터 제작"
#112 "광고 관리 페이지 (광고주 리스트) 수정 및 통계 기능 구현" 이슈를 다루고 있습니다.

1. 진행 사항

(1) 요약

  • 통계 쿼리 작성 및 테스트 -> QueryDSL로 변환
  • 최근 1주일 간의 통계 보기 기능 구현
  • 최근 30일 간의 통계 보기 기능 구현
  • 페이지 수정

(2) 세부 내용

  • QueryDsl을 통해 통계 기능 구현
    • 미리 작성한 SQL을 QueryDsl로 변환하였음
    • 통계 데이터를 처리할 PerformanceStatisticDto / Response를 사용, Projections.fields를 통해 필드에 직접 값을 주입하는 방식 선택
    • CTR, CVR, CPA, ROAS 와 실적 데이터 문자열 변환 등은 Dto 내부 메소드를 통해 세팅
  • 전체 광고주 소진액 통계
    public List<PerformanceStatisticsDto> findClientUserSpendTotalStatisticsDefault(
                                                                                @Param("startDate") LocalDate startDate,
                                                                                @Param("lastDate") LocalDate lastDate
    ) {
        List<PerformanceStatisticsDto> results = jpaQueryFactory
                .select(Projections.fields(PerformanceStatisticsDto.class,
                        performance.spend.sum().as("spend")
                ))
                .from(performance)
                .leftJoin(performance.creative, creative)
                .where(
                        performance.createdAt.between(startDate, lastDate),
                        creative.deleted.eq(false),
                )
                .fetch();

        for (PerformanceStatisticsDto result : results) {
            Long spend = result.getSpend();

            result.setSpendIndicator(spend); // spend 세팅용 메소드
            result.setStartDateAndLastDate(startDate, lastDate);
        }

        return results;
    }
    }
  • 페이지 수정
    • 광고 관리 페이지 (광고주 리스트) 상단에 전체 광고주 소진액 통계를 표시하도록 수정

2. 결과

  • 초기 조회 시 30일 간 통계로 적용

3. 미흡한 점 및 개선해야 할 부분

  • 현재 광고주 리스트에서 광고주별 소진액을 표시하고 싶지만 소진액이 아예 없는 광고주는 표시가 되지 않으므로 이 부분을 어떻게 개선해야 할 지 고려 중
profile
공부했던 내용들을 모아둔 창고입니다.

0개의 댓글