📄 shopcartdao.java
字号:
/**
* @(#)tarena.global.Transform.java 2008-11-14
* Copy Right Information : Tarena
* Project : xindou
* JDK version used : jdk1.6.4
* Comments : 转化类。
* Version : 1.0
* Sr Date Modified By Why & What is modified
* 1. 2008-11-14 陈达 新建
**/
package tarena.dao.pages;
import java.util.List;
import java.util.StringTokenizer;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import tarena.dao.ColorDAO;
import tarena.dao.ProductDAO;
import tarena.entity.Color;
import tarena.entity.Product;
import tarena.entity.Shopcart;
import tarena.global.CookieOperate;
public class ShopcartDAO {
/**
* 向cookie购物车中添加某商品,如果该商品存在,商品数量加1。
* @param cart 添加的商品
* @param request
* @param response
* @return 添加商品后的商品集合。
*/
public List<Shopcart> save(Shopcart cart,HttpServletRequest request,HttpServletResponse response){
Cookie cookie = CookieOperate.FindCookie("shopcart", request.getCookies());
List<Shopcart> goods = CookieOperate.getGoodsFromCookie(cookie==null?null:cookie.getValue());
save(cart, goods);
String savecookie = CookieOperate.toCookieString(goods);
CookieOperate.SaveCookie(new Cookie("shopcart",savecookie), response);
return goods;
}
public List<Shopcart> modifyAmount(Shopcart cart,Integer amount,HttpServletRequest request,HttpServletResponse response){
Cookie cookie = CookieOperate.FindCookie("shopcart", request.getCookies());
List<Shopcart> goods = CookieOperate.getGoodsFromCookie(cookie==null?null:cookie.getValue());
modifyAmount(cart, amount, goods);
String savecookie = CookieOperate.toCookieString(goods);
CookieOperate.SaveCookie(new Cookie("shopcart",savecookie), response);
return goods;
}
/**
* 如果cookie中购物车中存在某商品,将其删除。
* @param cart 删除的商品
* @param request
* @param response
* @return 返回删除该商品后的商品集合。
*/
public List<Shopcart> delete(Shopcart cart,HttpServletRequest request,HttpServletResponse response){
String cookie = CookieOperate.FindCookie("shopcart", request.getCookies()).getValue();
List<Shopcart> goods = CookieOperate.getGoodsFromCookie(cookie);
delete(cart, goods);
cookie = CookieOperate.toCookieString(goods);
CookieOperate.SaveCookie(new Cookie("shopcart",cookie), response);
return goods;
}
/**
* 将cookie中购物车的信息清空。
* @param response
*/
public void clear(HttpServletResponse response){
CookieOperate.SaveCookie(new Cookie("shopcart",""), response);
}
/**
* 向一个集合中保存某件商品,如果该商品存在,商品个数增加1。
* @param cart 商品
* @param goods 商品集合
*/
public void save(Shopcart cart,List<Shopcart> goods){
Shopcart temp = null;
if((temp=contains(cart, goods))!=null){
temp.setAmount(temp.getAmount()==null?1:temp.getAmount()+1);
}else{
cart.setAmount(1);
goods.add(cart);
}
}
/**
* 如果商品集合中包含该商品,就将集合中该商品的数量修改为指定值。
* @param cart 商品
* @param amount 制定的商品数量。
* @param goods 商品集合
*/
public void modifyAmount(Shopcart cart,Integer amount,List<Shopcart> goods){
for(Shopcart temp:goods){
if(temp.equals(cart)){
temp.setAmount(amount);
return;
}
}
}
/**
* 从集合中删除某件商品。
* @param cart 商品
* @param goods 商品集合
*/
public void delete(Shopcart cart,List<Shopcart> goods){
Shopcart temp = null;
if((temp=contains(cart, goods))!=null){
goods.remove(temp);
}
}
/**
* 根据指定的格式化字符串构造一个购物车对象。
* @param formatString - 合法的格式:商品id,颜色id,购买的个数
*/
public static Shopcart getShopcartFromString(String formatString){
//formatString = formatString.replaceAll(CookieOperate.ATTRIBUTE_SEPERATOR, ",");
StringTokenizer st = new StringTokenizer(formatString,CookieOperate.ATTRBUTE_SEPRATOR);
try {
Product product = new ProductDAO().findById(new Integer(st.nextToken()));
Color color = new ColorDAO().findById(new Integer(st.nextToken()));
Integer amount = new Integer(st.nextToken());
return new Shopcart(product,color,amount);
} catch (RuntimeException e) {
return null;
}
}
/**
* 判断某商品集合中,是否存在某商品。
* @param shopcart 商品
* @param goods 商品集合。
* @return 如果存在,返回该商品,如果不存在返回null。
*/
private Shopcart contains(Shopcart shopcart,List<Shopcart> goods){
for(Shopcart cart:goods){
if(cart.equals(shopcart)){
return cart;
}
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -