版权声明:本文为博主原创文章,如有转载请注明出处,谢谢。 https://blog.csdn.net/pdsu161530247/article/details/82258626
目录
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服务层
服务层本应该:
- 根据用户id查询收货地址列表。
- 查询支付方式。
但是由于这两个都使用的静态数据,所以服务层不需要编写。
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
可以正常回显用户名