天天看點

期末項目第二階段

一.使用技術

  • 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();

}      

轉載于:https://www.cnblogs.com/fengzimu/p/10942382.html