on
[스프링] 쇼핑몰 - 주문목록
[스프링] 쇼핑몰 - 주문목록
이번 포스팅은 주문 완료 후 ,
사용자가 마이페이지에서 확인 할 수 있는 주문목록에 대한 내용이다.
주문목록
주문번호를 눌러서 들어온 주문상세내역
주문번호를 눌러서 들어온 주문상세내역
주문목록에서는 주문한 상품들의 목록과 배송상태, 취소요청, 리뷰작성을 할 수 있다.
리뷰작성은 배송이 시작된 후에 작성 할 수 있도록 했으며, 취소요청을 하면 관리자가 확인 할 수 있다.
이 부분은 다음 포스팅에 작성할 관리자의 주문관리 부분과 연결된다.
주문번호 클릭 시 , 주문상품, 주문시 입력한 구매자 및 수취인의 정보 , 결제내역을 확인 할 수 있다.
Mapper
select a.ORDERITEM_NO, a.ORDERITEM_IMG, a.ORDERITEM_NAME, a.ORDERITEM_MEM_NO, a.ORDERITEM_OPTION, a.ORDERITEM_PRICE, a.ORDERITEM_ITEM_NO, a.ORDERITEM_SELECT_VOL, a.ORDERITEM_ORDER_NO, a.ORDERITEM_DATE, b.ordered_no ,b.ordered_paystate,b.ordered_delivstate,b.ordered_delivnum FROM ORDERITEM a left outer join ORDERED b on a.orderitem_order_no = b.ordered_no WHERE ORDERITEM_MEM_NO = #{orderitem_mem_no} ORDER BY ORDERITEM_NO DESC
주문은 로그인 한 회원만 할 수 있도록 했기 때문에,
Session의 회원PR을 가져와 List를 만들었다.
Controller
// 마이페이지 get @RequestMapping(value = "/MyPageView", method = RequestMethod.GET) public String getMyPageView(HttpSession session, String update, MemberVO vo, Model model, OrderItemVO gvo) throws Exception { logger.info("get MyPageView"); // 주문 조회 리스트 MemberVO memberVO = (MemberVO) session.getAttribute("member"); List getOrderList = service.orderList(memberVO.getMEM_NO()); model.addAttribute("getOrderList", getOrderList); return "/member/MyPageView"; }
주문 목록과
@RequestMapping(value = "/orderDetail", method = RequestMethod.GET) public String orderItemView(int ordered_no, Model model) throws Exception { logger.info("ordered_no" + ordered_no); model.addAttribute("orderItemView", clientService.orderItemView(ordered_no)); model.addAttribute("orderItemInfo", clientService.orderItemInfo(ordered_no)); return "/member/orderDetail"; }
주문 번호를 눌러서 들어갈 수 있는 주문상세 내역의 컨트롤러이다.
View
주문번호 image item price 수량 주문상태 배송상태 ${getOrderList.orderedVO.ordered_no} ${getOrderList.order_item_name} ₩ ${getOrderList.order_select_vol} 입금완료 취소신청 주문취소신청 교환 환불 물품준비중 배송중${getOrderList.orderedVO.ordered_delivnum} reviews 배송완료reviews
취소신청 버튼을 누르면 , 주문번호가 담겨있는 form이 submit되어
주문테이블의 paystate 컬럼의 숫자를 update 한다.
해당 버튼은 paystate가 1 , 즉 정상주문 상태일 때만 출력된다.
배송상태를 알려주는 delivstate도 동일한 로직으로 , 관리자페이지에서 관리자가 배송상태를 변경할 수 있다.
from http://kimfk567.tistory.com/93 by ccl(A) rewrite - 2021-12-09 01:29:42