一、购物车商品数量功能实现
1、页面分析
2、查看接口文档
objectMapper
private static ObjectMapper objectMapper = new ObjectMapper();
@PathVariable
接收传递参数
jt-web前台
@RequestMapping("update/num/{itemId}/{num}")
@ResponseBody
public SysResult updateCartNum(
@PathVariable Long itemId,
@PathVariable int num) {
try {
//先固定用户Id
Long userId =7L;
Cart cart = new Cart();
cart.setUserId(userId);
cart.setItemId(itemId);
cart.setNum(num);
//传递携带信息的cart对象
cartService.updateCartNum(cart);
return SysResult.oK();
} catch (Exception e) {
e.printStackTrace();
}
return SysResult.build(201, "更改购物车数量失败");
}
//更改购物车某物品数量
@Override
public void updateCartNum(Cart cart) {
//1.定义url
String url = "http://cart.jt.com/cart/update/num";
//2.封装参数
try {
String cartJSON = objectMapper.writeValueAsString(cart);
Map<String,String> params = new HashMap<>();
params.put("cartJSON", cartJSON);
httpClient.doGet(url, params);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
jt-cart购物车
//更改购物车某产品数量
@RequestMapping("/update/num")
@ResponseBody
public SysResult updateCartNum(String cartJSON){
try {
Cart cart = objectMapper.readValue(cartJSON, Cart.class);
cartService.updateCartNum(cart);
return SysResult.oK();
} catch (Exception e) {
e.printStackTrace();
}
return SysResult.build(201,"商品更新失败");
}
public void updateCartNum(Cart cart) {
// TODO Auto-generated method stub
cart.setUpdated(new Date());
cartMapper.updateCartNum(cart);
}
void updateCartNum(Cart cart);
<!-- 修改购物车中商品数量 -->
<update id="updateCartNum">
update tb_cart
set
num = #{num}, updated = #{updated}
where
item_id = #{itemId} and user_id = #{userId}
</update>
二、拦截器功能的实现
1、需求分析:
如果用户没有登陆,则点击购物车应该实现拦截,并跳转到用户的登录页面
如果已经登录了,予以放行