DAY_055[국비] 자바 웹프로그래밍 과정

Bona의 블로그 입니다.·2022년 12월 20일
0

국비과정

목록 보기
55/99

 🌞 Day 055 

  • 주문하기, Q&A페이지

 🎄 주문 하기 

  • 장바구니 페이지에서 "주문하기" 버튼을 클릭하면 현재 페이지의 cart 레코드들이 한 번에 주문하기가 된다.
    (cart테이블 => orders, order_detail 테이블)
  • 해당 버튼을 클릭하면 JS함수 go_order_insert()가 호출이 된다.

 🎁 추가 : mypage.js 

function go_order_insert(){
    document.formm.action="shop.do?command=orderInsert";
    document.formm.submit();
}

 🎁 OrderInsertAction 

  • 주문자 아이디로 검색한 카트 목록(지금 주문 처리할) 먼저 조회한다
  • 조회한 list와 주문자의 아이디를 전달인수로 OrderDao의 insertOrder()메서드를 호출하여 orders와 order_detail테이블에 데이터 추가한다
  • 방금 주문에 성공한 주문 번호를 가지고 오더 리스트로 이동하여 주문번호로 주문 내역을 다시 조회하고 jsp로 이동한다.

  • OrderDao에 insertOrder(cartList, mvo.getId())메서드를 생성한다. (OrderVO, OrderDao 필요)

 🎁 OrderVO 

  • 조회할 때 order테이블 보다는 미리 만들어 둔 order_view를 사용하므로 order_view를 참고하여 OrderVO를 만든다.




 🎄 구매완료 페이지 

 🎁 OrderlistAction 


 🎁 mypage/orderList.jsp 




 🎄 MyPage - 주문 내역 

 🎁 수정 : header.js 

	<li><a href="shop.do?command=mypage">MY PAGE</a></li>
	<li><a href="shop.do?command=qnaList">Q&amp;A</a></li>

 🎁 MyPageAction 

  • 진행중인 주문 내역
    : 현재 로그인 한 사용자의 배송 안된 주문내역이 보여진다.

  • 예를 들어 한 번에 2,3개의 상품씩 3회에 걸쳐서 주문한 상태라면... 그리고 그 주문들이 하나도 배송이 안된 상태(배송전)이라면 진행중인 주문 내역은 3줄이 표시된다.
    (orders테이블 기준 주문 건별 표시)

  • 표시내용은 주문 건별 대표상품의 이름 이용하여 슬리퍼 포함3, 겨울용부츠 외2 .. 등등의 내용으로 총 3줄이 표시된다.

  • 그리고 각 행에는 상세포기 버튼이 있어서 클릭하면 그 주문에 속한 세 개의 상품을 볼 수 있다.

  • 이를 위해서 가장 먼저 필요한 사항은 주문 번호들이다.
    order_view에서 주문자 아이디로 검색하고, result가 1인 주문들을 검색해서, 주문 번호들을 조회한다. 위의 예를 든 상태라면 주문번호들이 다음과 같다.
    22 22 22 24 24 26 26 26 27 27 27 <- 조회된 주문 번호들

  • 우리에게 필요한건 22 24 26 27 이므로, 조회할 때 distinct키워드를 써서 조회한다.(중복삭제)
    select distinct oseq from order_view where id=? and result='1';
    주문번호(oseq)만 조회할 것이라면 orders테이블에서 distinct 없이 조회하면 될 듯 하지만 orders테이블에는 result필드가 없어서 배송 전 주문이 구분된 번호가 조회되지 않는다.


 🎁 mypage/mypage.jsp 


 🎁 OrderAllAction 

  • 총 주문 내역 mypage.jsp 그대로 사용
    파라미터 title 수정 + odao 메서드 수정




 🎄 주문 상세 조회 

  • orderList에서 '조회'(a태그)를 클릭하면 해당 주문의 상세 페이지로 이동한다.

 🎁 OrderDetailAction 


 🎁 mypage/orderDetail.jsp 




 🎄 Q&A : List ⇒ Paging 

 🎁 QnaListAction 

  • Q&A List만 조회하는 클래스를 만든 후 paging을 추가하였음
  • selectQna(mvo.getId()) 메서드는 먼저 만든 메서드로 로그인한 사용자의 전체 Q&A를 조회하는 메서드이고,
    listQna(mvo.getId(), paging) 메서드는 paging을 만든 후 각 페이지에서 보여질 해당 사용자의 Q&A만 조회하는 메서드 이다.


 🎁 QnaVO 

  • QnaDao는 맨 아래 Dao끼리 정리


 🎁 qna/qnaList.jsp 

  • qnaList.jsp를 먼저 만들고 페이지 표시할 div를 추가


 🎁 qna/sub_image_menu.jsp 


 🎁 Paging 




 🎄 Dao 

 🎁 QnaDao 

  • listQna 메서드의 sql문이 복잡해서 따로 정리
    : 한 줄짜리를 개행으로 쪼개놓았음


 🎁 OrderDao 

  • insertOrder메서드가 pstmt를 몇 번 재활용 해야하고, 반복실행도 2번이 들어가는 복잡한 메서드이므로 차근차근 읽으며 복습할 것!!!


 🎁 ActionFactory 





profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글