首頁 >Java >java教程 >分享一個網路商城實戰--購物模組與訂單模組

分享一個網路商城實戰--購物模組與訂單模組

零下一度
零下一度原創
2017-06-25 10:26:203649瀏覽

今日任務

  • 完成購物模組的功能

  • #完成訂單模組的功能

1.1      購物模組:

1.1.1    功能示範:

商品詳情:

 

##購物車模組:

 

1.1.2    程式碼實作:

1.在商品詳情的頁面中點選【加入購物車】鍊及.

2.提交到Servlet中:

    * 提交購買的商品的數量.

    * 提交購買的商品的ID.

3.將購物的資訊存入session.

    * 將購物車的資訊存入session.

    * 購物項目物件的封裝(購物車中的每個購買商品的資訊)

        * 商品的物件:

        * 數量

      

##        * 購物項目的集合

        * 總計

4.在頁面中顯示購物車的資訊獲得至.

##  

4.在頁面中顯示購物車的資訊獲得至.

##  

4. 在頁面中顯示出來 .

 

【購物項目的實體的封裝: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;

    }*/}
 

【購物車的實體:Cart】

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;

    }
 
【在購物車頁面點擊清空購物車】

    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;

    }
 

【在購物車頁麵點擊刪除鏈接】

   

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;

    }
 

1.2      訂單模塊:

1.2.1    功能演示:

 

 

1.2.2    程式碼實作:

1.2.2.1  建立表格與實體:

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;

 

1.2.2.2  產生訂單:

【在購物車的頁面點擊提交訂單】

#提交到Servlet:

* 包裝訂單與訂單項目.

    * 呼叫業務層

    * 清除購物車

##    * 頁面跳至

以上是分享一個網路商城實戰--購物模組與訂單模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn