Skip to content

Nohheechul/everypet

 
 

Repository files navigation

🐶EveryPet (팀 프로젝트)

👥 팀원

🔥 [Back end] 이용호

⭐️ [Back end] 노희철

🌑 [Front end] 총괄 이관용

⚡️ [Front end] 대표 박민규

🌐 Every-Pet 사이트 링크

우리들의 Every-Pet 바로가기 (backend 서버는 정지)

🛠️ 기술스택

Category Technologies and Tools
Language Java JavaScript TypeScript HTML5 CSS3 React
IDE IntelliJ IDEA Visual Studio Code
Framework Spring Framework MyBatis
Build Tool Apache Maven npm
Database MySQL Redis
Frontend React HTML5 CSS3 JavaScript TypeScript
Library JWT Spring Security Swagger OAuth2 Redux
Server Apache Tomcat
Tool Docker GitHub Storybook Google Cloud Asana GitHub Actions AWS

내가 만든 기능

상품 기능

  • 상품 조회/장바구니/상품 리뷰/판매자 문의
    • 상품 조회: 다양한 조건(카테고리, 브랜드, 키워드 등)에 따라 상품을 조회합니다.
      • 카테고리 별 조회: 대분류와 소분류에 따라 상품을 조회합니다.
      • 브랜드 별 조회: 특정 브랜드에 속한 상품을 조회합니다.
      • 키워드 검색: 사용자가 입력한 키워드에 해당하는 상품을 조회합니다.
      • 단일 상품 조회: 특정 상품 ID에 해당하는 상품을 조회합니다.
상품 기능 자세히 보기

1. 상품 생성

기능 설명: 새로운 상품을 생성합니다.

기술적 설명:

  • ProductServiceImplinsertProduct 메서드는 상품 정보를 처리하고, Google Cloud Storage에 이미지를 업로드합니다.

2. 상품 삭제

기능 설명: 특정 상품을 삭제합니다.

기술적 설명:

  • ProductServiceImpldeleteProduct 메서드는 주어진 productId를 통해 상품 정보를 삭제하고, 관련된 이미지를 삭제합니다.

3. 상품 수정

기능 설명: 기존 상품을 수정합니다.

기술적 설명:

  • ProductServiceImplupdateProduct 메서드는 상품 정보를 수정하고, 이미지를 업데이트합니다.

4. 상품 조회

기능 설명: 다양한 조건에 따라 상품을 조회합니다.

기술적 설명:

  • ProductServiceImplselectProductList 메서드는 카테고리와 정렬 기준에 따라 상품을 조회하고, selectProductByProductId 메서드는 특정 상품을 조회합니다.

상품 조회의 다양한 상황

1. 카테고리 별 상품 조회

기능 설명: 대분류와 소분류에 따라 상품을 조회합니다. 예를 들어, 대분류가 "dog"이고 소분류가 "snack"인 경우, 강아지용 스낵 상품만 조회됩니다.

기술적 설명:

  • ProductControllerselectProductCategory 메서드는 카테고리 대분류, 소분류, 정렬 기준, 페이지 번호, 페이지 사이즈를 받아 상품 리스트를 조회합니다.
  • ProductServiceselectProductList 메서드는 MyBatis를 통해 데이터베이스에서 해당 조건에 맞는 상품 리스트를 가져옵니다.
2. 브랜드 별 상품 조회

기능 설명: 특정 브랜드에 속한 상품을 조회합니다. 예를 들어, "동물 좋아 상점" 브랜드의 상품만 조회할 수 있습니다.

기술적 설명:

  • ProductControllerselectProductBrand 메서드는 브랜드명, 정렬 기준, 페이지 번호, 페이지 사이즈를 받아 상품 리스트를 조회합니다.
  • ProductServiceselectProductBrandList 메서드는 MyBatis를 통해 데이터베이스에서 해당 브랜드에 속한 상품 리스트를 가져옵니다.
3. 키워드 검색 상품 조회

기능 설명: 사용자가 입력한 키워드에 해당하는 상품을 조회합니다. 예를 들어, "고양이 사료"라는 키워드로 검색하면 관련된 상품이 조회됩니다.

기술적 설명:

  • ProductControllersearchProducts 메서드는 키워드, 정렬 기준, 페이지 번호, 페이지 사이즈를 받아 상품 리스트를 조회합니다.
  • ProductServiceselectProductListByKeyword 메서드는 MyBatis를 통해 데이터베이스에서 해당 키워드에 맞는 상품 리스트를 가져옵니다.
4. 단일 상품 조회

기능 설명: 특정 상품 ID에 해당하는 상품을 조회합니다.

기술적 설명:

  • ProductControllerselectProductByProductId 메서드는 상품 ID를 받아 해당 상품을 조회합니다.
  • ProductServiceselectProductByProductId 메서드는 MyBatis를 통해 데이터베이스에서 해당 상품 ID에 맞는 상품 정보를 가져옵니다.

주문 기능

  • 주문 생성/주문 삭제/주문 조회 및 상세 조회/운송장 번호 추가
주문 기능 자세히 보기

1. 주문 생성

기능 설명: 사용자가 주문을 생성할 수 있는 기능을 제공합니다. 주문 정보는 InsertOrderDTO를 통해 전달되며, 주문 상세 정보는 OrderDetailMapper를 통해 저장됩니다.

