장바구니 담고 주문하기 View

@GetMapping("/product/order")
public String order(@RequestParam("cartNo") List<Integer> cartNos,
                    Model model) {

    List<CartDTO> cartDTOList = new ArrayList<>();

    for (int i = 0; i < cartNos.size(); i++) {
        Integer cartNo = cartNos.get(i);

        CartDTO cartDTO = productOrderService.findByCartNo(cartNo);

        cartDTOList.add(cartDTO);
    }

    String uid = cartDTOList.get(0).getUser().getUid();

    UserDetailsDTO userDetailsDTO = productOrderService.findByUser(uid);
    List<CouponIssueDTO> couponIssueDTOList = productOrderService.findAllByUser(uid);

    model.addAttribute(cartDTOList);
    model.addAttribute(couponIssueDTOList);
    model.addAttribute(userDetailsDTO);

    return  "/product/order/order";
}

기술 설명

바로 주문하기 View

@PostMapping("/product/order/direct")
public String order(@RequestParam Map<String, String> options,
                    ItemRequestDTO itemRequestDTO,
                    @AuthenticationPrincipal UserDetails userDetails,
                    HttpSession session,
                    Model model) {

    List<CartDTO> cartDTOList = productOrderService.makeCart(itemRequestDTO, userDetails, options);

    String uid = userDetails.getUsername();
    UserDetailsDTO userDetailsDTO = productOrderService.findByUser(uid);
    List<CouponIssueDTO> couponIssueDTOList = productOrderService.findAllByUser(uid);

    model.addAttribute(cartDTOList);
    model.addAttribute(couponIssueDTOList);
    model.addAttribute(userDetailsDTO);

    session.setAttribute("cartDTO", cartDTOList.get(0));

    return "/product/order/order";
}

기술 설명