Skip to content

Latest commit

 

History

History
142 lines (116 loc) · 10.8 KB

README.md

File metadata and controls

142 lines (116 loc) · 10.8 KB

KOUN 🍀

[ 항공대 멋쟁이사자처럼 11기 - KOUN 프로젝트 BE ]



👋소개

티켓팅 추첨 서비스

코운은 치열한 피켓팅으로 인해 예매를 하고싶어도 할 수 없는 사람들을 위해 추첨제를 도입할 수 있습니다.
외국인과 중장년층등 선착순제에서 불리한 위치에 있는 사람들에게도
티켓팅을 할 수 있는 기회를 주어 디지털 격차를 해결하고자 하는 KOUN입니다.



🕑개발기간

약 2개월
2023.07.18 ~ 2023.08.18
2023.10.17 ~ 2023.11.17



📌배포주소

http://ec2-13-124-88-252.ap-northeast-2.compute.amazonaws.com:8080

🛠️기술스택

FrontEnd


BackEnd



🧩아키텍쳐

koun
├── java
│ └── com.example.koun
│ ├── config - CORS,SpringSecurityFilter
│ ├── controller - 웹 요청 (API) 처리 컨트롤러
│ ├── domain - 엔티티 모델 정의
│ ├── dto - 데이터 전송 객체
│ ├── repository - 데이터베이스 연동을 위한 JPA 리포지토리
│ ├── service - 비즈니스 로직 처리
│ ├── login - Oauth2.0 로직 처리
│ └── handler - 인증 실행 후 처리

└── resources
├── application.yml - 애플리케이션 설정 파일
├── static - 정적 웹 자원 (CSS, JS, 이미지 등)
└── templates - HTML 템플릿 파일


❤️떡잎마을방범대


FE 팀장 : 김예린


FE 팀원 : 이솔


BE 팀장 : 서상원


BE 팀원 : 김민표


BE 팀원 : 박민서



✨주요 기능

1. 인기 Top 1-10 조회

  • 메소드 설명: getTopLikes(Pageable pageable)
    • 이 메소드는 데이터베이스에서 가장 인기 있는 상품들(좋아요를 많이 받은 상품들)을 조회하는 기능을 제공합니다.
    • Pageable 인터페이스를 매개변수로 사용하여 요청된 페이지와 페이지 크기에 따라 상품들을 반환합니다.
  • 작동 원리:
    • itemRepository.findTopLikedItems(pageable): 데이터베이스에서 좋아요 수가 가장 많은 상품들을 찾는 쿼리를 실행합니다.
    • 조회된 상품들(Item 객체들)은 convertToDto 메소드를 통해 ItemResponseDto 객체로 변환됩니다.

2. 신규 Top 1-10 조회

  • 메소드 설명: getNewTopLikes(Pageable pageable)
    • 이 메소드는 최근에 인기를 얻고 있는 상품들을 조회하는 기능을 제공합니다.
    • 이 또한 Pageable 인터페이스를 사용하여 페이징 처리된 결과를 반환합니다.
  • 작동 원리:
    • **itemRepository.findNewTopLikedItems(pageable)**를 호출하여 아이템 업로드 기준으로 정렬합니다.
    • 조회된 Item 객체들은 convertToDto2 메소드를 통해 ItemResponseDto 객체로 변환됩니다.

3. 랜덤 응모 추첨 (구역별):

  • drawRaffleForSection(Long sectionId) 함수는 특정 콘서트 구역에 대한 응모 추첨을 수행합니다.
  • 구역에 해당하는 응모 목록을 무작위로 섞은 후, 구역의 좌석 수에 따라 응모자들을 당첨시킵니다. 각 응모는 winRaffleStatus("true") 메소드를 호출하여 당첨 상태로 변경됩니다.

4. 랜덤 응모 추첨 (아이템별):

  • drawRaffleForItem(Long itemId) 함수는 특정 콘서트 아이템(item)에 연결된 모든 구역에 대해 응모 추첨을 수행합니다.
  • 각 구역에 대해 drawRaffleForSection 함수를 호출하여 추첨을 진행합니다.

5. 응모 결과 조회:

  • findRaffleResult(Long id) 함수는 특정 응모의 결과를 조회합니다.
  • 응모, 구역, 아이템에 대한 정보를 조회한 후, 구역 및 아이템별 응모 수, 당첨 확률, 가격 등의 정보를 RaffleResultResponseDto 객체에 담아 반환합니다.


💻화면 구성


로그인

회원가입

메인페이지

메인페이지 검색

상세페이지

응모페이지

결제페이지

결제창

마이페이지

응모결과페이지

취소페이지

취소페이지