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

0 评论

0 收藏

分享

订单管理实现功能

一.目的以及实现思路

商家:①查看订单
           ②发货 (订单状态:1未发货 2已发货 3已签收 4已撤单 默认值1)
            ③订单项查看
   思路:订单表的查询,将订单表的订单状态由1改为2通过订单的id到订单项表查询出对应的订单
买家:①查看订单
            ②撤单
             ③签收
思路:订单表的查询,将订单表的订单状态由1改为4,将订单表的订单状态由2改为3
二.订单

1.jsp代码
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4.     <title>商家订单页面</title>
  5.     <link rel="stylesheet" type="text/css"
  6.           href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css">
  7.     <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css">
  8.     <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
  9.     <script type="text/javascript"
  10.             src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script>
  11.     <script src="${pageContext.request.contextPath}/static/js/main.js"></script>
  12. </head>
  13. <body>
  14. <table id="dg" style="style=" width:400px;height:200px;
  15. "></table>
  16. <script>
  17.     $(function () {
  18.         $('#dg').datagrid({
  19.             url: '${pageContext.request.contextPath}/order.action?methodName=list&&orderState=1',
  20.             fit: true,
  21.             fitColumns: true,
  22.             pagination: true,
  23.             singleSelect: true,
  24.             columns: [[
  25.                 // {field:'id',title:'id',width:100},
  26.                 {field: 'id', title: '书籍名称', hidden: true},
  27.                 {field: 'postalcode', title: '收货人邮编', hidden: true},
  28.                 {field: 'uid', title: '用户', width: 50},
  29.                 {field: 'consignee', title: '收货人', width: 50},
  30.                 {field: 'phone', title: '手机号', width: 50},
  31.                 {field: 'address', title: '收获人地址', width: 50},
  32.                 {field: 'orderPrice', title: '价格', width: 50},
  33.                 {field: 'sendTime', title: '发货时间', width: 50},
  34.                 {field: 'orderTime', title: '订单时间', width: 50},
  35.                 {
  36.                     field: 'sendType', title: '发送方式', width: 50, formatter: function (value, row, index) {
  37.                         if (row.sendType == 1) {
  38.                             return "平邮";
  39.                         } else if (row.sendType == 2) {
  40.                             return "快递";
  41.                         }
  42.                     }
  43.                 },
  44.                 {
  45.                     field: 'orderState', title: '订单状态', width: 100, formatter: function (value, row, index) {
  46.                         if (row.orderState == 1) {
  47.                             return "未发货";
  48.                         } else if (row.orderState == 2) {
  49.                             return "已发货";
  50.                         } else if (row.orderState == 3) {
  51.                             return "已签收";
  52.                         } else if (row.orderState == 4) {
  53.                             return "已撤单";
  54.                         }
  55.                     }
  56.                 },
  57.                 {
  58.                     field: 'xxxx', title: '操作', width: 100, formatter: function (value, row, index) {
  59.                         return '<a href="#" onclick="cancel();">撤单</a>';
  60.                     }
  61.                 }
  62.             ]]
  63.         });
  64.     })
  65.    
  66.     function cancel() {
  67.         var row = $('#dg').datagrid('getSelected');
  68.         var id=0;
  69.         if (row) {
  70.             id = row.id;
  71.         }else {
  72.             alert("请勾选数据...");
  73.             return;
  74.         }
  75.         $.messager.confirm('确认', '您确认想要撤单吗?', function (r) {
  76.             if (r) {
  77.                 $.ajax({
  78.                     url: '${pageContext.request.contextPath}/order.action?methodName=cancelAndReceive&&orderState=4&id='+id,
  79.                     success: function (data) {
  80.                         $('#dg').datagrid('reload');
  81.                     }
  82.                 });
  83.             }
  84.         })
  85.     }
  86. </script>
  87. </body>
  88. </html>
