订单模块实现
orderDao接口编写
/**
* 保存订单项到数据库
* @param order 订单项对象
* @return 返回-1则操作失败
*/
public int saveOder(order order);
/**
* 根据订单号查询订单
* @param Id 订单id
* @return 返回一个list集合里面存储这个用户的订单
*
**/
public List<order> queryMyOrderById(Integer Id);
/**
* @return 返回一个list集合里面存储所有订单项
* 查询所有
*
* */
public List<order> queryAllOrder();
/**
*修改订单状态
* @param statusNum 修改的状态 0为未发货1为发货2为签收
* @param orderId 订单的id
* @return 返回-1则操作失败
* */
public int changeOrderStatus(Integer statusNum,String orderId);
orderDao实现类的编写
/** * * 保存一个订单到数据库指定的数据表中 * */ @Override public int saveOder(order order) { String sql="insert into t_order(`order_id`,`create_time`,`price`,`status`,`user_id`) values(?,?,?,?,?)"; return update(sql,order.getOrderId(),order.getCreateTime(),order.getPrice(),order.getStatus(),order.getUserId()); } /** * 查找该用户的所有订单 * * */ @Override public List<order> queryMyOrderById(Integer Id) { String sql="select order_id as orderId,create_time as createTime,price,status,user_id as userId from t_order where user_id=?"; return queryForList(order.class,sql,Id); } /** * 查找所有订单 * * */ @Override public List<order> queryAllOrder() { String sql = "select order_id as orderId,create_time as createTime,price,status,user_id as userId from t_order"; return queryForList(order.class, sql); } /** * 修改订单信息 * * */ @Override public int changeOrderStatus(Integer statusNum, String orderId) { String sql="update t_order set `status`=? where order_id=?"; return update(sql, statusNum, orderId); }
编写orderItemDao
/** * 保存订单项的详细信息 * */ public int saveOrderItem(OrderItem orderItem); /** * 查询订单号的详细信息 * */ public List<OrderItem> Details(String orderId);
编写实现类
@Override public int saveOrderItem(OrderItem orderItem) { String sql = "insert into t_order_item(`name`,`count`,`price`,`total_price`,`order_id`) values(?,?,?,?,?)"; return update(sql, orderItem.getName(), orderItem.getCount(), orderItem.getPrice(), orderItem.getTotalPrice(), orderItem.getOrderId()); } /** * 查找订单的详细信息 * * * */ @Override public List<OrderItem> Details(String orderId) { String sql="select name,count,price,total_price as totalPrice from t_order_item where order_id=?"; return queryForList(OrderItem.class,sql,orderId); }
编写service层
编写orderService
/** * 创建一个订单 * */ public String CreateOrder(shopcart shopcart, Integer userid); /** * 查找该用户的所有订单 * */ public List<order> queryMyOrderById(Integer id); /** * 查询某个订单的详细信息 * */ public List<OrderItem> Details(String orderId); /** * * 查询所有 * */ public List<order> queryAllOrder(); /** * *发货 * * */ public int sendOrder(String orderId); /** * 收货 * */ public int receiveOrder(String orderId);
编写orderservice实现类
private OrderDao OrderDao=new OrderDaoImp1(); private OrderItemDao OrderItem=new OrderItemImp1(); private BookDao bookDao=new BookDaoImp1(); @Override public String CreateOrder(shopcart shopcart, Integer userid) { //订单唯一性 String orderId=System.currentTimeMillis()+""+userid; //保存订单对象 order order = new order(orderId, new Date(), new BigDecimal(shopcart.getTotalPrice()), 0, userid); // 保存订单 OrderDao.saveOder(order); //遍历购物车 for (Map.Entry<Integer,goods> entry:shopcart.getItems().entrySet()) { // 获取每一个entry goods value = entry.getValue(); //转换为每一个订单项 OrderItem orderItem = new OrderItem(null, value.getName(), value.getCount(), new BigDecimal(value.getUnitPrice()), new BigDecimal(value.getTotalPrice()), orderId); //保存到订单项到数据库 OrderItem.saveOrderItem(orderItem); //根据id查找书 Book book = bookDao.queryBookById(value.getId()); // 添加订单后更新该书的销量 book.setSales(book.getSales()+value.getCount()); // 更新改书的库存 book.setStock(book.getStock()-value.getCount()); } // 清空购物车 shopcart.clear(); return orderId; } /** * * * */ @Override public List<order> queryMyOrderById(Integer id) { return OrderDao.queryMyOrderById(id); } /** * 查找某个订单的详细信息 * */ @Override public List<com.atguigu.pojo.OrderItem> Details(String orderId) { return OrderItem.Details(orderId); } @Override public List<order> queryAllOrder() { return OrderDao.queryAllOrder(); } /** * * 发货 * * */ @Override public int sendOrder(String orderId) { return OrderDao.changeOrderStatus(1,orderId); } /** * 签收 * * */ @Override public int receiveOrder(String orderId) { return OrderDao.changeOrderStatus(2,orderId); }
编写webservlet程序
private OrderService orderService=new OrderServiceImp1();
/**
* 生成订单
*
* */
protected void createOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、获取购物车对象
shopcart shopCart = (shopcart) req.getSession().getAttribute("shopCart");
// 获取userid
User loginUser = (User) req.getSession().getAttribute("user");
// 判断loginUser是否为空
if (loginUser==null){
// 重定向到主页
req.getRequestDispatcher("/pages/user/login.jsp").forward(req,resp);
// 需要添加
return;
}
// 获取id值
Integer id = loginUser.getId();
//创建订单
String uuid = orderService.CreateOrder(shopCart, id);
//设置session域的值
req.getSession().setAttribute("orderId",uuid);
resp.sendRedirect(req.getContextPath()+"/pages/cart/checkout.jsp");
}
/**
*
* 根据用户id查询自己的订单
* */
protected void queryMyOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("访问myorder");
User user = (User) req.getSession().getAttribute("user");
List<order> orders = orderService.queryMyOrderById(user.getId());
req.getSession().setAttribute("MyOrder",orders);
req.getRequestDispatcher("/pages/order/order.jsp").forward(req,resp);
}
/**
* 根据id查询订单信息
* */
protected void orderDetails(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("访问orderDetails");
String orderID = req.getParameter("orderID");
List<OrderItem> details = orderService.Details(orderID);
req.setAttribute("orderDetails",details);
req.getRequestDispatcher("/pages/order/orderDetails.jsp").forward(req,resp);
}
/**
* 查询所有订单
* */
protected void queryAllOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<order> orders = orderService.queryAllOrder();
req.setAttribute("AllOrder",orders);
req.getRequestDispatcher("/pages/manager/order_manager.jsp").forward(req,resp);
}
/**
* 发货
* */
protected void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String orderId = req.getParameter("orderID");
int sendOrder = orderService.sendOrder(orderId);
req.getSession().setAttribute("orderStatus",sendOrder);
resp.sendRedirect(req.getHeader("Referer"));
}
/**
* 签收
* */
protected void receiveOrder(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String orderId = req.getParameter("orderID");
int receiveOrder = orderService.receiveOrder(orderId);
req.getSession().setAttribute("orderStatus",receiveOrder);
resp.sendRedirect(req.getHeader("Referer"));
}

浙公网安备 33010602011771号