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

📄 orderoperation.java

📁 一个网上购物商城系统
💻 JAVA
字号:
/**
  * @(#)tarena.action.OrderOperation.java  2008-11-5  
  * 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-5 	小猪     		新建
  * 2.  2008-11-14  陈达				修改
  **/
package tarena.action;

import java.net.CookieStore;
import java.text.NumberFormat;
import java.util.List;
import java.util.Locale;
import java.util.Set;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;

import tarena.dao.ColorDAO;
import tarena.dao.PaywayDAO;
import tarena.dao.ProductDAO;
import tarena.dao.SendwayDAO;
import tarena.dao.UserDAO;
import tarena.dao.pages.ShopcartDAO;
import tarena.entity.Color;
import tarena.entity.Payway;
import tarena.entity.Product;
import tarena.entity.Receiveaddress;
import tarena.entity.Sendway;
import tarena.entity.Shopcart;
import tarena.entity.User;
import tarena.global.CookieOperate;
import tarena.global.PublicParameter;
import tarena.global.Transform;

 /**
 * 订单操作类。<br>
 * 购物车、订单删除、增加等。
 * 2008-11-5
 * @author		达内科技[Tarena Training Group]
 * @version	1.0
 * @since		JDK1.6(建议) 
 */
public class OrderOperation extends MappingDispatchAction {
	
	/**
	 * 从请求对象的参数中获取商品id,商品颜色id,商品个数信息,初始化一个购物车对象。
	 * @param request 请求对象
	 * @return 返回的购物车对象,如果找不到匹配的商品,返回null。
	 */
	private Shopcart getShopcartFromRequest(HttpServletRequest request){
		String pid = request.getParameter("pid");
		String cid = request.getParameter("cid");
		String amt = request.getParameter("amt");
	
		Product product = null;
		Color color = null;
		Integer temp = null;
		Shopcart cart = null;
		
		if((temp = Transform.StringToInteger(pid))==-1){
			return null;
		}
		product = new ProductDAO().findById(temp);
		
		if(cid!=null&&(temp=Transform.StringToInteger(cid))!=-1){
			color = new ColorDAO().findById(temp);
		}
		
		if(amt!=null&&(temp=Transform.StringToInteger(cid))!=-1){
			cart = new Shopcart(product,color,temp);
		}else{
			cart = new Shopcart(product, color);
		}
		return cart;
	}
	/**
	 * 从请求对象中获取商品集合。
	 * @param request
	 * @return 商品集合
	 */
	private List<Shopcart> getGoodsFromRequest(HttpServletRequest request){
		Cookie [] cookies = request.getCookies();
		if(cookies==null||cookies.length==0){
			return CookieOperate.getGoodsFromCookie(null);
		}
		Cookie cookie = CookieOperate.FindCookie("shopcart", request.getCookies());
		if(cookie==null){
			return CookieOperate.getGoodsFromCookie(null);
		}
		return CookieOperate.getGoodsFromCookie(cookie.getValue());
	}
	
	public String getGoodsTotalPrice(List<Shopcart> goods){
		double sum = new Double(0);
		for(Shopcart temp:goods){
			sum+=temp.getProduct().getPrice()*temp.getAmount();
		}
		NumberFormat result = NumberFormat.getNumberInstance(Locale.CHINA);
		result.setMaximumFractionDigits(2);
		String total = result.format(sum);
		return total;
	}
	
	/**
	 * 购物车
	 */
	public ActionForward cart(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		//System.out.println(CookieOperate.FindCookie("shopcart", request.getCookies()).getValue());
		//Shopcart cart = getShopcartFromRequest(request);
		//System.out.println("购物车添加对象:"+cart);
		List<Shopcart> goods = getGoodsFromRequest(request);
		//System.out.println("购物车中存在的商品集合:"+goods);
		//ShopcartDAO sdao = new ShopcartDAO();
		//System.out.println(cart==null);
		//if(cart!=null){
		//	goods = sdao.save(cart,request,response);
		//}
		//System.out.println("存储商品后的商品集合:"+goods);
				
		request.setAttribute("goods", goods);
		request.setAttribute("total", getGoodsTotalPrice(goods));
		request.getSession().setAttribute(PublicParameter.LAST_PAGE, request.getRequestURI());
		
		return mapping.findForward("cart");
	}
	
	/**
	 * 订单结算
	 */
	@SuppressWarnings("unchecked")
	public ActionForward checkOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//查询购物车中的商品
		List<Shopcart> goods = getGoodsFromRequest(request);		
		//查询付款方式(实际上这里的查询方式是错误的,首先这里有设计付款方式是否已关闭这个属性)
		List<Payway> payways = new PaywayDAO().findAll();
		//查询送货方式(同上)
		List<Sendway> sendways = new SendwayDAO().findAll();
		//
		User user = new UserDAO().findUserByUsername(CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies()).getValue());
		Set<Receiveaddress> receiveaddress = user.getReceiveaddresses();
		request.setAttribute("goods", goods);
		request.setAttribute("total", getGoodsTotalPrice(goods));
		request.setAttribute("payways", payways);
		request.setAttribute("sendways", sendways);
		request.setAttribute("receiveaddress", receiveaddress);
		return mapping.findForward("checkout");
	}
	
	/**
	 * 我的订单
	 */
	public ActionForward usercporder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//此处记得保存rootid
		
		return mapping.findForward("usercporder");
	}
	
	/**
	 * 订单详细页
	 */
	public ActionForward usercporderinfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//此处记得保存rootid
		
		return mapping.findForward("usercporderinfo");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -