java网上图书商城(7)订单模块2
程序员文章站
2024-03-11 19:30:55
本文实例为大家分享了java网上图书商城订单模块的具体代码,供大家参考,具体内容如下
1.我的订单---查
按用户查询订单
分页查询 pagebean
本文实例为大家分享了java网上图书商城订单模块的具体代码,供大家参考,具体内容如下
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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。