📄 orderoperation.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 + -