上一篇:代码解析之添加购物车(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;
//用户id
private Long userId;
//菜品id
private Long dishId;
//套餐id
private Long setmealId;
//口味
private String dishFlavor;
//数量
private Integer number;
//金额
private BigDecimal amount;
//图片
private String image;
private LocalDateTime createTime;
}