欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java网上图书商城(7)订单模块2

程序员文章站 2024-03-09 13:35:47
本文实例为大家分享了java网上图书商城订单模块的具体代码,供大家参考,具体内容如下 1.我的订单---查 按用户查询订单 分页查询 pagebean

本文实例为大家分享了java网上图书商城订单模块的具体代码,供大家参考,具体内容如下

java网上图书商城(7)订单模块2

1.我的订单---查

按用户查询订单
分页查询 pagebean<order>

<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);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。