淘淘商城73-商城订单系统实现之订单确认页面展示

版权声明:本文为博主原创文章,如有转载请注明出处,谢谢。 https://blog.csdn.net/pdsu161530247/article/details/82258626

目录

1.功能分析

2.订单确认页面展示功能实现

2.1服务层

2.2表现层

2.2.1controller

3.测试访问


1.功能分析

当用户准备结算购物车时,点击去结算按钮

会跳转到http://localhost:8089/order/order-cart.html

由于订单确认页面展示在taotao-order-web系统,所以修改跳转地址为http://localhost:8092/order/order-cart.html

将参考资料中的购物车静态页面下js、css、images导入webapp下,将jsp导入WEB-INF下

我们打开订单确认页面order-cart.jsp,看看需要准备什么数据。

只需要准备购物车列表(List<TbItem>),就可以了,但是还需要将${cart.images[0]}改为${cart.image}

order-cart.jsp第191行还有

如果忘记改了,就会出现下面这种错误。

2.订单确认页面展示功能实现

  • 首先用户先登录,从cookie中获取token ,根据token获取登录的用户信息。
  • 展示配送地址列表,需要根据用户id查询收货地址列,这里暂时使用静态数据。
  • 展示支付方式,也需要从数据库中查询支付的方式列表,这里暂时使用静态数据。

2.1服务层

服务层本应该:

  1. 根据用户id查询收货地址列表。
  2. 查询支付方式。

但是由于这两个都使用的静态数据,所以服务层不需要编写。

2.2表现层

请求的url:/order/order-cart

参数:无

从cookie中获取token ,根据token获取登录的用户信息,查询redis获取cartList,放到request域中即可。

2.2.1controller

在taotao-order-web创建controller

package com.taotao.order.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.taotao.cart.service.CartService;
import com.taotao.common.pojo.TaotaoResult;
import com.taotao.common.utils.CookieUtils;
import com.taotao.pojo.TbItem;
import com.taotao.pojo.TbUser;
import com.taotao.sso.service.UserLoginService;

@Controller
public class OrderController {
	
	@Autowired
	private UserLoginService loginService;
	@Autowired
	private CartService cartService;
	/**cookie中token的key*/
	@Value("${COOKIE_TOKEN_KEY}")
	private String COOKIE_TOKEN_KEY;
	/**
	 * 订单确认页数据准备
	 * @param request
	 * @return
	 */
	@RequestMapping("/order/order-cart")
	public String showOrder(HttpServletRequest request) {
		
		//1.从cookie中获取token
		String token = CookieUtils.getCookieValue(request, COOKIE_TOKEN_KEY);
		TaotaoResult result = loginService.getUserByToken(token);
		//2.判断用户是否登录
		if(result.getStatus() == 200) {
			//3.获取购物车列表
			TbUser tbUser = (TbUser)result.getData();
			List<TbItem> cartList = cartService.getCartList(tbUser.getId());
			request.setAttribute("cartList", cartList);
		}
		
		return "order-cart";
	}
}

3.测试访问

在登录状态下

订单确认页信息成功展示,发现订单确认页面顶部没有回显用户名,需要修改taotao-order-web下taotao.js

修改如下:cookie中token的name、调用sso服务的url端口、退出的url

可以正常回显用户名

猜你喜欢

转载自blog.csdn.net/pdsu161530247/article/details/82258626
今日推荐