2023-01-07
一、“我的订单”功能
(1)找到“我的订单”的位置
①购物车页面Cart.html中的第26行
②结算完成页面Checkout.html中的第45行
将两个位置中超链接的“href”改变设置,写为
<a href="order?flag=showOrders">我的订单</a>
(2)在src文件夹下的“com.hh.servlet.model”中的“OrderServlet”类中创建“showOrders”方法
(3)在src下的“com.hh.service”中的“OrderService”接口中创建方法
//根据用户的id找订单信息 List<Order> findAllOrder(Integer userId);
(4)在src下的“com.hh.service.impl”中的“OrderServiceImpl”实现类对刚刚设置的抽象方法进行实现
(5)在src下的“com.hh.dao”中的“OrderDao”接口中设置方法
List<Order> findAllOrder(Integer userId);
和“OrderService”接口中的方法一样。
(6)在src下的“com.hh.dao.impl”中的“OrderDaoImpl”类中对OrderDao”接口中的抽象方法进行实现
@Override public List<Order> findAllOrder(Integer userId) { String sql="select order_id orderId,order_sequence orderSequence,create_time createTime,total_count totalCount,total_amount totalAmount,order_status orderStatus,user_id userId from t_order where user_id=?"; return this.getList(Order.class,sql,userId); }
此处主要写sql语句,与数据库进行连接。
(7)OrderServiceImpl中的"createOrder"方法
@Override public List<Order> findAllOrder(Integer userId) { return orderDao.findAllOrder(userId); }
(7)在“OrderServlet”中的“showOrders”方法
protected void showOrders(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获得当前登录人的对象(根据当前登录人的id值去数据查询) User user = (User)request.getSession().getAttribute("user"); //2.调用业务层处理业务 List<Order> allOrder = orderService.findAllOrder(user.getId()); //3.给响应 request.setAttribute("orders",allOrder); this.processTemplate("order/order",request,response); }
(8)在web下的“WEB-INF”的“order”中的“order.html”中进行渲染
设置命名空间、base标签
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<base th:href="@{/}">
将“../../../”使用“”替换,使用快捷键“ctrl+r”
<tbody> <tr th:each="order,status : ${orders}"> <td th:text="${order.orderSequence}">12354456895</td> <td th:text="${order.createTime}"> 2015.04.23 </td> <td th:text="${order.totalCount}">90.00</td> <td th:text="${order.totalAmount}">88</td> <td> <a href="" class="send" th:if="${order.orderStatus==0}">等待发货</a> <a href="" class="send" th:if="${order.orderStatus==1}">已发货</a> <a href="" class="send" th:if="${order.orderStatus==2}">确认收货</a> </td> <td><a href="">查看详情</a></td> </tr> </tbody>
(9)在刷新服务器后,先登陆后“转到主页”,之后将一些图书加入购物车后,点击“购物车”图标,之后点击“去结算”。点击右上角“我的订单”,如果出现订单号,那么代码OK