前言:上次与大家分享了easyui项目的购物车功能,还差最后一步,整个easyui项目就已经完成了,今天与大家分享订单管理(订单的增删查)
一、明确目标:
1、商家:
1、查看订单(未发货、已发货、已签收、订单项)
2、发货功能(状态:1:未发货、2:已发货、3:已签收、4:已撤单)
3、订单项目查看
2、买家:
1、查看订单(未发货、已发货、已签收)
2、撤单
3、签收
二、实现代码、思路以及运行效果:
一、商家:
1.查看订单:
1.1思路:
1、登陆管理员状态,根据订单的状态以及id进行全部查询即可得到每个状态的订单
2、写好dao方法,action子控制器,还有mvc配置文件
1.2代码:
OrderDao层:
public List<Order> list(Order order, PageBean pageBean) throws Exception {
// String sql="select * from t_easyui_order order by orderTime desc";
String sql = "select * from t_easyui_order where 1=1 ";
long id = order.getId();
int orderState = order.getOrderState();
if (id != 0) {
sql += " and id=" + id;//根据订单id进行查询
}
if (orderState != 0) {
sql += " and orderState=" + orderState;//根据订单的状态进行查询
}
sql += " order by orderTime desc";
return super.executeQuery(sql, Order.class, pageBean);
}
OrderAction:
public void list(HttpServletRequest req, HttpServletResponse resp) {
PageBean pageBean = new PageBean();
pageBean.setRequest(req);
try {
List<Order> list = orderDao.list(order, pageBean);//运用list方法,查询到对应的订单
ResponseUtil.writeJson(resp, new R().data("total", pageBean.getTotal()).data("rows", list));
} catch (Exception e) {
e.printStackTrace();
}
}
mvc.xml:
<action path="/order" type="com.zking.web.OrderAction">
</action>
1.3运行效果:
未发货:
已发货:
已签收:
2.发货功能:
2.1思路:发货功能是指把状态从未发货状态改为已发货(从0改为1)
2.2代码:
OrderDao:
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" });
}
OrderAction:
public void cancelAndReceive(HttpServletRequest req, HttpServletResponse resp) {
try {
orderDao.editState(order);
ResponseUtil.writeJson(resp, 1);
} catch (Exception e) {
try {
ResponseUtil.writeJson(resp, 0);
} catch (Exception e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
3.运行效果:
已发货的效果:
3.订单项查看:
3.1代码:
OrderItmeDao:
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;//根据订单id进行查询
}
return super.executeQuery(sql, OrderItem.class, pageBean);
}
OrderItmeAction:
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();
}
}
mvc.XML:
<action path="/orderItem" type="com.zking.web.OrderItemAction">
</action>
3.2运行效果:
二、买家:
查看订单(未发货、已发货、已签收)、撤单、签收的整体思路:
这三个功能和商家的思路和代码都是一样的,查看订单都是调用查询方法,撤单、签收功能是调用了改变订单状态的方法。
1.查看订单运行效果:
未发货:
已发货:
已签收:
撤单功能:
id为ddd的用户订单状态变为了4,就表示已经撤单成功
签收功能:
点击ok之后:
签收界面有天美用户的订单。功能全部完成。
三、完整项目效果展示:
在未发货界面将用户xxx购买的书进行发货:
点击发货之后就会从未发货界面转到已发货界面:(未发货界面该用户订单消失)
这时就要登录买家的账号进行签收:
签收完之后,买家的已签收界面就会多一条数据,而已发货界面原有的订单就会消失:
已发货:
已签收:
在之后跳转到商家界面,查看买家已签收的订单是否还存在:
商家已签收界面:
商家已发货界面:
到此就整个easyui项目效果展示完毕(当然还有撤单和加入购物车功能已经演示过了,这里就没有演示了)