J2EE 购物车

package com.lovo.cq.shopping10_1.vo;

 

import com.lovo.cq.shopping10_1.po.Book;

 

/**

 * 购物车中的购物项,它包括商品和商品数量

 */

public class CartItem {

   

    private Book book;

   

    private int count;//书的数量

   

    public CartItem(Book book){    

        this.book=book;

        count++;

    }

   

    public Book getBook() {

        return book;

    }

   

    public void setBook(Book book) {

        this.book = book;

    }

   

    public int getCount() {

        return count;

    }

   

    public void setCount(int count) {

        this.count = count;

    }

    //计算某一购物项的总价

    public float getItemPrice(){

       

        float price = book.getNowPrice()*count;

        return price;

    }

}

===========================购物车========================

package com.lovo.cq.shopping10_1.vo;

 

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

 

import com.lovo.cq.shopping10_1.po.Book;

 

public class Cart {

    private HashMap<Integer, CartItem> items = null;

 

    private int itemsCount = 0;//购物项的数量

   

    public Cart() {

        items = new HashMap<Integer, CartItem>();

    }

 

    /**

     * 在购物车中添加一个购物项,如果该购物项已存在购物车中,则什么都不做

     * @param bookId 书籍的Id

     * @param book

     */

    public synchronized void addItem(Integer bookId,Book book) {

        if(!items.containsKey(bookId)) {//购物车中没有该商品,可以添加该商品到购物车中

            CartItem item = new CartItem(book);

            items.put(bookId, item);

            itemsCount++;

        }

    }

    /**

     * 修改已经购买好的书籍数量

     * @param bookId 书籍的Id

     * @param count 修改后的数量

     */

    public synchronized void updateBookCount(Integer bookId,int count){

        if(count >= 1){

            if(items.containsKey(bookId)){

                CartItem item = items.get(bookId);//根据书的Id号,来得到此书

                item.setCount(count);//修改书的数量

            }

        }

    }

    /**

     * 从购物车中删除一个购物项

     * @param bookId 书籍的Id

     */

    public synchronized void deleteItem(Integer bookId){

        if(items.containsKey(bookId)){

            items.remove(bookId);

            itemsCount--;

        }

    }

    /**

     * 删除购物车中的所有购物项

     */

    public synchronized void clear(){

        items.clear();

        itemsCount = 0;

    }

    /**

     * 得到购物车中的所有购物项的数目

     */

    public synchronized int getItemCount(){

        return itemsCount;

    }

    /**

     * 得到购物车中的所有购物项的总价格

     */

    public synchronized float getTotalPrice(){

        float amount = 0.0f;

        //得到迭代器

        Iterator<CartItem> it = items.values().iterator();

        while(it.hasNext()){

            CartItem item = it.next();

            amount+=item.getItemPrice();

        }

        return amount;

    }

    /**

     * 得到购物车中的所有商品

     */

     public synchronized Collection<CartItem> getItems(){

         return items.values();

     }

     /**

      * 判断商品是否在购物车中

      */

     public synchronized boolean isExist(Integer bookId){

         if(items.containsKey(bookId)){

             return true;

         }

         return false;

     }

}

 

 

 

你可能感兴趣的:(J2EE)