Funktionen des Einkaufsmoduls vervollständigen
Funktionen des Bestellmoduls vervollständigen
Produktdetails:
Warenkorbmodul:
1 Klicken Sie auf den Link [Zum Warenkorb hinzufügen]. Produktdetailseite und .
2. An das Servlet senden:
* Geben Sie die Menge des gekauften Produkts ein.
* Geben Sie die ID des gekauften Produkts ein.
3. Speichern Sie die Einkaufsinformationen in der Sitzung.
* Speichern Sie die Warenkorbinformationen in der Sitzung.
* Kapselung des Einkaufsartikelobjekts (jeder gekaufte Artikel in der Einkaufsliste). Warenkorbinformationen)
* Produktobjekt:
* Menge
* Zwischensumme
* Kapselung des Warenkorbobjekts (Informationen zum Kauf aller Produkte)
* Sammlung von Einkaufsartikeln
* Gesamtmenge
4. Holen Sie sich die Warenkorbinformationen auf der Seite
* Zeigen Sie sie auf der Seite an
[Einkapselung der Einkaufsartikelentität: CartItem]public class CartItem {private Product product;// 购买的商品的信息private int count; // 购买的数量private double subtotal; // 购买商品的小计 public Product getProduct() {return product; }public void setProduct(Product product) {this.product = product; }public int getCount() {return count; }public void setCount(int count) {this.count = count; }public double getSubtotal() {return count * product.getShop_price(); }/*public void setSubtotal(double subtotal) { this.subtotal = subtotal; }*/}
public class Cart {// 定义一个购物项的集合的属性:集合采用Map集合,因为移除购物项的时候方便.使用商品的id作为Map的key// 使用购物项作为Map的value.private Map<String,CartItem> map = new LinkedHashMap<String,CartItem>();// 定义购物车中的总计:private double total; public Map<String, CartItem> getMap() {return map; } public double getTotal() {return total; } // 方法:将购物项添加到购物车public void addCart(CartItem cartItem){// 判断购物车中是否已经存在该购物项.String id = cartItem.getProduct().getPid();if(map.containsKey(id)){// 如果已经存在:在原来的数量的基础上+新买的数量. 总计发生变化.// 获得购物车中的原来购物项的信息CartItem _cartItem = map.get(id); _cartItem.setCount(_cartItem.getCount()+cartItem.getCount()); }else{// 如果不存在:在集合中添加一个新的购物项. 总计发生变化.map.put(id, cartItem); } total += cartItem.getSubtotal(); } // 方法:从购物车中移除购物项public void removeCart(String id){// 从map中移除选中的元素.// CartItem cartItem = map.get(id);CartItem cartItem = map.remove(id);// 将总计 - 移除购物项的小计total -= cartItem.getSubtotal(); } // 方法:清空购物车public void clearCart(){ //// 将map集合清空.map.clear();// 将总结设置为0.total = 0; } }
public String addCart(HttpServletRequest req,HttpServletResponse resp){// 接收参数:String pid = req.getParameter("pid");int count = Integer.parseInt(req.getParameter("count")); try {// 封装购物项:CartItem cartItem = new CartItem();// 商品对象:通过商品ID查询商品.ProductService productService = (ProductService) BeanFactory.getBean("productService"); Product product = productService.findById(pid); cartItem.setProduct(product); cartItem.setCount(count);// 调用购物车中的添加到购物车的方法:// Cart cart = new Cart();Cart cart = getCart(req); cart.addCart(cartItem); resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp"); } catch (Exception e) { e.printStackTrace();throw new RuntimeException(); }return null; }
【Klicken Sie, um den Warenkorb auf der Warenkorbseite zu leeren】
public String clearCart(HttpServletRequest req,HttpServletResponse resp){// 获得购物车对象.Cart cart = getCart(req);// 调用购物车中的方法:cart.clearCart();try { resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp"); } catch (Exception e) { e.printStackTrace();throw new RuntimeException(); }return null; }
[Klicken Sie auf den Link „Löschen“ auf der Warenkorbseite]
public String removeCart(HttpServletRequest req,HttpServletResponse resp){try {// 接收参数:String pid = req.getParameter("pid");// 获得购物车:Cart cart = getCart(req); cart.removeCart(pid);// 页面跳转resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp"); } catch (Exception e) { e.printStackTrace();throw new RuntimeException(); }return null; }
CREATE TABLE `orders` ( `oid` varchar(32) NOT NULL, `ordertime` datetime DEFAULT NULL, `total` double DEFAULT NULL, `state` int(11) DEFAULT NULL, `address` varchar(30) DEFAULT NULL, `name` varchar(20) DEFAULT NULL, `telephone` varchar(20) DEFAULT NULL, `uid` varchar(32) DEFAULT NULL, PRIMARY KEY (`oid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `orderitem` ( `itemid` varchar(32) NOT NULL, `count` int(11) DEFAULT NULL, `subtotal` double DEFAULT NULL, `pid` varchar(32) DEFAULT NULL, `oid` varchar(32) DEFAULT NULL, PRIMARY KEY (`itemid`), KEY `fk_0001` (`pid`), KEY `fk_0002` (`oid`), CONSTRAINT `fk_0001` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`), CONSTRAINT `fk_0002` FOREIGN KEY (`oid`) REFERENCES `orders` (`oid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
* Bestellungen und Einzelposten kapseln.
* Business-Schicht aufrufen * Warenkorb leeren * SeitensprungDas obige ist der detaillierte Inhalt vonTeilen Sie ein praktisches Online-Einkaufszentrum – Einkaufsmodul und Bestellmodul. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!