订单管理功能实现

一、根据条件查询书籍状态(未发货,已发货,已签收)

1.dao类里写入查询和修改的方法

public List<Order> list(Order order,PageBean pageBean) throws Exception{
		String sql="select * from t_easyui_order where 1=1";
		int state = order.getOrderState();
		if(state!=0) {
			sql+=" and orderState="+state;
		}
		sql+=" order by orderTime desc";
		return super.executeQuery(sql, Order.class, pageBean);
	}
	
	public void edit(Order order) throws Exception {
		
		String sql="update t_easyui_order set orderState=? where id=?";
		int orderState = order.getOrderState();
		if(orderState==2) {
			sql="update t_easyui_order set orderState=?,sendTime=now() where id=?";
		}
		super.executeUpdate(sql, order, new String[] {"orderState","id"});
	}

2.子控制器调用方法

public Order order=new Order();
	public OrderDao orderDao=new OrderDao();
	@Override
	public Order getModel() {
		return order;
	}
	
	public String list(HttpServletRequest req, HttpServletResponse resp) throws Exception {
		PageBean pageBean=new PageBean();
		pageBean.setRequest(req);
		List<Order> list = orderDao.list(order, pageBean);
		Map<String, Object> map=new HashMap<String, Object>();
		map.put("total", pageBean.getTotal());
		map.put("rows", list);
		ResponseUtil.writeJson(resp, map);
		return null;
	}
	public String cancelAndReceive(HttpServletRequest req, HttpServletResponse resp) {
		try {
			orderDao.edit(order);
			ResponseUtil.writeJson(resp, 1);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

3.xml文件配置

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

 4.js前端实现

 $(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="sendOrder();">发货</a>';

                    }
                }
            ]]
        });
    })

未发货、已发货、已签收可供应一个方法

 function sendOrder() {
        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=2&id='+id,
                    success: function (data) {
                        $('#dg').datagrid('reload');
                    }
                });
            }
        })
    }

可在实体类表示时间列的前面加上,使时间更加规范

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

效果图

卖家和买家共用查询和修改方法

可做到数据同步 

二、订单项显示

1.查询订单项

public List<OrderItem> list(OrderItem orderItem, PageBean pageBean) throws Exception {
		String sql="select * from t_easyui_orderitem where 1=1";
		long oid = orderItem.getOid();
		if(oid!=0) {
			sql+=" and oid="+oid;
		}
		return super.executeQuery(sql, OrderItem.class, pageBean);
	}

2.子控制器调用方法

package com.sjy.web;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import com.sjy.dao.OrderItemDao;
import com.sjy.entity.OrderItem;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.PageBean;
import com.zking.util.ResponseUtil;

public class OrderItemAction extends ActionSupport implements ModelDriver<OrderItem>{
public OrderItem orderitem=new OrderItem();
public OrderItemDao orderitemDao=new OrderItemDao();
	@Override
	public OrderItem getModel() {
		return orderitem;
	}

	public String list(HttpServletRequest req, HttpServletResponse resp) throws Exception {
		PageBean pageBean=new PageBean();
		pageBean.setRequest(req);
		List<OrderItem> list = orderitemDao.list(orderitem, pageBean);
		Map<String, Object> map=new HashMap<String, Object>();
		map.put("total", pageBean.getTotal());
		map.put("rows", list);
		ResponseUtil.writeJson(resp, map);
		return null;
	}
}

3.配置xml文件

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

 4.js前端实现

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

结果展示

 


版权声明:本文为weixin_52639224原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。