伙伴云客服论坛»论坛 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>
复制代码
2.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.         }
复制代码
3,子控制器
  1. public class OrderAction extends ActionSupport implements ModelDriver<Order>{
  2.         private Order order=new Order();
  3.         private OrderDao orderDao=new OrderDao();
  4.        
  5.         @Override
  6.         public Order getModel() {
  7.                 // TODO Auto-generated method stub
  8.                 return order;
  9.         }
  10.        
  11.         public void list(HttpServletRequest req, HttpServletResponse resp) {
  12.                 PageBean pageBean=new PageBean();
  13.                  pageBean.setRequest(req);
  14.                  
  15.                 try {
  16.                         List<Order> list = orderDao.list(order, pageBean);
  17.                         ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
  18.                        
  19.                 } catch (Exception e) {
  20.                         // TODO Auto-generated catch block
  21.                         e.printStackTrace();
  22.                 }
  23.                  
  24.         }
  25.         /**
  26.          * 关于发货,撤单。签收的公用方法
  27.          * @param req
  28.          * @param resp
  29.          */
  30.         public void cancelAndReceive(HttpServletRequest req, HttpServletResponse resp) {
  31.         //order就已经包含了,将要修改的状态以及对应的订单id
  32.                 try {
  33.                         orderDao.editState(order);
  34.                         ResponseUtil.writeJson(resp,1);
  35.                 } catch (Exception e) {
  36.                         // TODO Auto-generated catch block
  37.                         e.printStackTrace();
  38.                         try {
  39.                                 ResponseUtil.writeJson(resp,0);
  40.                         } catch (Exception e1) {
  41.                                 // TODO Auto-generated catch block
  42.                                 e1.printStackTrace();
  43.                         }
  44.                 }
  45.         }
  46.        
  47.        
  48. }
复制代码
配置:
<action path="/order" type="com.xyy.web.OrderAction">   
     </action>
运行结果:

订单管理实现-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>
复制代码
2,dao方法
  1. public class OrderItemDao extends BaseDao<OrderItem>{
  2.         /**
  3.          * 购物车结算订单项数据入库
  4.          * @param t
  5.          * @throws Exception
  6.          */
  7.        
  8. public void add( OrderItem t) throws Exception {
  9.         String sql="insert into t_easyui_orderItem(oid,bid,quantity) values(?,?,?)";
  10.         super.executeUpdate(sql, t,new String[] {"oid","bid","quantity"});
  11. }
  12. public List<OrderItem> list( OrderItem orderItem, PageBean pageBean) throws Exception {
  13.         String sql="select * from t_easyui_orderItem where 1=1";
  14.         //oid 是订单项的外键关联的是订单表的主键
  15.         long oid = orderItem.getOid();
  16.         if(oid!=0) {
  17.                 sql+=" and oid="+oid;
  18.         }
  19.         return super.executeQuery(sql, OrderItem.class, pageBean);
  20. }
  21. }
复制代码
3,子控制器
  1. public class OrderItemAction extends ActionSupport implements ModelDriver<OrderItem>{
  2. private OrderItem orderItem=new OrderItem();
  3. private OrderItemDao orderItemDao=new OrderItemDao();
  4.         @Override
  5.         public OrderItem getModel() {
  6.                 // TODO Auto-generated method stub
  7.                 return orderItem;
  8.         }
  9.        
  10.                 public void list(HttpServletRequest req, HttpServletResponse resp) {
  11.                         PageBean pageBean=new PageBean();
  12.                          pageBean.setRequest(req);
  13.                          try {
  14.                                  List<OrderItem> list = orderItemDao.list(orderItem, pageBean);
  15.                                         ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
  16.                                        
  17.                                 } catch (Exception e) {
  18.                                         // TODO Auto-generated catch block
  19.                                         e.printStackTrace();
  20.                                 }
  21.                 }
  22. }
复制代码
4,配置
<action path="/orderItem" type="com.xyy.web.OrderItemAction">
   </action>
运行结果:
订单管理实现-4.jpg

回复

举报 使用道具

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

孑,视如命っ
注册会员
主题 8
回复 10
粉丝 0
|网站地图
快速回复 返回顶部 返回列表