⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shopcartdao.java

📁 基于struts+hibernate的电子商务网站。可运行。数据库mysql
💻 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 + -