复制代码
1.order查询与修改状态的方法
  1. /**
  2.          * 依照订单时间倒序查询:需要设置当前订单项是属于哪个订单的,思路是查询出最新订单的id
  3.          * @param order
  4.          * @param pageBean
  5.          * @return
  6.          * @throws Exception
  7.          */
  8.         public List<Order> list( Order order, PageBean pageBean) throws Exception {
  9.                
  10.                 String sql="select * from t_easyui_order where 1=1 ";
  11.                 long id = order.getId();
  12.                 if(id!=0) {
  13.                         sql+=" and id="+id;
  14.                 }
  15.                 //用来根据状态查询
  16.                 int orderState = order.getOrderState();
  17.                 if(orderState !=0) {
  18.                         sql+=" and orderState="+orderState;
  19.                 }
  20.                 sql+=" order by orderTime desc";
  21.                 return super.executeQuery(sql, Order.class, pageBean);
  22.         }
  23.        
  24. /**
  25. * 修改订单状态
  26. *
  27. */
  28.         public void editState( Order t) throws Exception {
  29.                 String sql="update t_easyui_order set orderState=? where id=?";
  30.                 //假设是发货,那么还需要修改发货时间
  31.                 int orderState = t.getOrderState();
  32.                 if(orderState ==2) {
  33.                         sql="update t_easyui_order set orderState=?,sendTime=now() where id=?";
  34.                 }
  35.                 super.executeUpdate(sql, t, new String[] {"orderState","id"});
  36.         }
复制代码
2.子控制器
  1. package com.zy.web;
  2. import java.util.List;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.zking.framework.ActionSupport;
  6. import com.zking.framework.ModelDriver;
  7. import com.zking.util.PageBean;
  8. import com.zking.util.R;
  9. import com.zking.util.ResponseUtil;
  10. import com.zy.dao.OrderDao;
  11. import com.zy.entity.Order;
  12. public class OrderAction extends ActionSupport implements ModelDriver<Order>{
  13.         private Order order=new Order();
  14.         private OrderDao orderDao=new OrderDao();
  15.        
  16.         @Override
  17.         public Order getModel() {
  18.                 // TODO Auto-generated method stub
  19.                 return order;
  20.         }
  21.        
  22.         public void list(HttpServletRequest req, HttpServletResponse resp) {
  23.                 PageBean pageBean=new PageBean();
  24.                  pageBean.setRequest(req);
  25.                  
  26.                 try {
  27.                         List<Order> list = orderDao.list(order, pageBean);
  28.                         ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
  29.                        
  30.                 } catch (Exception e) {
  31.                         // TODO Auto-generated catch block
  32.                         e.printStackTrace();
  33.                 }
  34.                  
  35.         }
  36.         /**
  37.          * 关于发货,撤单。签收的公用方法
  38.          * @param req
  39.          * @param resp
  40.          */
  41.         public void cancelAndReceive(HttpServletRequest req, HttpServletResponse resp) {
  42.         //order就已经包含了,将要修改的状态以及对应的订单id
  43.                 try {
  44.                         orderDao.editState(order);
  45.                         ResponseUtil.writeJson(resp,1);
  46.                 } catch (Exception e) {
  47.                         // TODO Auto-generated catch block
  48.                         e.printStackTrace();
  49.                         try {
  50.                                 ResponseUtil.writeJson(resp,0);
  51.                         } catch (Exception e1) {
  52.                                 // TODO Auto-generated catch block
  53.                                 e1.printStackTrace();
  54.                         }
  55.                 }
  56.         }
  57.        
  58.        
  59. }
复制代码
3.配置
  1. <action path="/order" type="com.zy.web.OrderAction">
  2.        
  3.         </action>
复制代码
4运行结果
订单管理实现功能-1.jpg


订单管理实现功能-2.jpg


订单管理实现功能-3.jpg


三.订单项

