📄 shoppingaction.java
字号:
package com.sdi0708.bdifn.bookstore.web.struts.action;import java.util.Date;import java.util.Iterator;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 com.sdi0708.bdifn.bookstore.domain.Cart;import com.sdi0708.bdifn.bookstore.domain.Catalog;import com.sdi0708.bdifn.bookstore.domain.Order;import com.sdi0708.bdifn.bookstore.domain.OrderItem;import com.sdi0708.bdifn.bookstore.domain.Product;import com.sdi0708.bdifn.bookstore.domain.User;import com.sdi0708.bdifn.bookstore.service.util.PageForm;/** * 类别管理模块的action * @author 吴承志 * */public class ShoppingAction extends BaseShoppingAction { /** * 找出所有的顶层类别 */ public ActionForward viewCatalogs(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //shopping浏览商品时要先择类别 List<Catalog> catalogs = getShoppingFacade().findParentCatalogs(); request.setAttribute("catalogs", catalogs); if(request.getParameter("action") != null) { return mapping.findForward("search"); } return mapping.findForward("success"); } /** * 通过特定的的类别ID查找类别下的所有商品 */ public ActionForward browserProducts(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Long catalogid = Long.valueOf(request.getParameter("catalogid").trim()); //通过特定的类别查找类别下的所有商品 List<Product> products = getShoppingFacade().findAllProduct(catalogid); request.setAttribute("products", products); return mapping.findForward("success"); } public ActionForward buy(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //从请求参数中取得产品ID Long productid = Long.valueOf(request.getParameter("productid")); //从数据库中找出特定的产品 Product product = getShoppingFacade().findById(productid); //取得session HttpSession session = request.getSession(); Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } //把产品加入购物车中, cart.addItem(product); //把购物车放到session中 session.setAttribute("cart", cart); //还要把产品的类别id放到session属性中(不太大),在点继续购买时还回到原类别 session.setAttribute("catalogid", product.getCatalog().getId()); return mapping.findForward("success"); } public ActionForward changAmount(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Long productid = Long.valueOf(request.getParameter("productid")); int amount = Integer.parseInt((request.getParameter("amount"))); //取得session HttpSession session = request.getSession(); Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } //修改价格 cart.changeQuntity(productid, amount); //把购物车放到session中 session.setAttribute("cart", cart); return mapping.findForward("success"); } public ActionForward deleteItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Long productid = Long.valueOf(request.getParameter("productid")); //取得session HttpSession session = request.getSession(); Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } //删除购物车的特定定单项 cart.removeItemtByProductId(productid); //把购物车放到session中 session.setAttribute("cart", cart); return mapping.findForward("success"); } public ActionForward removeAllProductAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //取得session HttpSession session = request.getSession(); Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } cart.clear(); //把购物车放到session中 session.setAttribute("cart", cart); return mapping.findForward("success"); } public ActionForward removeSelectedProducts(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String[] productids = request.getParameterValues("productid"); Long [] ids = new Long[productids.length]; for(int i = 0; i < productids.length; i ++) { ids[i] = Long.valueOf(productids[i]); } //取得session HttpSession session = request.getSession(); Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } //删除所选中id的项 cart.removeItemsByProductId(ids); //把购物车放到session中 session.setAttribute("cart", cart); return mapping.findForward("success"); } public ActionForward checkOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //取得session HttpSession session = request.getSession(); //首先判断用户是否登陆了 User user = null; synchronized(session) { user = (User)session.getAttribute("user"); } if(user == null) { //如果还没有登陆,跳转到登陆页面 return mapping.findForward("login"); } Cart cart = null; //session线程不安全,所以要进行同步化 synchronized(session) { //先从session中取,如果不存在,则创建一个 cart = (Cart) session.getAttribute("cart"); if(cart == null) { cart = new Cart(); } } //把订单信息进行持久化 Order order = new Order(); order.setCreateTime(new Date()); order.setUser(user); //0表示刚产生,1表示发货,2表示失效. order.setStatus(0); order.setTotalPrice(cart.getTotalPrice()); this.getShoppingFacade().addOrder(order); Iterator<OrderItem> items = cart.getCartItems().iterator(); while(items.hasNext()) { OrderItem item = items.next(); item.setOrder(order); getShoppingFacade().addOrderItems(item); } //最后把购物车清空,并从session中删除 cart.clear(); session.removeAttribute("cart"); //顺便把类别号也删除 session.removeAttribute("catalogid"); request.setAttribute("orderId", order.getId()); return mapping.findForward("success"); } /** * 查看用户订单信息 */ public ActionForward viewOrders(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); User user = (User)session.getAttribute("user"); List<Order> orders = this.getShoppingFacade().findAllOrderByUserId(user.getId()); request.setAttribute("orders", orders); return mapping.findForward("success"); } /** * 管理员查看订单信息 */ public ActionForward showUsersOrders(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { PageForm pf = new PageForm(); int currentPage = 0; try { currentPage = Integer.parseInt(request.getParameter("currentPage")); } catch(NumberFormatException e) { currentPage = 1; } int pageSize = 5; int recordCount = this.getShoppingFacade().getOrderCount(); pf.init(pageSize, recordCount); pf.setCurrentPage(currentPage); List<Order> orders = getShoppingFacade().findAllOrders((currentPage - 1) * pageSize, pageSize); request.setAttribute("orders", orders); request.setAttribute("pageForm", pf); return mapping.findForward("success"); } /** * 查看用户订单明细 */ public ActionForward showDetails(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { showDetailUtil(request); return mapping.findForward("success"); } /** * 查看用户订单明细 */ public ActionForward showOrderDetails(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { showDetailUtil(request); return mapping.findForward("success"); } private void showDetailUtil(HttpServletRequest request) { Long orderid = Long.valueOf(request.getParameter("orderid")); List<OrderItem> items = this.getShoppingFacade().findAllOrderItems(orderid); request.setAttribute("items", items); } /** * 搜索产品 */ public ActionForward searchProducts(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { Long catalogid = null; try { catalogid = Long.valueOf(request.getParameter("catalogid").trim()); } catch (NumberFormatException e) { //如果没有选择类别,则找全部类别的 } String keyword = request.getParameter("keyword"); //通过特定的类别查找类别下的所有商品 List<Product> products = getShoppingFacade().findAllProduct(catalogid,keyword); request.setAttribute("products", products); return mapping.findForward("success"); } /** * 管理员修改订单状态 */ public ActionForward modifyOrderStatus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { changeStatus(request); return mapping.findForward("success"); } //确认已收货 public ActionForward submitOrder(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { changeStatus(request); return mapping.findForward("success"); } /** * 修改状态 * @param request */ private void changeStatus(HttpServletRequest request) { Long orderid = Long.valueOf(request.getParameter("orderid")); int status = Integer.valueOf(request.getParameter("status")); this.getShoppingFacade().modifyOrderStatus(orderid, status); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -