博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目阶段六:查看我的订单模块
阅读量:3966 次
发布时间:2019-05-24

本文共 5583 字,大约阅读时间需要 18 分钟。

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

OrderDao 接口 :

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

OrderDao 实现 :

@Overridepublic List
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
orders = orderDao.queryOrdersByUserId(1); for (Order order : orders) {
System.out.println(order); }}

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

OrderService 接口:

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

OrderService 实现类 :

@Overridepublic List
showMyOrders(Integer id) {
List
orders = orderDao.queryOrdersByUserId(id); return orders;}

测试 :

@Testpublic void showMyOrders() {
List
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; } //取得用户ID Integer id = user.getId();// 通过ID获得该用户的订单 List
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" %>
欢迎${sessionScope.user.username}光临LOEY书城
我的订单
注销  
返回
order.jsp:
你还没任何订单,赶紧去
首页加购商品吧!!!
日期 金额 状态 详情
${order.createTime} ${order.price} 未发货 已发货 已签收 查看详情

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

OrderItemDao 接口 :

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

OrderItemDao 实现 :

@Overridepublic List
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:

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

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

OrderService 接口:

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

OrderService 实现类 :

@Overridepublic List
showOrderDetail(String orderId) {
List
orderItems = orderItemDao.queryOrderItemsByOrderId(orderId); return orderItems;}

测试 :

@Testpublic void showOrderDetail() {
List
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
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:

查看详情order_item.jsp:<%@ page contentType="text/html;charset=UTF-8" language="java" %>    订单详情    <%-- 静态包含 base标签、css样式、jQuery文件 --%>    <%@include file="/pages/common/head.jsp"%>
商品名称 数量 单价 总金额 订单编号
${
orderItem.name}
${
orderItem.count}
${
orderItem.price}
${
orderItem.totalPrice}
${
orderItem.orderId}
这个订单中共${
sessionScope.allCount}
件商品
总金额${
sessionScope.allPrice}
<%--静态包含页脚内容--%><%@include file="/pages/common/footer.jsp"%>

转载地址:http://bquki.baihongyu.com/

你可能感兴趣的文章
SQL - SQL Server 一列或多列重复数据的查询,删除
查看>>
NET - .NET Core WebAPI + Vue + Axios 导出Excel / CSV
查看>>
NET - NET Core Quartz.net开源作业调度框架使用详解
查看>>
NET - NET Core quartz.net 时间表达式----- Cron表达式详解
查看>>
NET - .NET Core 之 Abp Audit-Logging
查看>>
NET - .NET Core 之 Abp AuditLog 将不同的Controller实体的审计日志存储到不同的Table
查看>>
NET - .NET Core 之 Azure Key Vault 密钥保管库的使用
查看>>
NET - .NET Core 之 Abp 整合 Quartz
查看>>
Docker - Docker Desktop(WSL2)修改镜像存储位置
查看>>
NET - NET Core使用Log4net的SqlServer AdoNetAppender 报程序集错误
查看>>
NET - NET Core中使用Log4net输出日志到数据库中去
查看>>
NET - NET Core 迁移nuget包缓存到指定位置
查看>>
Spring - SpringBoot 集成 swagger2
查看>>
SQL - 深入理解MySQL索引之B+Tree
查看>>
SQL - 数据库索引原理,及MySQL索引类型
查看>>
Spring - Dubbo的实现原理
查看>>
Spring - Dubbo 扩展点详解
查看>>
Spring - Hystrix原理与实战
查看>>
Spring - Sentinel 原理 全解析
查看>>
Spring - 比较Sentinel和Hystrix
查看>>