网上书店系统设计与实现 - 图文(6)

2019-05-18 18:45

4.3具体实现

本系统主要包括用户注册与登录模块、商品列表和商品明细模块、购物车管理模块和订单管理四个模块。

本次毕业设计我负责的是网上书店系统的订单管理及其相应的数据库,首先展示下我的成果图:

图4-5 订单确认

图4-6 订单地址

25

4.3.1订单确认

用户对购物车中商品进行确认之后,点击“下一步”按钮进入订单确认页面。

Struts2配置:

OrderInfoAction\>

/WEB-INF/order/order_info.jsp

业务层代码实现:

public String execute(){ CartService cart = CartFactory.getcCartService(session); buyItems = cart.getBuyProducts(true); totalDangPrice = cart.totalPrice(); return SUCCESS; }

持久层代码实现:

public List getBuyProducts(boolean buy) { // 返回CartItem中符合buy值的对象 List products = new ArrayList();

Collection items = store.values(); Iterator iterator = items.iterator(); while (iterator.hasNext()) { CartItem item = (CartItem) iterator.next(); if (item.isBuy() == true) { products.add(item); } }

return products;

26

public class OrderInfoAction extends BaseAction { private List buyItems; private double totalDangPrice; private double xiaoji;

}

public double totalPrice() { double totalPrice = 0; List list = getBuyProducts(true); for (CartItem item : list) { totalPrice += item.getPro().getDangPrice()*item.getNum(); } return totalPrice; }

4.3.2填写送货地址

用户对订单中商品数量、价格等进行确认后,点击“下一步”按钮进入填写送货地址页面。

Struts2配置:

AddressFormAction\ >

/WEB-INF/order/address_form.jsp

进入送货地址页面后,页面自动查找当前用户曾经用过的送货地址,如果用户的送货地址和收件人不变的话,则不用重新填写,方便了用户。

业务层代码实现:

public class AddressFormAction extends BaseAction { private User user;

private List allUsedAddress;

public String execute(){ ReceiveAddressDAO dao = new ReceiveAddressDAOImpl(); try { user = (User)session.get(\ allUsedAddress = dao.

getRecieAddressByUserId(user.getId());

for(ReceiveAddress r : allUsedAddress){ System.out.println(r.getFullAddress()); } } catch (Exception e) {

27

}

e.printStackTrace();

}

return SUCCESS;

持久层代码实现:

public List getRecieAddressByUserId

(Integer userId)throws Exception {

Query query = getSession().createQuery(\ where userId=?\ query.setParameter(0, userId); List list = query.list(); return list; }

4.3.3提交订单

Struts2配置:

CreateOrderAction\>

/WEB-INF/order/order_ok.jsp

业务层代码实现:

public class CreateOrderAction extends BaseAction { private Order order; private String orderDesc = \存放要购买的product 的id private double totalPrice; private User user; public String execute(){ try { CartService cart = CartFactory.getcCartService(session); user = (User)session.get(\ totalPrice = cart.totalPrice(); List buyItems = cart.getBuyProducts(true); //orderDesc = 12/10/5/8/... for(CartItem item : buyItems){ orderDesc += item.getPro().getId()+\ }

28

}

order.setStatus(Constant.NOTSEND);

order.setUserId(user.getId()); System.out.println(\ order.setOrderTime(System.currentTimeMillis()); order.setOrderDesc(orderDesc); order.setTotalPrice(totalPrice); //将order存入表d_order DAOFactory.getOrderDAO().save(order); //生成receiveAddress ReceiveAddress addr = new ReceiveAddress(); addr.setUserId(user.getId()); addr.setReceiveName(order.getReceiveName()); addr.setFullAddress(order.getFullAddress()); addr.setPostalCode(order.getPostalCode()); addr.setPhone(order.getPhone()); addr.setMobile(order.getMobile()); //将receiveAddress存入表 d_receive_address DAOFactory.getOrderDAO().save(addr); } catch (Exception e) { e.printStackTrace(); }

return SUCCESS;

持久层代码实现:

public class OrderDAOImpl extends BaseDAO implements OrderDAO {

29

}

public void save(Order order) throws Exception { Transaction tx = getSession().beginTransaction(); getSession().save(order); tx.commit(); }

public void save(ReceiveAddress receiveAddress)

throws Exception { Transaction tx = getSession().beginTransaction(); getSession().save(receiveAddress); tx.commit(); }


网上书店系统设计与实现 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:衡阳县校校结对帮扶工作方案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: