伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

管理员——订单管理

1 订单查询

    准备工作
    修改订单管理链接
    未付款订单,state=1
    已付款订单,state=2
    已发货的订单,state=3
    已完成的订单,state=4
  1. d.add('0105','01','订单管理');
  2.         d.add('010501','0105','订单管理','${pageContext.request.contextPath}/adminOrderServlet?method=findAllOrders','','mainFrame');
  3.         d.add('010502','0105','未付款的订单','${pageContext.request.contextPath}/adminOrderServlet?method=findAllOrders&state=1','','mainFrame');
  4.         d.add('010503','0105','已付款订单','${pageContext.request.contextPath}/adminOrderServlet?method=findAllOrders&state=2','','mainFrame');
  5.         d.add('010504','0105','已发货的订单','${pageContext.request.contextPath}/adminOrderServlet?method=findAllOrders&state=3','','mainFrame');
  6.         d.add('010505','0105','已完成的订单','${pageContext.request.contextPath}/adminOrderServlet?method=findAllOrders&state=4','','mainFrame');
复制代码
    添加findAllOrders方法
  1. public String findAllOrders(HttpServletRequest req, HttpServletResponse resp)throws Exception {
  2.         OrderService OrderService =newOrderServiceImp();
  3.         String st = req.getParameter("state");
  4.         List<Order> list = null;if(null == st ||"".equals(st)){//获取到全部订单
  5.             list = OrderService.findAllOrders();}else{
  6.             list = OrderService.findAllOrders(st);}//将全部订单放入request
  7.         req.setAttribute("allOrders", list);//转发 /admin/order/list.jspreturn"/admin/order/list.jsp";}
复制代码
    业务层
  1. public List<Order>findAllOrders()throws Exception {return orderDao.findAllOrders();}
复制代码
  1. public List<Order>findAllOrders(String st)throws Exception {return orderDao.findAllOrders(st);}
复制代码
    dao层
  1. public List<Order>findAllOrders(){
  2.     String sql ="select * from orders";return template.query(sql,newBeanPropertyRowMapper<>(Order.class));}
复制代码
  1. public List<Order>findAllOrders(String st){
  2.     String sql ="select * from orders where state= ?";return template.query(sql,newBeanPropertyRowMapper<>(Order.class), st);}
复制代码
    编写
  1. <tr
  2.     style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; HEIGHT: 25px; BACKGROUND-COLOR: #afd1f3"><td align="center" width="5%">
  3.         序号
  4.     </td><td align="center" width="25%">
  5.         订单编号
  6.     </td><td align="center" width="5%">
  7.         订单金额
  8.     </td><td align="center" width="5%">
  9.         收货人
  10.     </td><td align="center" width="5%">
  11.         订单状态
  12.     </td><td align="center" width="55%">
  13.         订单详情
  14.     </td></tr><c:if test="${empty allOrders }"><tr><td colspan="6">暂无数据</td></tr></c:if><c:if test="${not empty allOrders }"><c:forEach items="${allOrders}" var="o" varStatus="status"><tr onmouseover="this.style.backgroundColor = 'white'"
  15.                             onmouseout="this.style.backgroundColor = '#F5FAFE';"><td style="CURSOR: hand; HEIGHT: 22px" align="center"
  16.                 width="5%">
  17.                 ${status.count}</td><td style="CURSOR: hand; HEIGHT: 22px" align="center"
  18.                 width="25%">
  19.                 ${o.oid}</td><td style="CURSOR: hand; HEIGHT: 22px" align="center"
  20.                 width="5%">
  21.                 ${o.total}</td><td style="CURSOR: hand; HEIGHT: 22px" align="center"
  22.                 width="5%">
  23.                 ${o.name}</td><td style="CURSOR: hand; HEIGHT: 22px" align="center"
  24.                 width="5%"><!--1=未付款、2=发货、3=已发货、4=订单完成 --><c:if test="${o.state==1}">未付款</c:if><c:if test="${o.state==2}"><a href="${pageContext.request.contextPath}/adminOrderServlet?method=updateOrderByOid&oid=${o.oid}">发货</a></c:if><c:if test="${o.state==3}">已发货,未签收</c:if><c:if test="${o.state==4}">完毕</c:if></td><td align="center" style="HEIGHT: 22px"><input type="button" value="订单详情"class="btn" id="${o.oid}"/><table width="100%" border="1"class="myTb"><!--<tr><th>商品</th><th>名称</th><th>数量</th><th>小计</th></tr><tr><td></td><td>名称</td><td>数量</td><td>小计</td></tr><tr><td></td><td>名称</td><td>数量</td><td>小计</td></tr>--></table></td></tr></c:forEach></c:if>
复制代码
2 发货

    给发货绑定
  1. <c:if test="${o.state==2}"><a href="${pageContext.request.contextPath}/adminOrderServlet?method=updateOrderByOid&oid=${o.oid}">发货</a></c:if>
复制代码
    编写updateOrderByOid方法
  1. public String updateOrderByOid(HttpServletRequest req, HttpServletResponse resp)throws Exception {//获取订单ID
  2.     String oid = req.getParameter("oid");//根据订单ID查询订单
  3.     OrderService OrderService =newOrderServiceImp();
  4.     Order order = OrderService.findOrderByOid(oid);//设置订单状态
  5.     order.setState(3);//修改订单信息
  6.     OrderService.updateOrder(order);//重新定向到查询已发货订单
  7.     resp.sendRedirect(req.getContextPath()+"/adminOrderServlet?method=findAllOrders&state=3");return null;}
复制代码
    业务层
  1. publicvoidupdateOrder(Order order)throws Exception {
  2.     orderDao.updateOrder(order);}
复制代码
    dao层,更新数据库
  1. publicvoidupdateOrder(Order order){
  2.     String sql ="UPDATE orders SET ordertime=? ,total=? ,state= ?, address=?,NAME=?, telephone =? WHERE oid=?";
  3.     Object[] params ={order.getOrdertime(), order.getTotal(), order.getState(), order.getAddress(), order.getName(), order.getTelephone(), order.getOid()};
  4.     template.update(sql, params);}
复制代码
3 查看订单详情

    给订单详情绑定单击事件
  1. <script>
  2.     $(function (){//页面加载完毕之后获取款式为.btn标签,为其绑定点击事件
  3.         $(".btn").click(function (){//获取按钮文字
  4.             var val = $(this).val();//this.value//获取按钮上id的值
  5.             var id =this.id;//alert(id);//获取按钮,约定:假设我们用的是JQUERYAPI获取到的对象,加前缀$.
  6.             var $btn = $(this);if("订单详情"== val){//发送Ajax恳求
  7.                 $.post("${pageContext.request.contextPath}/adminOrderServlet",{"method":"findOrderByOidWithAjax","oid": id
  8.                 }, function (dt){//alert(dt);//var $tb=$(this).next();//alert(this);  //此处无用,JS打印对象:都是Object//console.log(this); //火狐控制台下打印当前对象//获取到当前按钮的下一个兄弟节点
  9.                     var $tb = $btn.next("table");//清空table元素
  10.                     $tb.html("");//alert($tb.attr("class")); //测试是否正确获取到table标签对象
  11.                     $tb.append("<tr><th>商品</th><th>名称</th><th>数量</th><th>小计</th></tr>");//JQUERY的方式遍历数组元素
  12.                     $.each(dt, function (i, o){
  13.                         var tr ="<tr><td><img src='${pageContext.request.contextPath}/"+ o.product.pimage +"' width='50px'/></td><td>"+ o.product.pname +"</td><td>"+ o.quantity +"</td><td>"+ o.total +"</td></tr>";
  14.                         $tb.append(tr);});//更改按钮文字
  15.                     $btn.val("关闭");});}if("关闭"== val){
  16.                 var $tb = $btn.next("table");
  17.                 $tb.html("");
  18.                 $btn.val("订单详情");}});});</script>
复制代码
    编写findOrderByOidWithAjax方法
  1. public String findOrderByOidWithAjax(HttpServletRequest req, HttpServletResponse resp)throws Exception {//效劳端获取到订单ID,
  2.     String oid = req.getParameter("oid");//查询这个订单下所有的订单项以及订单项对应的商品信息,返回集合
  3.     OrderService OrderService =newOrderServiceImp();
  4.     Order order = OrderService.findOrderByOid(oid);//将返回的集合转换为JSON格式字符串,响应到客户端
  5.     String jsonStr = JSONArray.fromObject(order.getList()).toString();//响应到客户端
  6.     resp.setContentType("application/json;charset=utf-8");
  7.     resp.getWriter().println(jsonStr);return null;}
复制代码

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

画眉
注册会员
主题 15
回复 16
粉丝 0
|网站地图
快速回复 返回顶部 返回列表