기술적 설명:

  • OrderServiceImplinsertOrder 메서드는 InsertOrderDTO를 받아 주문 정보를 처리합니다. 주문 상품의 가격을 조회하고 총 금액을 계산합니다.
  • OrderMapperinsertOrder 메서드를 통해 주문 정보를 데이터베이스에 저장합니다.
  • OrderDetailMapperinsertOrderDetail 메서드를 통해 주문 상세 정보를 저장합니다.

2. 주문 삭제

기능 설명: 특정 주문 ID에 해당하는 주문을 삭제할 수 있는 기능을 제공합니다.

기술적 설명:

  • OrderServiceImpldeleteOrder 메서드는 주어진 orderId를 통해 주문 정보를 삭제합니다.
  • 먼저 OrderDetailMapperdeleteOrderDetailByOrderId 메서드를 통해 관련된 주문 상세 정보를 삭제합니다.
  • 이후 OrderMapperdeleteOrderByOrderId 메서드를 통해 주문 정보를 삭제합니다.

3. 주문 조회 및 상세 조회

기능 설명: 특정 주문 ID에 해당하는 주문을 조회하거나, 주문 상세 ID에 해당하는 주문 상세 정보를 조회할 수 있는 기능을 제공합니다.

기술적 설명:

  • 주문 조회:

    • OrderServiceImplselectOrder 메서드는 주어진 orderId를 통해 주문 정보를 조회합니다.
    • OrderMapperselectOrderById 메서드를 통해 주문 정보를 가져옵니다.
    • OrderDetailMapperselectOrderDetailsByOrderId 메서드를 통해 관련된 주문 상세 정보를 가져와 주문 객체에 추가합니다.
  • 주문 상세 조회:

    • OrderServiceImplgetOrderDetail 메서드는 주어진 orderDetailId를 통해 주문 상세 정보를 조회합니다.
    • OrderDetailMappergetOrderDetailByOrderDetailId 메서드를 통해 주문 상세 정보를 가져옵니다.

4. 운송장 번호 추가

기능 설명: 판매자가 주문 상세 ID와 운송장 번호를 입력하여 운송장 번호를 추가할 수 있는 기능을 제공합니다.

기술적 설명:

  • OrderServiceImplupdateTrackingNumber 메서드는 판매자 인증 후, 운송장 번호를 업데이트합니다.
  • 먼저 OrderDetailMappercheckSeller 메서드를 통해 해당 상품의 판매자인지 확인합니다.
  • 판매자일 경우, OrderDetailMapperupdateTrackingNumber 메서드를 통해 운송장 번호를 업데이트합니다.

결제 기능

  • 결제 상태 조회/결제 검증 및 주문 상태 업데이트/결제 정보 저장
결제 기능 자세히 보기

1. 결제 상태 조회

기능 설명: 포트원 결제 API를 호출하여 결제 상태를 조회합니다.

기술적 설명:

  • PaymentServiceImplgetPaymentStatus 메서드는 포트원 결제 API를 호출하여 결제 상태를 조회합니다.
  • 결제 상태는 PaymentResponse 객체로 반환되며, 상태에 따라 주문 처리가 진행됩니다.

2. 결제 검증 및 주문 상태 업데이트

기능 설명: 결제 검증 후, 주문 상태를 업데이트합니다.

기술적 설명:

  • PaymentControllercompletePayment 메서드는 결제 검증 후, 주문 상태를 업데이트합니다.
  • 결제 금액이 주문 금액과 일치할 경우, 주문 상태를 "PAID"로 업데이트하고 장바구니를 삭제합니다.
  • 결제 금액이 불일치할 경우, 주문은 삭제됩니다.

3. 결제 정보 저장

기능 설명: 결제 정보를 데이터베이스에 저장합니다.

기술적 설명:

  • 결제 정보는 PaymentMapper를 통해 데이터베이스에 저장됩니다.
  • PaymentServiceImplinsertPayment 메서드는 결제 정보를 저장합니다.

광고 기능

  • 광고 생성/광고 삭제/광고 수정/광고 조회
광고 기능 자세히 보기

1. 광고 생성

기능 설명: 새로운 광고를 생성합니다.

기술적 설명:

  • AdvertisementServiceImplinsertAdvertisement 메서드는 광고 정보를 처리하고, Google Cloud Storage에 이미지를 업로드합니다.

2. 광고 삭제

기능 설명: 특정 광고를 삭제합니다.

기술적 설명:

  • AdvertisementServiceImpldeleteAdvertisement 메서드는 주어진 advertisementId를 통해 광고 정보를 삭제하고, 관련된 이미지를 삭제합니다.

3. 광고 수정

기능 설명: 기존 광고를 수정합니다.

기술적 설명:

  • AdvertisementServiceImplupdateAdvertisement 메서드는 광고 정보를 수정하고, 이미지를 업데이트합니다.

4. 광고 조회

기능 설명: 모든 광고 또는 특정 광고를 조회합니다.

기술적 설명:

  • AdvertisementServiceImplselectAllAdvertisements 메서드는 모든 광고를 조회하고, selectAdvertisementById 메서드는 특정 광고를 조회합니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 43.4%
  • TypeScript 41.8%
  • CSS 13.9%
  • Other 0.9%