发布时间:2023-01-07 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

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