一.使用技术
- IDE:Eclipse
- 数据库:Mysql
- 数据源:C3P0
- JDBC 工具:DBUtils
- 前端框架:Bootstrap
- Ajax 解决方案:jQuery + JavaScript + JSON + Google-gson
二.数据库表
表account:
表mycomputers:
表tradeitem:
表trate:
表userinfo:
三.表现层设计与实现
3.1.1 首页
3.1.2 分页
3.1.3 筛选范围
3.1.4 购物车
3.1.5 结账
3.2 主要代码片段
验证用户名与密码
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; }
添加到购物车
//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"); }
添加到购物车(商品页详情添加)
//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"); }
业务逻辑
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(); }