📄 shoppingcartbean.java
字号:
package wyf;
import javax.ejb.*;
import javax.naming.*;
import java.util.*;
import javax.annotation.*;
import javax.interceptor.*;
//Bean类
@Stateful
public class ShoppingCartBean implements ShoppingCartRemote
{
//注入会话上下文
@Resource
private SessionContext ctx;
//存储商品的列表
private Vector<CartItem> cart;
//==========生命周期的回调方法====begin==================
@PostConstruct
public void postconstruct()
{
cart = new Vector<CartItem>();
System.out.println("======PostConstruct======");
}
@PostActivate
public void postactivate()
{
System.out.println("======PostActivate======");
}
@PrePassivate
public void prepassivate()
{
System.out.println("======PrePassivate======");
}
@PreDestroy
public void predestroy()
{
System.out.println("======PreDestroy======");
}
//==========生命周期的回调方法====end====================
/**
* 这个方法把一件商品加入到购物蓝中
*
* @param 商品的编号 String id
* @param 商品的名称 String title
* @param 商品的价格 double price
* @param 商品的数量 int quantity
*
*/
public void addToCart(String id, String title, double price, int quantity)
{
// 注意:需要处理添加已经存在的商品的情况
/***********************************************************************************
* 任务-->
* 当顾客选中商品后,这个方法添加CartItem对象,而CartItem 代表商品的情况。你可以查看CartItem.java的
* 内容,这个文件已经提供给了大家。
*
*
* 你需要完成以下功能:
*
*` 1. 先检查要添加的商品是不是已经在购物蓝中了,如果已经在购物蓝中,那么你只须把这件商品的数量加一。
*
*
* 2. 如果这件商品不在购物蓝中,创建一个新的CartItem 类型的对象,并把它加入到购物蓝中。
*
**************************************************************************************/
System.out.println("cart----"+cart);
//添加存在商品的情况
for(CartItem ci:cart)
{
if(ci.getId().equals(id))
{
ci.setQty(ci.getQty() + quantity);
return;
}
}
//添加不存在商品的情况
cart.add(new CartItem(id, title, price, quantity));
}
/**
* 这个方法从购物蓝中删除一件商品
*
* @param 购物蓝中商品的名称 String id
*
*
*/
public boolean removeFromCart(String id) {
/***********************************************************************************
* 任务-->
* 这个方法根据id的值,删除在购物蓝中的特定的商品
*
*
* 你需要完成以下功能:
*
* 1. 通过id的值,检查购物蓝中是否存在编号为id的商品,如果有就从购物蓝中删除掉。返回true.
*
*
* 1. 通过id的值,检查购物蓝中是否存在编号为id的商品,如果没有就返回false。
*
*
**************************************************************************************/
for(CartItem ci:cart)
{
if(ci.getId().equals(id))
{
cart.remove(ci);
return true;
}
}
return false;
}
/**
* 返回所购商品的总价
*
* @return double Balance
*/
public double getBalance()
{
/***********************************************************************************
* 任务-->
* 这个方法计算所购买的所有商品的总价. 并返回总价钱。
*
* 需要完成以下功能:
*
*` 1. 遍历cart中的CartItem对象,小计每种商品的价格
*
* 2.累计所有商品的小计,算出总价
*
* 3. 把总价返回
*
**************************************************************************************/
double cartbalance = 0.0;
for(CartItem ci:cart)
{
cartbalance = cartbalance + ci.getQty() * ci.getPrice();
}
return cartbalance;
}
//返回当前的购物车
public Vector getCart()
{
return cart;
}
//清空当前的购物车
public void clearCart()
{
cart.clear();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -