需求分析
移动端用户可以将菜品或套餐加入购物车。对于菜品来说,如果添加了菜品口味信息,则需要选择规格后才能加入购物车;对于套餐来说,可以直接点击加号将当前套餐加入购物车。在购物车中可以修改套餐或菜品的数量,也可以清空购物车。
数据模型
需要操作shopping_cart表。
代码开发
前后端交互过程:
- 点击加入购物车或者加号按钮,页面发送ajax请求,将菜品或套餐加入购物车。
- 点击购物车按钮,页面发送ajax请求,查询购物车中的菜品或套餐信息。
- 点击清空发购物车按钮,页面发送ajax请求,请求服务端清空购物车信息。
搭建好需要用到的类和接口的基本环境:entity、dao、service、controller。
添加购物车
/**
* 添加购物车。
*
* @param shoppingCart
* @return
*/
@PostMapping("/add")
public R<ShoppingCart> add(@RequestBody ShoppingCart shoppingCart) {
log.info("购物车信息:{}", shoppingCart);
// 设置用户id,指定当前购物车是属于哪个用户所有的数据。
Long currentId = BaseContext.getCurrentId();
shoppingCart.setUserId(currentId);
// 查询当前菜品或套餐是否已经在购物车中。(一个菜品用户点了多份)
LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>(