From 1a225dff584d7e21efe9e9a1bbeefee28eaed572 Mon Sep 17 00:00:00 2001 From: liyansheng <1761724207@qq.com> Date: Sat, 21 Dec 2024 16:41:21 +0800 Subject: [PATCH] =?UTF-8?q?add<=E8=AE=A2=E5=8D=95=E7=A1=AE=E8=AE=A4>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/example/controller/CartServlet.java | 19 ++++++++++++--- .../example/controller/OrdersServlet.java | 7 ++++++ .../java/example/service/ICartService.java | 2 ++ .../java/example/service/IOrdersService.java | 2 ++ .../example/service/impl/CartServiceImpl.java | 5 ++++ .../service/impl/OrdersServiceImpl.java | 23 ++++++++++++++++++ src/main/webapp/cart.jsp | 10 ++++++-- src/main/webapp/checkOrder.jsp | 24 +++++++++++++++++++ 8 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 src/main/webapp/checkOrder.jsp diff --git a/src/main/java/example/controller/CartServlet.java b/src/main/java/example/controller/CartServlet.java index 6e512fc..a42ed54 100644 --- a/src/main/java/example/controller/CartServlet.java +++ b/src/main/java/example/controller/CartServlet.java @@ -37,9 +37,11 @@ public class CartServlet extends HttpServlet { } break; case "remove": - String removeId = req.getParameter("id"); - req.getSession().removeAttribute(removeId); - resp.sendRedirect("/cart"); + try { + removeFromCart(req, resp); + } catch (Exception e) { + throw new RuntimeException(e); + } break; default: req.getRequestDispatcher("/WEB-INF/jsp/cart.jsp").forward(req,resp); @@ -47,6 +49,17 @@ public class CartServlet extends HttpServlet { } } + private void removeFromCart(HttpServletRequest req, HttpServletResponse resp) throws Exception { + User user = (User) req.getSession().getAttribute("user"); + String id = req.getParameter("id"); + cartService.removeFromCart(Integer.parseInt(id),user.getId()); + try { + toCart(req, resp); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + private void addCart(HttpServletRequest req, HttpServletResponse resp) throws Exception { String id = req.getParameter("id"); User user = (User) req.getSession().getAttribute("user"); diff --git a/src/main/java/example/controller/OrdersServlet.java b/src/main/java/example/controller/OrdersServlet.java index 7974d77..4dc4624 100644 --- a/src/main/java/example/controller/OrdersServlet.java +++ b/src/main/java/example/controller/OrdersServlet.java @@ -22,6 +22,13 @@ public class OrdersServlet extends HttpServlet { case "all": ordersService.allOrder(req, resp); break; + case "add": + try { + ordersService.checkOrder(req, resp); + } catch (Exception e) { + throw new RuntimeException(e); + } + break; case "delete": // ordersService.delete(req, resp); break; diff --git a/src/main/java/example/service/ICartService.java b/src/main/java/example/service/ICartService.java index 3c6c66c..29edfba 100644 --- a/src/main/java/example/service/ICartService.java +++ b/src/main/java/example/service/ICartService.java @@ -8,4 +8,6 @@ public interface ICartService { List myCart(Integer userId) throws Exception; void addCart(int i, int id) throws Exception; + + void removeFromCart(int i, int id) throws Exception; } diff --git a/src/main/java/example/service/IOrdersService.java b/src/main/java/example/service/IOrdersService.java index cc0bbf8..8018aaa 100644 --- a/src/main/java/example/service/IOrdersService.java +++ b/src/main/java/example/service/IOrdersService.java @@ -9,4 +9,6 @@ import java.util.List; public interface IOrdersService { void allOrder(HttpServletRequest req, HttpServletResponse resp); + + void checkOrder(HttpServletRequest req, HttpServletResponse resp) throws Exception; } diff --git a/src/main/java/example/service/impl/CartServiceImpl.java b/src/main/java/example/service/impl/CartServiceImpl.java index d407f41..08d1bcd 100644 --- a/src/main/java/example/service/impl/CartServiceImpl.java +++ b/src/main/java/example/service/impl/CartServiceImpl.java @@ -19,4 +19,9 @@ public class CartServiceImpl implements ICartService { public void addCart(int productId, int userId) throws Exception { cartDao.addCart(userId, productId); } + + @Override + public void removeFromCart(int i, int id) throws Exception { + cartDao.deleteCart(id, i); + } } diff --git a/src/main/java/example/service/impl/OrdersServiceImpl.java b/src/main/java/example/service/impl/OrdersServiceImpl.java index 78996f3..e805631 100644 --- a/src/main/java/example/service/impl/OrdersServiceImpl.java +++ b/src/main/java/example/service/impl/OrdersServiceImpl.java @@ -1,7 +1,10 @@ package example.service.impl; +import example.dao.CartDao; import example.dao.OrdersDao; +import example.model.Computer; import example.model.Orders; +import example.model.User; import example.service.IOrdersService; import javax.servlet.http.HttpServletRequest; @@ -12,6 +15,8 @@ public class OrdersServiceImpl implements IOrdersService { OrdersDao ordersDao=new OrdersDao(); + CartDao cartDao = new CartDao(); + @Override public void allOrder(HttpServletRequest req, HttpServletResponse resp) { List allOrders = ordersDao.getAllOrders(); @@ -23,4 +28,22 @@ public class OrdersServiceImpl implements IOrdersService { } } + @Override + public void checkOrder(HttpServletRequest req, HttpServletResponse resp) throws Exception { +// 订单确认 + User user = (User) req.getSession().getAttribute("user"); + List cart = cartDao.getCart(user.getId()); + Orders orders = new Orders(); + StringBuilder remark = new StringBuilder(); + double total_price=0; + for (Computer computer : cart) { + total_price+=computer.getPrice(); + remark.append("商品ID:").append(computer.getId()).append("\n").append("商品名称:").append(computer.getName()).append("\n").append("商品价格:").append(computer.getPrice()).append("\n"); + } + orders.setRemark(remark.toString()); + orders.setTotalPrice(total_price); + req.setAttribute("order",orders); + req.getRequestDispatcher("checkOrder.jsp").forward(req,resp); + } + } diff --git a/src/main/webapp/cart.jsp b/src/main/webapp/cart.jsp index bd01c84..1bc9bfb 100644 --- a/src/main/webapp/cart.jsp +++ b/src/main/webapp/cart.jsp @@ -9,6 +9,7 @@

购物车

+ 主页 @@ -25,14 +26,19 @@
${computer.name} ${computer.price} - 移出 + 移出
+
+ + + +


- 主页 + diff --git a/src/main/webapp/checkOrder.jsp b/src/main/webapp/checkOrder.jsp new file mode 100644 index 0000000..e17b25f --- /dev/null +++ b/src/main/webapp/checkOrder.jsp @@ -0,0 +1,24 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" %> + + + + + + + 订单确认 + + +

订单确认

+
+
+

+
+

+
+

+ +
+
+ 主页 + + \ No newline at end of file