上一篇:代码解析之添加购物车(1)
https://blog.csdn.net/m0_67930426/article/details/135412823
@GetMapping("/list")public R<List<ShoppingCart>> list(){log.info("查看购物车...");LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());queryWrapper.orderByAsc(ShoppingCart::getCreateTime);List<ShoppingCart> list = shoppingCartService.list(queryWrapper);return R.success(list);}
这段代码来自瑞吉外卖项目里的查看购物车方法
相关代码解析如下:
1.
public R<List<ShoppingCart>> list(){
这行代码定义了一个 list 方法,返回一个表示购物车列表的 R<List<ShoppingCart>>对象
2.
log.info("查看购物车...");
使用日志记录(查看购物车........)
3.
LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();
创建一个查询包装器,用于构建查询条件。
4.
queryWrapper.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());
设置查询条件,查找属于当前用户的购物车记录。
package com.nit.reggie.common;/*** 基于ThreadLocal封装工具类,用户保存和获取当前登录用户id*/
public class BaseContext {private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();/*** 设置值* @param id*/public static void setCurrentId(Long id){threadLocal.set(id);}/*** 获取值* @return*/public static Long getCurrentId(){return threadLocal.get();}
}
5.
queryWrapper.orderByAsc(ShoppingCart::getCreateTime);
设置查询排序条件,按创建时间升序排列。
6.
List<ShoppingCart> list = shoppingCartService.list(queryWrapper);
根据查询条件从数据库中获取购物车列表
7.
return R.success(list);
}
返回成功的响应,并包含购物车列表的响应对象。
代码解析之清空购物车(1)
https://blog.csdn.net/m0_67930426/article/details/135418137?spm=1001.2014.3001.5502
shoppingCart
package com.nit.reggie.entity;import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;/*** 购物车*/
@Data
public class ShoppingCart implements Serializable {private static final long serialVersionUID = 1L;private Long id;//名称private String name;//用户idprivate Long userId;//菜品idprivate Long dishId;//套餐idprivate Long setmealId;//口味private String dishFlavor;//数量private Integer number;//金额private BigDecimal amount;//图片private String image;private LocalDateTime createTime;
}