Project 2 - KREAM 6

Junjii·2023년 9월 4일
0

Project2

목록 보기
6/7

<Project 2 - KREAM >
기간 : 2주
팀원 : 프론트 2명 (PM) / 백엔드 4명
필수 구현 사항 : 로그인, 회원가입, 리스트페이지, 상품 디테일페이지 ,주문, 결제

이번 KREAM에 대한 모식도를 그렸다
모식도를 그려야겠다라고 생각한 계기가 있었다.
먼저 ERD가 확정된 상태에서 한정적인 정보를 받고 client 가 필요한 정보를 뽑아내야하는 상황이라 상당히 코드가 복잡해지겠다 생각이 들었다.
두번째는 즉시판매/구매 와 판매/구매 입찰 을 어떻게 구현해야할지 감이 오지를 않아서다.

나의 담당부분은 하단의 즉시구매계속 버튼을 누르면 시작이 된다.
client로부터 POST 의 body 로부터 userid /price/ productid/ size 4가지를 받고 나서 bid 라는 테이블(채결 전의 주문서)에 작성을 해야한다.

bid 라는 테이블의 column에는 bid_product_size_id 라는 product_id,size_id의 join 테이블의 id를 담아낸다.
1차로 size는 220 과 같은 숫자로 받지만 테이블에는 type 이라는 문자열로서 고정값으로 저장되어있고 size_id를 먼저 구하는 코드를 짜야한다.

const getSizeId = async (size) => {
  const sizeId = await AppDataSource.query(
    `select 
      sizes.id
      from sizes
      where type = ?`,
    [size]
  );
  return sizeId;
};

그리고 2차적으로 bid_product_size_id 를 먼저 구하는 코드를 작성을 해야한다.

const searchBidProductSize = async (productId, getSizeId) => {
  const searchBidProductSize = await AppDataSource.query(
    `select 
    bid_product_size.id 
    from bid_product_size 
    where product_id = ? 
    and size_id = ?`,
    [productId, getSizeId]
  );
  return searchBidProductSize;
};

내가 그린 모식도에서 이 두 가지 코드가 제일 기본적으로 자주 사용되는 필요한 정보다.

맨 처음에는 채결에 대한 과정을 모르겠어서 입찰(bid)를 먼저 작성했다. 구해온 bid_product_size_id를 나머지 정보들과 함께 작성한다.

const bidSellId = await queryRunner.query(
      `insert into 
      bid_sells
      (seller_id,bid_product_size_id,status,price) 
      values (?,?,?,?)`,
      [sellerId, bidProductSizeId, status, price]

여기까지가 입찰주문서를 작성한 코드들이다.
이제부터 채결에 관한 코드를 작성해야하는데 채결에 관한 이해가 부족한것 같다. 해당 이해과정은 다음 글에서 올리겠다!

0개의 댓글