一.目的以及实现思路
商家:①查看订单
②发货 (订单状态:1未发货 2已发货 3已签收 4已撤单 默认值1)
③订单项查看
思路:订单表的查询,将订单表的订单状态由1改为2通过订单的id到订单项表查询出对应的订单
买家:①查看订单
②撤单
③签收
思路:订单表的查询,将订单表的订单状态由1改为4,将订单表的订单状态由2改为3
二,订单管理
1,JSP代码- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>商家订单页面</title>
- <link rel="stylesheet" type="text/css"
- href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css">
- <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css">
- <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
- <script type="text/javascript"
- src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script>
- <script src="${pageContext.request.contextPath}/static/js/main.js"></script>
- </head>
- <body>
- <table id="dg" style="style=" width:400px;height:200px;
- "></table>
-
- <script>
-
- $(function () {
- $('#dg').datagrid({
- url: '${pageContext.request.contextPath}/order.action?methodName=list&&orderState=1',
- fit: true,
- fitColumns: true,
- pagination: true,
- singleSelect: true,
- columns: [[
- // {field:'id',title:'id',width:100},
- {field: 'id', title: '书籍名称', hidden: true},
- {field: 'postalcode', title: '收货人邮编', hidden: true},
- {field: 'uid', title: '用户', width: 50},
- {field: 'consignee', title: '收货人', width: 50},
- {field: 'phone', title: '手机号', width: 50},
- {field: 'address', title: '收获人地址', width: 50},
- {field: 'orderPrice', title: '价格', width: 50},
- {field: 'sendTime', title: '发货时间', width: 50},
- {field: 'orderTime', title: '订单时间', width: 50},
- {
- field: 'sendType', title: '发送方式', width: 50, formatter: function (value, row, index) {
- if (row.sendType == 1) {
- return "平邮";
- } else if (row.sendType == 2) {
- return "快递";
- }
- }
- },
- {
- field: 'orderState', title: '订单状态', width: 100, formatter: function (value, row, index) {
- if (row.orderState == 1) {
- return "未发货";
- } else if (row.orderState == 2) {
- return "已发货";
- } else if (row.orderState == 3) {
- return "已签收";
- } else if (row.orderState == 4) {
- return "已撤单";
- }
- }
- },
- {
- field: 'xxxx', title: '操作', width: 100, formatter: function (value, row, index) {
- return '<a href="#" onclick="cancel();">撤单</a>';
-
- }
- }
- ]]
- });
- })
-
- function cancel() {
- var row = $('#dg').datagrid('getSelected');
- var id=0;
- if (row) {
- id = row.id;
- }else {
- alert("请勾选数据...");
- return;
- }
- $.messager.confirm('确认', '您确认想要撤单吗?', function (r) {
- if (r) {
- $.ajax({
- url: '${pageContext.request.contextPath}/order.action?methodName=cancelAndReceive&&orderState=4&id='+id,
- success: function (data) {
- $('#dg').datagrid('reload');
- }
- });
- }
- })
- }
- </script>
- </body>
- </html>
复制代码 2.order查询与修改状态的方法- /**
- * 依照订单时间倒序查询:需要设置当前订单项是属于哪个订单的,思路是查询出最新订单的id
- * @param order
- * @param pageBean
- * @return
- * @throws Exception
- */
- public List<Order> list( Order order, PageBean pageBean) throws Exception {
-
- String sql="select * from t_easyui_order where 1=1 ";
- long id = order.getId();
- if(id!=0) {
- sql+=" and id="+id;
- }
- //用来根据状态查询
- int orderState = order.getOrderState();
- if(orderState !=0) {
- sql+=" and orderState="+orderState;
- }
- sql+=" order by orderTime desc";
- return super.executeQuery(sql, Order.class, pageBean);
- }
-
- /**
- * 修改订单状态
- *
- */
- public void editState( Order t) throws Exception {
- String sql="update t_easyui_order set orderState=? where id=?";
- //假设是发货,那么还需要修改发货时间
- int orderState = t.getOrderState();
- if(orderState ==2) {
- sql="update t_easyui_order set orderState=?,sendTime=now() where id=?";
- }
- super.executeUpdate(sql, t, new String[] {"orderState","id"});
- }
复制代码 3,子控制器- public class OrderAction extends ActionSupport implements ModelDriver<Order>{
- private Order order=new Order();
- private OrderDao orderDao=new OrderDao();
-
- @Override
- public Order getModel() {
- // TODO Auto-generated method stub
- return order;
- }
-
-
- public void list(HttpServletRequest req, HttpServletResponse resp) {
- PageBean pageBean=new PageBean();
- pageBean.setRequest(req);
-
- try {
- List<Order> list = orderDao.list(order, pageBean);
- ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
-
- /**
- * 关于发货,撤单。签收的公用方法
- * @param req
- * @param resp
- */
-
- public void cancelAndReceive(HttpServletRequest req, HttpServletResponse resp) {
- //order就已经包含了,将要修改的状态以及对应的订单id
- try {
- orderDao.editState(order);
- ResponseUtil.writeJson(resp,1);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- try {
- ResponseUtil.writeJson(resp,0);
- } catch (Exception e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- }
-
-
- }
复制代码 配置:
<action path="/order" type="com.xyy.web.OrderAction">
</action>
运行结果:
三,订单项管理
1,JSP代码- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>商家订单页面</title>
- <link rel="stylesheet" type="text/css"
- href="${pageContext.request.contextPath}/static/js/easyui/themes/default/easyui.css">
- <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/js/easyui/themes/icon.css">
- <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
- <script type="text/javascript"
- src="${pageContext.request.contextPath}/static/js/easyui/jquery.easyui.min.js"></script>
- <script src="${pageContext.request.contextPath}/static/js/main.js"></script>
- </head>
- <body>
- <table id="dg" style="style=" width:400px;height:200px;
- "></table>
- <div id="tb">
- <input class="easyui-textbox" id="oid" name="oid" style="width:20%;padding-left: 10px" data-options="label:'订单号:',required:true">
- <a id="btn-search" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">搜索</a>
- </div>
-
- <script>
-
- $(function () {
- $("#btn-search").click(function () {
- $('#dg').datagrid('load', {
- oid: $("#oid").val()
- });
- });
-
- $('#dg').datagrid({
- url: '${pageContext.request.contextPath}/orderItem.action?methodName=list',
- fit: true,
- fitColumns: true,
- pagination: true,
- singleSelect: true,
- toolbar:'#tb',
- columns: [[
- // {field:'id',title:'id',width:100},
- {field: 'id', title: '订单项流水号', hidden: true},
- {field: 'oid', title: '订单号', width: 50},
- {field: 'bid', title: '书籍名称', width: 50},
- {field: 'quantity', title: '数量', width: 50}
- ]]
- });
- })
-
- </script>
- </body>
- </html>
复制代码 2,dao方法- public class OrderItemDao extends BaseDao<OrderItem>{
- /**
- * 购物车结算订单项数据入库
- * @param t
- * @throws Exception
- */
-
-
- public void add( OrderItem t) throws Exception {
- String sql="insert into t_easyui_orderItem(oid,bid,quantity) values(?,?,?)";
- super.executeUpdate(sql, t,new String[] {"oid","bid","quantity"});
- }
-
-
- public List<OrderItem> list( OrderItem orderItem, PageBean pageBean) throws Exception {
- String sql="select * from t_easyui_orderItem where 1=1";
- //oid 是订单项的外键关联的是订单表的主键
- long oid = orderItem.getOid();
- if(oid!=0) {
- sql+=" and oid="+oid;
- }
- return super.executeQuery(sql, OrderItem.class, pageBean);
- }
-
- }
复制代码 3,子控制器- public class OrderItemAction extends ActionSupport implements ModelDriver<OrderItem>{
- private OrderItem orderItem=new OrderItem();
- private OrderItemDao orderItemDao=new OrderItemDao();
- @Override
- public OrderItem getModel() {
- // TODO Auto-generated method stub
- return orderItem;
- }
-
- public void list(HttpServletRequest req, HttpServletResponse resp) {
- PageBean pageBean=new PageBean();
- pageBean.setRequest(req);
- try {
- List<OrderItem> list = orderItemDao.list(orderItem, pageBean);
- ResponseUtil.writeJson(resp, new R().data("total",pageBean.getTotal()).data("rows", list));
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
复制代码 4,配置
<action path="/orderItem" type="com.xyy.web.OrderItemAction">
</action>
运行结果:
|