A. The use of technology
- IDE: Eclipse
- Database: Mysql
- Data source: C3P0
- JDBC tools: DBUtils
- Front-end framework: Bootstrap
- Ajax Solution: jQuery + JavaScript + JSON + Google-gson
II. Database Table
Table account:
Table mycomputers:
Table tradeitem:
Table trate:
表userinfo:
III. Design and implementation of presentation layer
3.1.1 Home
3.1.2 Paging
3.1.3 Filter range
3.1.4 Shopping Cart
3.1.5 checkout
3.2 Main snippet
Verify the user name and password
public StringBuffer validateUser(String username, String accountId){ boolean flag = false; User user = userService.getUserByUserName(username); if(user != null){ int accountId2 = user.getAccountId(); if(accountId.trim().equals("" + accountId2)){ flag = true; } } StringBuffer errors2 = new StringBuffer(""); if(!flag){ errors2.append("用户名和账号不匹配"); } return errors2; }
添加到购物车
protected void addToCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1. 获取商品的 id String idStr = request.getParameter("id"); int id = -1; boolean flag = false; try { id = Integer.parseInt(idStr); } catch (Exception e) {} if(id > 0){ //2. 获取购物车对象 ShoppingCart sc = EStoreWebUtils.getShoppingCart(request); //3. 调用 ComputerService 的 addToCart() 方法把商品放到购物车中 flag = computerService.addToCart(id, sc); } if(flag){ //4. 直接调用 getComputers() 方法. getComputers(request, response); return; } response.sendRedirect(request.getContextPath() + "/error-1.jsp"); }
添加到购物车(商品页详情添加)
protected void addToCartInside(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1. 获取商品的 id String idStr = request.getParameter("id"); int id = -1; boolean flag = false; try { id = Integer.parseInt(idStr); } catch (Exception e) {} if(id > 0){ //2. 获取购物车对象 ShoppingCart sc = EStoreWebUtils.getShoppingCart(request); //3. 调用 ComputerService 的 addToCart() 方法把商品放到购物车中 flag = computerService.addToCart(id, sc); } if(flag){ //4. 直接调用 getComputer() 方法. getComputer(request, response); return; } response.sendRedirect(request.getContextPath() + "/error-1.jsp"); }
业务逻辑
public void cash(ShoppingCart shoppingCart, String username, String accountId) { //1. 更新 mycomputers 数据表相关记录的 salesamount 和 storenumber computerDAO.batchUpdateStoreNumberAndSalesAmount(shoppingCart.getItems()); int i = 10; //2. 更新 account 数据表的 balance accountDAO.updateBalance(Integer.parseInt(accountId), shoppingCart.getTotalMoney()); //3. 向 trade 数据表插入一条记录 Trade trade = new Trade(); trade.setTradeTime(new Date(new java.util.Date().getTime())); trade.setUserId(userDAO.getUser(username).getUserId()); tradeDAO.insert(trade); //4. 向 tradeitem 数据表插入 n 条记录 Collection<TradeItem> items = new ArrayList<>(); for(ShoppingCartItem sci: shoppingCart.getItems()){ TradeItem tradeItem = new TradeItem(); tradeItem.setComputerId(sci.getComputer().getId()); tradeItem.setQuantity(sci.getQuantity()); tradeItem.setTradeId(trade.getTradeId()); items.add(tradeItem); } tradeItemDAO.batchSave(items); //5. 清空购物车 shoppingCart.clear(); }