期末项目第二阶段

一.使用技术

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

}
posted @ 2019-05-29 10:47  疯子木  阅读(175)  评论(0编辑  收藏  举报