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

📄 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.util.Date;
import java.util.List;

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 org.hibernate.Session;


//import tarena.dao.ColorDAO;
//import tarena.dao.ProductDAO;
//import tarena.entity.Color;
//import tarena.entity.Product;

import tarena.dao.HibernateSessionFactory;
import tarena.dao.OrdersDAO;
import tarena.dao.PaywayDAO;
import tarena.dao.ReceiveaddressDAO;
import tarena.dao.SendwayDAO;
import tarena.dao.TransactionDAO;
import tarena.dao.UserDAO;

import tarena.entity.Orders;
import tarena.entity.Payway;
import tarena.entity.Receiveaddress;
import tarena.entity.Sendway;
import tarena.entity.Shopcart;
import tarena.entity.Transaction;
import tarena.entity.User;
import tarena.form.OrderForm;
import tarena.global.CookieOperate;
import tarena.global.MessageOperate;
import tarena.global.OrderState;
import tarena.global.PageUtil;
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;
//	}
//	
	
	
	
	/**
	 * 购物车
	 */
	public ActionForward cart(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		Cookie[] ck=request.getCookies();
		for(Cookie c:ck){
			System.out.println(c.getValue());
		}
		//System.out.println(CookieOperate.FindCookie("shopcart", request.getCookies()).getValue());
		//Shopcart cart = getShopcartFromRequest(request);
		//System.out.println("购物车添加对象:"+cart);
		List<Shopcart> goods = PageUtil.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);
		double total = 	Transform.getFormatNumber(PageUtil.getGoodsTotalPrice(goods), 2, false);
		request.setAttribute("goods", goods);
		request.setAttribute("total", total);
		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 = PageUtil.getGoodsFromRequest(request);
		
		//如果购物车中没有商品,转向错误页面。
		if(goods.size()==0){			
			MessageOperate.setAttribute(request, "错误操作", "错误操作", "您的购物车中目前没有商品!程序将跳转到主页.", request.getContextPath()+"/default.htm");
			return mapping.findForward("message");
		}
		
		//查询付款方式(实际上这里的查询方式是错误的,首先这里有设计付款方式是否已关闭这个属性)
		List<Payway> payways = new PaywayDAO().findAll();
		//查询送货方式(同上)
		List<Sendway> sendways = new SendwayDAO().findAll();
		//
		User user = null;
		try {
			user = new UserDAO().findUserByUsername(CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies()).getValue());
		} catch (RuntimeException e) {}
		Set<Receiveaddress> receiveaddress = user.getReceiveaddresses();
		request.setAttribute("goods", goods);
		request.setAttribute("total", PageUtil.getGoodsTotalPrice(goods));
		request.setAttribute("payways", payways);
		request.setAttribute("sendways", sendways);
		request.setAttribute("receiveaddress", receiveaddress);
		return mapping.findForward("checkout");
	}
	
	/**
	 * 提交订单结算
	 */
	@SuppressWarnings("unchecked")
	public ActionForward send_checkout(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		try {
			OrderForm oform = (OrderForm)form;
//			OrdersDAO ordersDAO = new OrdersDAO();
			Double productmoney = 0.0D;
			//订单信息
			Orders order = new Orders();
			//System.out.println(Transform.getNow());
			order.setOrdernum(Transform.getNow());
			order.setOrdertime(new Date());
			Payway payway = new PaywayDAO().findById(Transform.StringToInteger(oform.getDefault_pay_id()));
			order.setPayway(payway);
			order.setFees(payway.getFees());
			Sendway sendway = new SendwayDAO().findById(Transform.StringToInteger(oform.getDefault_send_id())); 
			order.setSendway(sendway);
			Receiveaddress r = new ReceiveaddressDAO().findById(Transform.StringToInteger(oform.getDefault_add_id()));
			System.out.println("Receiveaddress:"+r);
			order.setReceiveaddress(r);
			order.setFare(sendway.getBasefee());
			order.setInvoice(new Boolean(oform.getCbNeedInvoice()));
			//order.setInvoice(new Byte("0"));
			order.setReceivedate(oform.getDdlBestRecTime());
			order.setInvoicedesc(oform.getTbMessage());
			order.setUser(new UserDAO().findUserByUsername(CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies()).getValue()));
			order.setDounum(0);
			order.setProductmoney(productmoney);
			order.setOrdermoney(productmoney+order.getFare()+order.getFees());
			order.setPaymoney(productmoney+order.getFare()+order.getFees());
			order.setState(OrderState.UNCONFIRMED);
			Session session = HibernateSessionFactory.getSession();
			try {
				session.beginTransaction();
				session.save(order);
				
				List<Shopcart> goods = PageUtil.getGoodsFromRequest(request);
//				TransactionDAO transactionDAO = new TransactionDAO();
				
				//保存交易表
				for(Shopcart good:goods){
					Transaction transaction = new Transaction();
					transaction.setProduct(good.getProduct());
					transaction.setAmount(good.getAmount());
					transaction.setColor(good.getColor());
					double price = good.getAmount()*good.getProduct().getPrice();
					transaction.setMoney(price);
					transaction.setOrders(order);
					productmoney += price;
					session.save(transaction);
				}
				order.setProductmoney(productmoney);
				order.setOrdermoney(productmoney+order.getFare()+order.getFees());
				
//				session.save(order);
				session.getTransaction().commit();
				//
			} catch (RuntimeException e) {
				session.getTransaction().rollback();
				e.printStackTrace();
			}finally{
				if(session.isOpen()){
					session.close();				
				}
			}
			
			CookieOperate.DeleteCookie(CookieOperate.FindCookie("shopcart", request.getCookies()), response);
//			response.sendRedirect(request.getContextPath()+"/default.htm");
			response.sendRedirect(request.getContextPath()+"/user/usercporder.htm");
		} catch (RuntimeException e) {			
			MessageOperate.setAttribute(request, "参数错误", "下单出现异常", "下单出现异常,稍后跳转到购物车页面。", "/default.htm");
		}
		return null;
	}
	/**
	 * 我的订单
	 */
	@SuppressWarnings("unchecked")
	public ActionForward usercporder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//此处记得保存rootid
		User user = new UserDAO().findUserByUsername(CookieOperate.FindCookie(PublicParameter.cookie_user, request.getCookies()).getValue());
		Set<Orders> orders = user.getOrderses();
		
		request.setAttribute("orders", orders);
		
		return mapping.findForward("usercporder");
	}
	
	/**
	 * 订单详细页
	 */
	public ActionForward usercporderinfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		//此处记得保存rootid
		Integer oid = Transform.StringToInteger(request.getParameter("oid"));
		if(oid.equals(-1)){
			
		}
		OrdersDAO dao = new OrdersDAO();
		Orders order = dao.findById(oid);
		System.out.println(order);
		if(order != null){
			request.setAttribute("order", order);
		}else{
			
		}
		return mapping.findForward("usercporderinfo");
	}
}

⌨️ 快捷键说明

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