>  기사  >  Java  >  실용적인 온라인 쇼핑몰 공유 - 쇼핑모듈 및 주문모듈

실용적인 온라인 쇼핑몰 공유 - 쇼핑모듈 및 주문모듈

零下一度
零下一度원래의
2017-06-25 10:26:203621검색

오늘의 과제

  • 쇼핑 모듈 기능 완성하기

  • 주문 모듈 기능 완성하기

1.1 쇼핑 모듈 :

1.1.1 기능 시연 :

제품 상세정보 :

장바구니 모듈:

1.1.2 코드 구현:

1 제품 세부정보 페이지에서 [장바구니에 추가] 링크를 클릭하세요.

2. 구매한 상품의 수량을 제출합니다.

* 구매한 상품의 ID를 제출합니다.

3. 쇼핑 정보를 세션에 저장합니다.

* 장바구니 정보를 세션에 저장합니다.

* 캡슐화 쇼핑 품목 객체(장바구니에 담긴 각 구매 품목의 정보)

                                                                                                                    

                                                             장바구니 항목: 장바구니]

public class CartItem {private Product product;// 购买的商品的信息private int count; // 购买的数量private double subtotal; // 购买商品的小计

   public Product getProduct() {return product;

    }public void setProduct(Product product) {this.product = product;

    }public int getCount() {return count;

    }public void setCount(int count) {this.count = count;

    }public double getSubtotal() {return count * product.getShop_price();

    }/*public void setSubtotal(double subtotal) {

        this.subtotal = subtotal;

    }*/}

【링크를 클릭하시면 장바구니에 담을 수 있습니다. 상세 페이지】

public class Cart {// 定义一个购物项的集合的属性:集合采用Map集合,因为移除购物项的时候方便.使用商品的id作为Map的key// 使用购物项作为Map的value.private Map<String,CartItem> map = new LinkedHashMap<String,CartItem>();// 定义购物车中的总计:private double total;   public Map<String, CartItem> getMap() {return map;

    }   public double getTotal() {return total;

    }   // 方法:将购物项添加到购物车public void addCart(CartItem cartItem){// 判断购物车中是否已经存在该购物项.String id = cartItem.getProduct().getPid();if(map.containsKey(id)){// 如果已经存在:在原来的数量的基础上+新买的数量. 总计发生变化.// 获得购物车中的原来购物项的信息CartItem _cartItem = map.get(id);

            _cartItem.setCount(_cartItem.getCount()+cartItem.getCount());

        }else{// 如果不存在:在集合中添加一个新的购物项. 总计发生变化.map.put(id, cartItem);

        }

       

        total += cartItem.getSubtotal();

       

    }   // 方法:从购物车中移除购物项public void removeCart(String id){// 从map中移除选中的元素.// CartItem cartItem = map.get(id);CartItem cartItem = map.remove(id);// 将总计 - 移除购物项的小计total -= cartItem.getSubtotal();

       

    }   // 方法:清空购物车public void clearCart(){ ////  将map集合清空.map.clear();// 将总结设置为0.total = 0;

    }

}

【장바구니 페이지에서 장바구니 삭제를 원하시면】

public String addCart(HttpServletRequest req,HttpServletResponse resp){// 接收参数:String pid = req.getParameter("pid");int count = Integer.parseInt(req.getParameter("count"));       try {// 封装购物项:CartItem cartItem = new CartItem();// 商品对象:通过商品ID查询商品.ProductService productService = (ProductService) BeanFactory.getBean("productService");

            Product product = productService.findById(pid);

            cartItem.setProduct(product);

            cartItem.setCount(count);// 调用购物车中的添加到购物车的方法:// Cart cart = new Cart();Cart cart = getCart(req);

            cart.addCart(cartItem);

           

            resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp");

        } catch (Exception e) {

            e.printStackTrace();throw new RuntimeException();

        }return null;

    }

【장바구니 페이지에서 삭제 링크 클릭】

    public String clearCart(HttpServletRequest req,HttpServletResponse resp){// 获得购物车对象.Cart cart = getCart(req);// 调用购物车中的方法:cart.clearCart();try {

            resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp");

        } catch (Exception e) {

            e.printStackTrace();throw new RuntimeException();

        }return null;

    }

1.2 주문 모듈:

1.2.1 기능적 데모:

1.2.2 코드 구현:

1.2.2.1 테이블 및 엔터티 생성:
public String removeCart(HttpServletRequest req,HttpServletResponse resp){try {// 接收参数:String pid = req.getParameter("pid");// 获得购物车:Cart cart = getCart(req);

            cart.removeCart(pid);// 页面跳转resp.sendRedirect(req.getContextPath()+"/jsp/cart.jsp");

        } catch (Exception e) {

            e.printStackTrace();throw new RuntimeException();

        }return null;

    }

1.2.2.2 생성 주문:
[장바구니 페이지 클릭하여 주문 제출]

서블릿 제출:

* 패키지 주문 및 품목 주문.

* 비즈니스 계층 호출

* 장바구니 지우기

* 페이지 점프

위 내용은 실용적인 온라인 쇼핑몰 공유 - 쇼핑모듈 및 주문모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.