자바 온라인 도서 쇼핑 몰(7)주문 모듈 2

본 고 는 실례 를 들 어 자바 인터넷 도서 상점 주문 모듈 의 구체 적 인 코드 를 공유 하 였 으 며,여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.

1.나의 주문서---검사
사용자 에 따라 주문 서 를 조회 하 다.
페이지 별 조회 PageBean

<div class="divMain">
 <div class="divTitle">
 <span style="margin-left: 150px;margin-right: 280px;">    </span>
 <span style="margin-left: 40px;margin-right: 38px;">  </span>
 <span style="margin-left: 50px;margin-right: 40px;">    </span>
 <span style="margin-left: 50px;margin-right: 50px;">  </span>
 </div>
 <table align="center" border="0" width="100%" cellpadding="0" cellspacing="0">
 <c:forEach items="${pb.beanList }" var="order">
 <tr class="tt">
  <td width="320px">   :<a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }'/>">${order.oid }</a></td>
  <td width="200px">    :${order.ordertime }</td>
  <td> </td>
  <td> </td>
  <td> </td>
  <td> </td>
 </tr>
 <tr style="padding-top: 10px; padding-bottom: 10px;">
  <td colspan="2">
  <c:forEach items="${order.orderItemList }" var="orderItem">
   <a class="link2" href="<c:url value='/BookServlet?method=load&bid=${orderItem.book.bid }'/>">
   <img border="0" width="70" src="<c:url value='/${orderItem.book.image_b }'/>"/>
   </a>
  </c:forEach>
  </td>
  <td width="115px">
  <span class="price_t">¥${order.total }</span>
  </td>
  <td width="142px">
  <c:choose>
   <c:when test="${order.status eq 1 }">(    )</c:when>
   <c:when test="${order.status eq 2 }">(    )</c:when>
   <c:when test="${order.status eq 3 }">(    )</c:when>
   <c:when test="${order.status eq 4 }">(    )</c:when>
   <c:when test="${order.status eq 5 }">(   )</c:when>
  </c:choose>  
  </td>
  <td>
  <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }'/>">  </a><br/>
  <c:if test="${order.status eq 1 }">
   <a href="<c:url value='/OrderServlet?method=paymentPre&oid=${order.oid }'/>">  </a><br/>
   <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }&btn=cancel'/>">  </a><br/>   
  </c:if>
  <c:if test="${order.status eq 3 }">
   <a href="<c:url value='/OrderServlet?method=load&oid=${order.oid }&btn=confirm'/>">    </a><br/>
  </c:if>
  </td>
 </tr>
 </c:forEach>
 </table>
</div>
 
2.주문 모듈 생 성 주문서
OrderServlet

public String createOrder(HttpServletRequest req, HttpServletResponse resp)
 throws ServletException, IOException {
 /*
 * 1.           id,   
 */
 String cartItemIds = req.getParameter("cartItemIds");
 List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds);
 if(cartItemList.size() == 0) {
 req.setAttribute("code", "error");
 req.setAttribute("msg", "           ,    !");
 return "f:/jsps/msg.jsp";
 }
 /*
 * 2.   Order
 */
 Order order = new Order();
 order.setOid(CommonUtils.uuid());//    
 order.setOrdertime(String.format("%tF %<tT", new Date()));//    
 order.setStatus(1);//    ,1     
 order.setAddress(req.getParameter("address"));//      
 User owner = (User)req.getSession().getAttribute("sessionUser");
 order.setOwner(owner);//       
 
 BigDecimal total = new BigDecimal("0");
 for(CartItem cartItem : cartItemList) {
 total = total.add(new BigDecimal(cartItem.getSubtotal() + ""));
 }
 order.setTotal(total.doubleValue());//    
 
 /*
 * 3.   List<OrderItem>
 *   CartItem    OrderItem
 */
 List<OrderItem> orderItemList = new ArrayList<OrderItem>();
 for(CartItem cartItem : cartItemList) {
 OrderItem orderItem = new OrderItem();
 orderItem.setOrderItemId(CommonUtils.uuid());//    
 orderItem.setQuantity(cartItem.getQuantity());
 orderItem.setSubtotal(cartItem.getSubtotal());
 orderItem.setBook(cartItem.getBook());
 orderItem.setOrder(order);
 orderItemList.add(orderItem);
 }
 order.setOrderItemList(orderItemList);
 
 /*
 * 4.   service    
 */
 orderService.createOrder(order);
 
 //        
 cartItemService.batchDelete(cartItemIds);
 /*
 * 5.     ,   ordersucc.jsp
 */
 req.setAttribute("order", order);
 return "f:/jsps/order/ordersucc.jsp";
}
OrderDao

public void add(Order order) throws SQLException {
 /*
 * 1.     
 */
 String sql = "insert into t_order values(?,?,?,?,?,?)";
 Object[] params = {order.getOid(), order.getOrdertime(),
  order.getTotal(),order.getStatus(),order.getAddress(),
  order.getOwner().getUid()};
 qr.update(sql, params);
 
 /*
 * 2.            ,         Object[]
 *        Object[][]
 *      ,        
 */
 sql = "insert into t_orderitem values(?,?,?,?,?,?,?,?)";
 int len = order.getOrderItemList().size();
 Object[][] objs = new Object[len][];
 for(int i = 0; i < len; i++){
 OrderItem item = order.getOrderItemList().get(i);
 objs[i] = new Object[]{item.getOrderItemId(),item.getQuantity(),
  item.getSubtotal(),item.getBook().getBid(),
  item.getBook().getBname(),item.getBook().getCurrPrice(),
  item.getBook().getImage_b(),order.getOid()};
 }
 qr.batch(sql, objs);
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기