网上图书商城7--订单模块2

1.我的订单---查

按用户查询订单

分页查询 PageBean<Order>

<div class="divMain">
	<div class="divTitle">
		<span style="margin-left: 150px;margin-right: 280px;">商品信息</span>
		<span style="margin-left: 40px;margin-right: 38px;">金额</span>
		<span style="margin-left: 50px;margin-right: 40px;">订单状态</span>
		<span style="margin-left: 50px;margin-right: 50px;">操作</span>
	</div>
	<table align="center" border="0" width="100%" cellpadding="0" cellspacing="0">
	<c:forEach items="${pb.beanList }" var="order">
		<tr class="tt">
			<td width="320px">订单号:<a  href="<c:url value=‘/OrderServlet?method=load&oid=${order.oid }‘/>">${order.oid }</a></td>
			<td width="200px">下单时间:${order.ordertime }</td>
			<td> </td>
			<td> </td>
			<td> </td>
			<td> </td>
		</tr>
		<tr style="padding-top: 10px; padding-bottom: 10px;">
			<td colspan="2">
				<c:forEach items="${order.orderItemList }" var="orderItem">
					<a class="link2" href="<c:url value=‘/BookServlet?method=load&bid=${orderItem.book.bid }‘/>">
						<img border="0" width="70" src="<c:url value=‘/${orderItem.book.image_b }‘/>"/>
					</a>
				</c:forEach>
			</td>
			<td width="115px">
				<span class="price_t">¥${order.total }</span>
			</td>
			<td width="142px">
				<c:choose>
					<c:when test="${order.status eq 1 }">(等待付款)</c:when>
					<c:when test="${order.status eq 2 }">(准备发货)</c:when>
					<c:when test="${order.status eq 3 }">(等待确认)</c:when>
					<c:when test="${order.status eq 4 }">(交易成功)</c:when>
					<c:when test="${order.status eq 5 }">(已取消)</c:when>
				</c:choose>
			</td>
			<td>
				<a href="<c:url value=‘/OrderServlet?method=load&oid=${order.oid }‘/>">查看</a><br/>
				<c:if test="${order.status eq 1 }">
					<a href="<c:url value=‘/OrderServlet?method=paymentPre&oid=${order.oid }‘/>">支付</a><br/>
					<a href="<c:url value=‘/OrderServlet?method=load&oid=${order.oid }&btn=cancel‘/>">取消</a><br/>
				</c:if>
				<c:if test="${order.status eq 3 }">
					<a href="<c:url value=‘/OrderServlet?method=load&oid=${order.oid }&btn=confirm‘/>">确认收货</a><br/>
				</c:if>
			</td>
		</tr>
	</c:forEach>
	</table>
</div>

  

2.订单模块之生成订单

OrderServlet

public String createOrder(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	/*
	 * 1. 获取所有购物车条目的id,查询之
	 */
	String cartItemIds = req.getParameter("cartItemIds");
	List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds);
	if(cartItemList.size() == 0) {
		req.setAttribute("code", "error");
		req.setAttribute("msg", "您没有选择要购买的图书,不能下单!");
		return "f:/jsps/msg.jsp";
	}
	/*
	 * 2. 创建Order
	 */
	Order order = new Order();
	order.setOid(CommonUtils.uuid());//设置主键
	order.setOrdertime(String.format("%tF %<tT", new Date()));//下单时间
	order.setStatus(1);//设置状态,1表示未付款
	order.setAddress(req.getParameter("address"));//设置收货地址
	User owner = (User)req.getSession().getAttribute("sessionUser");
	order.setOwner(owner);//设置订单所有者

	BigDecimal total = new BigDecimal("0");
	for(CartItem cartItem : cartItemList) {
		total = total.add(new BigDecimal(cartItem.getSubtotal() + ""));
	}
	order.setTotal(total.doubleValue());//设置总计

	/*
	 * 3. 创建List<OrderItem>
	 * 一个CartItem对应一个OrderItem
	 */
	List<OrderItem> orderItemList = new ArrayList<OrderItem>();
	for(CartItem cartItem : cartItemList) {
		OrderItem orderItem = new OrderItem();
		orderItem.setOrderItemId(CommonUtils.uuid());//设置主键
		orderItem.setQuantity(cartItem.getQuantity());
		orderItem.setSubtotal(cartItem.getSubtotal());
		orderItem.setBook(cartItem.getBook());
		orderItem.setOrder(order);
		orderItemList.add(orderItem);
	}
	order.setOrderItemList(orderItemList);

	/*
	 * 4. 调用service完成添加
	 */
	orderService.createOrder(order);

	// 删除购物车条目
	cartItemService.batchDelete(cartItemIds);
	/*
	 * 5. 保存订单,转发到ordersucc.jsp
	 */
	req.setAttribute("order", order);
	return "f:/jsps/order/ordersucc.jsp";
}

OrderDao

