바로구매 하는 방법을 알아보자.
buy-mapper.xml
SHOP_BUY 테이블에서 buyCode는 자동으로 1씩 증가되고, memId도 저장되어있다.
따라서 buyPrice만 가져오면 된다.
그러기 위해선 수량데이터를 가져와야하고, 이 상품의 단가를 수량에 곱하면 가격이 나온다.
그러기 위해서는 이 쿼리도 함께 실행되어야하는데, ITEM_CODE, BUY_CNT 만 들고오면 된다.
총 단가(buyPrice), 수량(buyCnt), 상품코드(itemCode) 이렇게 3개를 가지고 온다.
item_detail.html
form태그에 감싸져있는 데이터는 ajax에서 가져올때 다들고 올 수 있다.
item_detail.js
// 자바스크립트로 폼 태그 선택
const form1 = document.querySelector('#buyForm');
// 제이쿼리로 폼 태그 선택
const form2 = $('#buyForm');
따라서 data: 에는 제이쿼리 형태로 $('#buyForm').serialize()를 사용해 폼 태그안에 있는 데이터를 전달해보았다.
BuyController 컨트롤러
컨트롤러에서 각 매개변수를 넣어주어 출력한 결과 아래와 같이 바로구매를 클릭했을때 데이터들이 조회된다.
Service
상품을 구매하는 쿼리에는 두개의 쿼리가 실행되는 것을 확인할 수 있다.
buy-mapper.xml
BuyController 컨트롤러
첫번째 쿼리 조건을 달성하기 위해 3개의 변수 buyCode, memId, buyPrice 변수 값을 buyVO에 넣어주었고,
이렇게 하면 첫번째 쿼리는 실행이 될 것이다.
buy-mapper.xml
BuyController 컨트롤러
buyDetail의 빈값 4개를 모두 채워넣고, detailVO를 buyDetailList에 넣어주면 된다.
그리고, 상세 정보리스트를 담고 있는 리스트를 buyVO에 넣어줘야한다.
item_detail.js
이후 Ajax로 돌아와 상품을 구매했을때 location을 걸어주어 구매목록 페이지로 이동할 수 있게되는데,
personalMenu는 이전에 classappend를 사용해 만들어준 변수이므로 2를 넣어주었다.
이렇게 하면 성공적으로 구매한 결과가 구매내역에도 저장되어있는 것을 확인할 수 있다.
'✨ Back-end > Spring-Boot' 카테고리의 다른 글
[Spring] 쇼핑몰 - 45 Map데이터 활용해서 월별 매출 페이지 조회 (0) | 2023.04.13 |
---|---|
[Spring] 쇼핑몰 - 44 관리자 메뉴 목록 추가 Interceptor (0) | 2023.04.13 |
[Spring] 쇼핑몰 - 42 사용자 sub메뉴 classappend 사용해 나타내기 (0) | 2023.04.12 |
[Spring] 쇼핑몰 - 41 검색기능 추가하기 (0) | 2023.04.12 |
[Spring] 쇼핑몰 - 40 Bootstrap에서 가져온 태그 활용하기 (0) | 2023.04.12 |
댓글