1.jsp代码
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4.     <title>商家订单页面</title>
  5.     <link rel="stylesheet" type="text/css"
  6.           href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css">
  7.     <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css">
  8.     <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
  9.     <script type="text/javascript"
  10.             src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script>
  11.     <script src="${pageContext.request.contextPath}/static/js/main.js"></script>
  12. </head>
  13. <body>
  14. <table id="dg" style="style=" width:400px;height:200px;
  15. "></table>
  16. <div id="tb">
  17.     <input class="easyui-textbox" id="oid" name="oid" style="width:20%;padding-left: 10px" data-options="label:'订单号:',required:true">
  18.     <a id="btn-search" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">搜索</a>
  19. </div>
  20. <script>
  21.     $(function () {
  22.         $("#btn-search").click(function () {
  23.             $('#dg').datagrid('load', {
  24.                 oid: $("#oid").val()
  25.             });
  26.         });
  27.         $('#dg').datagrid({
  28.             url: '${pageContext.request.contextPath}/orderItem.action?methodName=list',
  29.             fit: true,
  30.             fitColumns: true,
  31.             pagination: true,
  32.             singleSelect: true,
  33.             toolbar:'#tb',
  34.             columns: [[
  35.                 // {field:'id',title:'id',width:100},
  36.                 {field: 'id', title: '订单项流水号', hidden: true},
  37.                 {field: 'oid', title: '订单号', width: 50},
  38.                 {field: 'bid', title: '书籍名称', width: 50},
  39.                 {field: 'quantity', title: '数量', width: 50}
  40.             ]]
  41.         });
  42.     })
  43.    
  44. </script>
  45. </body>
  46. </html>
复制代码
1.方法
  1. package com.zy.dao;
  2. import java.util.List;
  3. import com.zking.util.BaseDao;
  4. import com.zking.util.PageBean;
  5. import com.zy.entity.OrderItem;
  6. public class OrderItemDao extends BaseDao<OrderItem>{
  7.         /**
  8.          * 购物车结算订单项数据入库
  9.          * @param t
  10.          * @throws Exception
  11.          */
  12.        
  13. public void add( OrderItem t) throws Exception {
  14.         String sql="insert into t_easyui_orderItem(oid,bid,quantity) values(?,?,?)";
  15.         super.executeUpdate(sql, t,new String[] {"oid","bid","quantity"});
  16. }
  17. public List<OrderItem> list( OrderItem orderItem, PageBean pageBean) throws Exception {
  18.         String sql="select * from t_easyui_orderItem where 1=1";
  19.         //oid 是订单项的外键关联的是订单表的主键
  20.         long oid = orderItem.getOid();
  21.         if(oid!=0) {
  22.                 sql+=" and oid="+oid;
  23.         }
  24.         return super.executeQuery(sql, OrderItem.class, pageBean);
  25. }
  26. }
复制代码
2.子控制器
  1. package com.zy.web;
  2. import java.util.List;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.zking.framework.ActionSupport;
  6. import com.zking.framework.ModelDriver;
  7. import com.zking.util.PageBean;
  8. import com.zking.util.R;
  9. import com.zking.util.ResponseUtil;
  10. import com.zy.dao.OrderItemDao;
  11. import com.zy.entity.OrderItem;
  12. public class OrderItemAction extends ActionSupport implements ModelDriver<OrderItem>{
  13. private OrderItem orderItem=new OrderItem();
  14. private OrderItemDao orderItemDao=new OrderItemDao();
  15.         @Override
  16.         public OrderItem getModel() {
  17.                 // TODO Auto-generated method stub
  18.                 return orderItem;
  19.         }
  20.        
  21.                 public void list(HttpServletRequest req, HttpServletResponse resp) {
  22.                         PageBean pageBean=new PageBean();
  23.                          pageBean.setRequest(req);
  24.                          try {
  25.                                  List<OrderItem> list = orderItemDao.list(orderItem, pageBean);
  26.                                         ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
  27.                                        
  28.                                 } catch (Exception e) {
  29.                                         // TODO Auto-generated catch block
  30.                                         e.printStackTrace();
  31.                                 }
  32.                 }
  33. }
复制代码
3.配置
  1. <action path="/orderItem" type="com.zy.web.OrderItemAction">
  2.        
  3.         </action>
复制代码
4.运行结果
订单管理实现功能-4.jpg

回复

举报 使用道具

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

脱又极端
注册会员
主题 15
回复 17
粉丝 0
|网站地图
快速回复 返回顶部 返回列表