public void add(Order order) throws SQLException {
	/*
	 * 1. 插入订单
	 */
	String sql = "insert into t_order values(?,?,?,?,?,?)";
	Object[] params = {order.getOid(), order.getOrdertime(),
			order.getTotal(),order.getStatus(),order.getAddress(),
			order.getOwner().getUid()};
	qr.update(sql, params);

	/*
	 * 2. 循环遍历订单的所有条目,让每个条目生成一个Object[]
	 * 多个条目就对应Object[][]
	 * 执行批处理,完成插入订单条目
	 */
	sql = "insert into t_orderitem values(?,?,?,?,?,?,?,?)";
	int len = order.getOrderItemList().size();
	Object[][] objs = new Object[len][];
	for(int i = 0; i < len; i++){
		OrderItem item = order.getOrderItemList().get(i);
		objs[i] = new Object[]{item.getOrderItemId(),item.getQuantity(),
				item.getSubtotal(),item.getBook().getBid(),
				item.getBook().getBname(),item.getBook().getCurrPrice(),
				item.getBook().getImage_b(),order.getOid()};
	}
	qr.batch(sql, objs);
}

  

3.查询订单详细信息

4.取消订单、确认收货

时间: 2024-12-24 14:41:38

网上图书商城7--订单模块2的相关文章

网上图书商城9--支付模块

1.支付准备 public String paymentPre(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setAttribute("order", orderService.load(req.getParameter("oid"))); return "f:/jsps/order/pay.jsp"; }

网上图书商城8--订单模块3

3.查询订单详细信息 OrderServlet public String load(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String oid = req.getParameter("oid"); Order order = orderService.load(oid); req.setAttribute("order", o

网上图书商城6--订单模块1

1.sql ①t_orderitem一个外键 bname:方便后期book删除 CREATE TABLE `t_orderitem` ( `orderItemId` char(32) NOT NULL, `quantity` int(11) DEFAULT NULL, `subtotal` decimal(8,2) DEFAULT NULL, `bid` char(32) DEFAULT NULL, `bname` varchar(200) DEFAULT NULL, `currPrice` d

基于SSH的网上图书商城-JavaWeb项目-有源码

开发工具:Myeclipse/Eclipse + MySQL + Tomcat 项目简介: 技术:Java:JSP:JDBC,struts2,spring,hibernate数据库: mysqlweb服务器:tomcat集成开发工具: My Eclipse2014基于SSH的网上图书商城系统主要实现以下功能.本系统结构如下:1,游客访问 |--书店首页 查看精品推荐,最新出版的图片信息列表 |--书店简介 |--精品推荐 |--最新出版 |--优惠促销 2,会员访问 |--用户登陆,实现用户的登

JavaWeb网上图书商城完整项目--day02-4.regist页面提交表单时对所有输入框进行校验

1.现在我们要将table表中的输入的参数全部提交到后台进行校验,我们提交我们是按照表单的形式提交,所以我们首先需要在table表外面添加一个表单 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core&

网上图书商城项目学习笔记-018生成订单

一.流程分析 1.订单模块介绍 2.生成订单流程 二.代码 1.view层 (1)showitem.jsp 1 <form id="form1" action="<c:url value='/OrderServlet'/>" method="post"> 2 <input type="hidden" name="cartItemIds" value="${cartIt

web day26 小项目练习图书商城 后台分类管理模块,图书管理模块,前台登陆过滤

后台 后台的内容,必须要设置权限 用户可以访问一个网站的哪些内容? dao:不行 / service:不行 servlet:能 / jsp:能 用户可以访问的只有WEB层 分类管理 功能:增删改查 相关类 其他不变,为管理员提供单独的Servlet,然后给这个Servlet添加过滤器! web.servlet.admin:AdminCategoryServlet 查看所有分类 (略)同前台 只是转发到不同的页面 添加分类 add.jsp→AdminCatetgoryServlet#add() 1

网上图书商城项目学习笔记-003系统功能模块分析

1. itcastgoods文件夹介绍2. 项目导入演示 * 导入数据库 * 导入项目,发布,运行3. 项目原型导入演示 * 导入项目原型,发布,运行4. 小工具介绍5. jQuery介绍 6. 项目前台功能介绍 * User模块 > 注册 > 激活 > 登录 > 修改密码 > 退出 * Category模块 > 显示所有分类 * Book模块 > 按分类查询(分页) > 按图名查询(模糊)(分页) > 按作者查询(分页) > 按出版社查询(分页

网上图书商城项目学习笔记-031图书管理模块介绍及添加图书

一.流程分析 1.图书管理模块介绍 2. 3. 4.添加图书第一步 5.添加图书第二步 二.代码 1.view层 (1)body.jsp 1 <body> 2 <h1 align="center">图书管理</h1> 3 <p align="center"> 4 <a href="<c:url value='/admin/AdminBookServlet?method=addPre'/>&q