订单管理实现功能

2023-11-13

一.目标以及实现思路

商家:①查看订单

           ②发货 (订单状态: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>

1.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"});
	}

2.子控制器

package com.zy.web;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.R;
import com.zking.util.ResponseUtil;
import com.zy.dao.OrderDao;
import com.zy.entity.Order;



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();
			}
		}
	}
	
	
}

3.配置

<action path="/order" type="com.zy.web.OrderAction">
	
	</action>

4运行结果

 

 

 三.订单项

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>

1.方法

package com.zy.dao;

import java.util.List;

import com.zking.util.BaseDao;
import com.zking.util.PageBean;
import com.zy.entity.OrderItem;

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);
}

}

2.子控制器

package com.zy.web;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.R;
import com.zking.util.ResponseUtil;
import com.zy.dao.OrderItemDao;

import com.zy.entity.OrderItem;

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();
				}
		}
}

3.配置

<action path="/orderItem" type="com.zy.web.OrderItemAction">
	
	</action>

4.运行结果

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

订单管理实现功能 的相关文章