3.1、编写查看我的订单模块的 Dao 程序和测试

OrderDao 接口 :

 /*** 根据用户编号查询订单信息* @param id* @return*/
List<Order> queryOrdersByUserId(Integer id);

OrderDao 实现 :

@Override
public List<Order> queryOrdersByUserId(Integer id) {String sql = "select order_id orderId,create_time createTime,price,status,user_id userId from t_order where user_id = ?";return queryForList(Order.class,sql,id);
}

OrderDaoTest:

public void queryOrdersByUserId() {List<Order> orders = orderDao.queryOrdersByUserId(1);for (Order order : orders) {System.out.println(order);}
}

3.2、编写查看我的订单模块的 Service 和测试

OrderService 接口:

 /*** 用户查看自己的订单* @param id*/
List<Order> showMyOrders(Integer id);

OrderService 实现类 :

@Override
public List<Order> showMyOrders(Integer id) {List<Order> orders = orderDao.queryOrdersByUserId(id);return orders;
}

测试 :

@Test
public void showMyOrders() {List<Order> orders = orderService.showMyOrders(1);for (Order order : orders) {System.out.println(order);}
}

3.3、编写查看我的订单的Servlet程序和jsp页面

ClientOrderServlet:

  /*** 用户查看自己的订单* @param req* @param resp* @throws ServletException* @throws IOException*/protected void showMyOrders(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获得登录用户的信息User user = (User) req.getSession().getAttribute("user");if(user == null){req.getRequestDispatcher("/pages/user/login.jsp").forward(req,resp);return;}//取得用户IDInteger id = user.getId();
//        通过ID获得该用户的订单List<Order> orders = orderService.showMyOrders(id);//        将该用户的订单信息保存到Session域req.getSession().setAttribute("myOrder",orders);//请求转发到订单页面req.getRequestDispatcher("/pages/order/order.jsp").forward(req,resp);}

login_success_menu.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %><script type="text/javascript">$(function () {//给我的订单绑定单击事件$("#myOrder").click(function () {if(${empty sessionScope.user}){alert("你还未登录,请先登录~");this.href = "http://localhost:8080/MyBookStore/pages/user/login.jsp";}else{this.href = "http://localhost:8080/MyBookStore/client/orderServlet?action=showMyOrders";}});});
</script>
<div><span>欢迎<span class="um_span">${sessionScope.user.username}</span>光临LOEY书城</span><a id="myOrder" href="javascript:void(0)">我的订单</a><a href="userServlet?action=logout">注销</a>&nbsp;&nbsp;<a href="index.jsp">返回</a>
</div>
order.jsp:
<div id="main"><c:if test="${empty sessionScope.myOrder}"><div style="margin-left:30%;margin-top:15%;font-size: 20px">你还没任何订单,赶紧去<a href="index.jsp" style="color: blue">首页</a>加购商品吧!!!</div></c:if><c:if test="${not empty sessionScope.myOrder}"><table><tr><td>日期</td><td>金额</td><td>状态</td><td>详情</td></tr><c:forEach items="${sessionScope.myOrder}" var="order"><tr><td>${order.createTime}</td><td>${order.price}</td><c:if test="${order.status == 0}"><td>未发货</td></c:if><c:if test="${order.status == 1}"><td>已发货</td></c:if><c:if test="${order.status == 2}"><td>已签收</td></c:if><td><a href="pages/order/order_Item.jsp">查看详情</a></td></tr></c:forEach></table></c:if>
</div>

4.1、编写我的订单详情模块的 Dao 程序和测试

OrderItemDao 接口 :

/*** 根据订单编号查询订单明细* @param OrderId* @return*/
List<OrderItem> queryOrderItemsByOrderId(String OrderId);

OrderItemDao 实现 :

@Override
public List<OrderItem> queryOrderItemsByOrderId(String orderId) {String sql = "select id,name,count,price,total_price totalPrice,order_id orderId from t_order_item where order_id = ?";return queryForList(OrderItem.class,sql,orderId);
}

OrderItemDaoTest:

@Test
public void showOrderDetail() {List<OrderItem> orderItems = orderItemDao.queryOrderItemsByOrderId("16023323760301");for (OrderItem orderItem : orderItems) {System.out.println(orderItem);}
}

4.2、编写我的订单详情模块的 Service 和测试

OrderService 接口:

/*** 查看订单详情* @param orderId 订单编号* @return*/
List<OrderItem> showOrderDetail(String orderId);

OrderService 实现类 :

@Override
public List<OrderItem> showOrderDetail(String orderId) {List<OrderItem> orderItems = orderItemDao.queryOrderItemsByOrderId(orderId);return orderItems;
}

测试 :

@Test
public void showOrderDetail() {List<OrderItem> orderItems = orderItemDao.queryOrderItemsByOrderId("16023323760301");for (OrderItem orderItem : orderItems) {System.out.println(orderItem);}
}

4.3编写我的订单详情Servlet程序和jsp页面

ClientOrderServlet:

 /*** 显示订单详情* @param req* @param resp* @throws ServletException* @throws IOException*/protected void showOrderDetail(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获得参数String orderId = req.getParameter("orderId");int allCount = WebUtils.parseInt(req.getParameter("allCount"), 1);String allPrice = req.getParameter("allPrice");List<OrderItem> orderItems = orderService.showOrderDetail(orderId);req.getSession().setAttribute("myOrderItems",orderItems);req.getSession().setAttribute("allCount",allCount);req.getSession().setAttribute("allPrice",allPrice);req.getRequestDispatcher("/pages/order/order_Item.jsp").forward(req,resp);}

order.html:

<td><a href="client/orderServlet?action=showOrderDetail&orderId=${order.orderId}&allCount=${order.count}&allPrice=${order.price}">查看详情</a></td>
order_item.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>订单详情</title><%-- 静态包含 base标签、css样式、jQuery文件 --%><%@include file="/pages/common/head.jsp"%></head>
<body><div id="header"><img class="logo_img" alt="" src="static/img/logo.gif" ><span class="wel_word">订单详情</span><%--静态包含登录成功后菜单--%><%@include file="/pages/common/login_success_menu.jsp"%>
</div><div id="main"><table><tr><td>商品名称</td><td>数量</td><td>单价</td><td>总金额</td><td>订单编号</td></tr><c:forEach items="${sessionScope.myOrderItems}" var="orderItem"><tr><td>${orderItem.name}</td><td>${orderItem.count}</td><td>${orderItem.price}</td><td>${orderItem.totalPrice}</td><td>${orderItem.orderId}</td></tr></c:forEach></table><div class="cart_info"><span class="cart_span">这个订单中共<span class="b_count">${sessionScope.allCount}</span>件商品</span><span class="cart_span">总金额<span class="b_price">${sessionScope.allPrice}</span>元</span></div></div><%--静态包含页脚内容--%>
<%@include file="/pages/common/footer.jsp"%></body>
</html>

项目阶段六:查看我的订单模块相关推荐

  1. 完整电商项目--(八)商品订单模块(1):订单结算与 mysql事务

    文章目录 订单结算页面 重点:提交订单 创建订单数据表 注意事项: 订单表介绍 提交订单数据: 保存订单中的数据处理操作(业务逻辑复杂,代码不难,前面都写过) 首先是数据验证和加载 接着是具体得 业务 ...

  2. 智能家居项目(六)之摄像头模块

    目录 一.树莓派mipg-streamer实现监控功能调试 1.实现基本思路 2.安装摄像头模块 2.1.在安装sudo apt-get install libv4l-dev  的命令时报错 3.开启 ...

  3. 书城项目第六、七阶段

    书城项目第六.七阶段 1. 项目第六阶段:购物车 页面样式 购物车 我的订单 结算 1.1 购物车模块分析 1.2.购物车实现 1.2.1 购物车模型 1.2.2 购物车的测试 创建 pojo/Car ...

  4. 微服务项目-订单模块

    准备工作 参照之前的文章搭建好项目架构,接下来开始写订单模块的后端接口.接口文档在开源仓库上有,仓库地址在第一篇博客上有. 新建订单服务模块 1.创建新模块 模块继承主工程依赖依赖 2.导入相关依赖 ...

  5. Spring Boot电商项目59:订单模块八:【后台:订单列表】接口;

     说明: (1)本篇博客的主要内容是开发[后台:订单列表]接口: (2)本篇博客没什么难点:只需要注意:[前台:订单列表]接口是查询当前登录用户的订单数据:[后台:订单列表]接口是查询所有用户的订单数 ...

  6. JAVA项目实战开发电商项目案例(十)订单与支付模块

    文章目录 1项目架构 2项目采用技术 3订单与支付模块功能演示 4如何开发支付宝的支付模块以及订单模块 4.1首先需要编写前端页面以及JS文件 4.2其次需要编写JAVA后台接口 4.3支付模块分析 ...

  7. web day25 web day24 小项目练习图书商城, 购物车模块,订单模块,支付(易宝支付)

    购物车模块 购物车存储: 保存在session中(本次使用的) 保存在cookie中 保存在数据库中 购物车相关类 购物车结构 CartItem:包含图书和数量,小计 Cart:包含一个Map< ...

  8. [项目管理-32]:项目经理六阶段职业成长之路: 达克效应=>短板理论=>刻意练习=>长版板子理论=>精进=>布道

    目录 第1章 项目经理六阶段职业成长之路 第2章 达克效应原理 2.1 概述 2.2 几大阶段 第3章 达克效应原理的应用 3.1 从愚昧之巅跌入绝望之谷:自省 + 他觉 + 短板理论 3.2 从绝望 ...

  9. Spring Boot电商项目52:订单模块一:订单模块介绍;(模块介绍;效果演示;数据库设计;9个接口介绍;)

    说明: (1)本篇博客的内容:本篇博客,简单梳理下[订单模块]的基本内容: (2)声明:[订单模块]是一个比较复杂的模块,其中涉及了订单的状态的改变和订单的流转:所以,本篇博客,只是简单介绍了[订单模 ...

最新文章

  1. 使用java的Calendar对象获得当前日期的上几个度开始、结束时间
  2. html如何设置多个模块,在webpack中如何实现多页面开发
  3. 10个最佳Node.js企业应用案例:从Uber到LinkedIn
  4. 动态创建asp.net控件之我见
  5. elf section类型_在 498 行极小 OS 上跑标准 ELF 程序
  6. 计算机无法连接无线信号,win7系统连接无线信号时提示Windows无法连接到路由器名称的四种解决方法...
  7. html导出excel 内存不足,web导出excel那些坑
  8. Java Web应用调优线程池
  9. MySQL 常用命令大全
  10. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  11. html + css + js 实现一个打字小游戏(建议收藏)
  12. 盈建科中地震波_[GMS][地震波][选波]YJK地震波反应谱分析与地震波选取
  13. mysql 1.4安装步骤_1.4.1 MySql安装配置
  14. mysql护眼参数,VS2013设置护眼背景颜色
  15. word排版技巧:如何撤销删除自动编号
  16. 更改以太网共享属性家庭网络连接值,解决电脑笔记本连接校园网显示无internet无法开热点或开热点手机无ip分配问题
  17. storm风暴英雄 tempo_风暴英雄Tempo Storm 安娜版本天梯环境速报 安娜强度居T3
  18. 十进制 -> N进制 写法 -- Java
  19. mac:系统存在两个Macintosh HD是怎么回事
  20. 功夫熊猫里乌龟大师的一句名言

热门文章

  1. 电脑怎么使用自带的截图功能
  2. Linux环境编程(4)文件操作相关内容补充
  3. 王者荣耀云测杯失败总结
  4. android两个活动共用变量,Android:多个Activity共享全局变量
  5. 面向对象分析与设计知识点总结
  6. 中科驭数成为证券基金行业信息技术应用创新知识库首批合作厂商
  7. Ubuntu18.04 fcitx搜狗拼音输入法候选栏英文乱码
  8. 2020一线互联网大厂面经集——阿里篇「1」
  9. Fluent Search,一款让Windows效率起飞的软件
  10. 空间滤波:非线性空间滤波