订单模块实现

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程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
        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"));
    }

  

 


__EOF__

本文作者无忧
本文链接https://www.cnblogs.com/weizw/p/15755426.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   无忧  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示