首页>代码>SSH框架开发购物车>/shoppingcartfinal/src/com/kettas/action/OrderAction.java
package com.kettas.action;

import java.util.ArrayList;
import java.util.List;

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

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 com.kettas.biz.OrderBiz;
import com.kettas.entity.Order;
import com.kettas.entity.Shoppingcart;
import com.kettas.entity.User;
import com.kettas.exception.BizException;

/*
 * Title:订单操作相关Action
 * Author:SecondGroup
 * Time:2010.1.14
 * Version:1.0.0
 */
public class OrderAction extends MappingDispatchAction{
	private OrderBiz obiz;
	
	public OrderBiz getObiz() {
		return obiz;
	}

	public void setObiz(OrderBiz obiz) {
		this.obiz = obiz;
	}


	/*
	 * 生成订单Action
	 */
	public ActionForward generateOrder(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		HttpSession session=request.getSession(true);
		
		/*
		 * 从session作用域内得到登陆用户对象
		 */
		User user=(User) session.getAttribute("login");
		
		/*
		 * 从session作用域内得到购物项集合
		 */
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		
		Order order=new Order();
		order.setItems(cart.getItems());
		order.setStatus(0);//此时是给用户预览订单,等用户确定订单之后才把订单状态改为1
		order.setUser(user);
		order.setCost(cart.getTotalCost());
		
		List<Order> orders=new ArrayList<Order>();
		Order userOrder=new Order();
		try {
			//将订单存入DB
			obiz.addOrder(order);
			
			//再根据status查询订单,目的查出全部未付款的订单
			orders=obiz.getOrdersByStatus(0);
			
			//遍历该集合查找出属于本user的未付款状态的订单
			for(Order o:orders){
				//从数据库中取出来的id是String类型的,所以不能用==比较
				if(o.getUser().getId().equals(user.getId())){
					//将此订单返回显示
					userOrder=o;
				}
			}
		} catch (Exception e) {
			throw new BizException(e);
		}
		request.setAttribute("order", userOrder);
		return mapping.findForward("printorder");
	}
	
	
	/*
	 * 结账Action
	 */
	public ActionForward checkout(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		String orderIdStr=request.getParameter("orderId");
		Integer orderId=Integer.parseInt(orderIdStr);
		String costStr=request.getParameter("cost");
		double cost=Double.parseDouble(costStr);
		
		Order order=new Order();
		
		try {
			order=obiz.getOrderById(orderId);
			int status=1;//此时才将订单状态改为1,即已付款
			order.setStatus(status);
			
			//修改数据库中的订单状态
			obiz.modifyOrder(order);
		} catch (Exception e) {
			throw new BizException(e);
		}
		
		request.setAttribute("order", order);
		request.setAttribute("cost", cost);
		
		//结账之后清空session中的cart
		HttpSession session=request.getSession(true);
		Shoppingcart cart=(Shoppingcart) session.getAttribute("cart");
		request.setAttribute("cart", cart);
		
		session.removeAttribute("cart");
		return mapping.findForward("checkout");	
	}
	
	/*
	 * 获得全部订单Action
	 */
	public ActionForward getAllOrders(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
		HttpSession session=request.getSession(true);
		User user=(User) session.getAttribute("login");
		System.out.println("========================"+user.getName()+user.getId()+"==================================");
		List<Order> orders=new ArrayList<Order>();
		List<Order> iwantorders=new ArrayList<Order>();
		int ordersNum=0;
		double ordersCost=0;
		
		System.out.println("========================FuckingData==================================");
		try {
			orders=obiz.getAllOrders();
		} catch (Exception e) {
			throw new BizException(e);
		}
		
		for(Order o:orders){
			System.out.println("=========================="+o.getUser().getName()+"===============================");
			if(o.getUser().getName().equals(user.getName())){
				iwantorders.add(o);
				ordersNum++;
				ordersCost+=o.getCost();
			}
		}
		request.setAttribute("orders", iwantorders);
		request.setAttribute("ordersNum", ordersNum);
		request.setAttribute("ordersCost", ordersCost);
		return mapping.findForward("manageorder");
	}
}
最近下载更多
haruto1213  LV1 2023年6月30日
yyyyyyyc  LV1 2022年9月21日
qweqqw123  LV2 2021年12月20日
鲁西西  LV1 2021年6月29日
908902058  LV1 2021年6月15日
1973356987  LV13 2021年6月8日
风雨中的孤傲  LV2 2021年5月25日
情绪别致的疯子  LV3 2020年12月20日
嘿嘿嘿123333  LV3 2020年6月26日
林志勇  LV10 2020年5月22日
最近浏览更多
quartz  LV8 7月1日
xiao1111  LV3 6月18日
郭宇航裹裹  LV4 6月7日
wangbh1234  LV1 6月6日
2411307984  LV1 5月8日
hhxq0902 4月20日
暂无贡献等级
jiemomo  LV12 2023年11月3日
廖业贵  LV18 2023年10月17日
3273408633  LV2 2023年9月14日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友