use of com.whoiszxl.entity.Cart in project shopzz by whoiszxl.
the class CartServiceImpl method addProductToCart.
@Override
public boolean addProductToCart(CartAddQuery cartAddQuery) {
Integer quantity = cartAddQuery.getQuantity();
Long skuId = cartAddQuery.getSkuId();
// 1. 通过会员ID和SKU ID查询购物车表中是否存在这条记录
long memberId = StpUtil.getLoginIdAsLong();
LambdaQueryWrapper<Cart> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Cart::getMemberId, memberId);
queryWrapper.eq(Cart::getSkuId, skuId);
Cart cart = this.getOne(queryWrapper);
boolean saveOrUpdateFlag = false;
if (cart == null) {
// 2. 购物车不存在,新增
Cart addCart = new Cart();
addCart.setMemberId(memberId);
addCart.setSkuId(skuId);
addCart.setQuantity(quantity);
CompletableFuture<Void> future1 = CompletableFuture.runAsync(() -> {
// 3. 查询SKU信息
ResponseResult<SkuDTO> skuResult = productFeignClient.getSkuInfoBySkuId(skuId);
SkuDTO sku = skuResult.getData();
addCart.setProductId(sku.getProductId());
addCart.setSkuName(sku.getSkuName());
addCart.setSkuPic(sku.getImgUrl());
addCart.setPrice(sku.getSalePrice());
addCart.setChecked(CartCheckConstants.CHECKED);
addCart.setStatus(StatusEnum.OPEN.getCode());
}, executor);
// TODO 查询销售属性
addCart.setSaleAttr("todo");
try {
CompletableFuture.allOf(future1).get();
} catch (Exception e) {
log.error("新增购物车失败", e);
}
saveOrUpdateFlag = this.save(addCart);
} else {
// 3. 购物车存在,更新
cart.setQuantity(cart.getQuantity() + cartAddQuery.getQuantity());
saveOrUpdateFlag = this.updateById(cart);
}
return saveOrUpdateFlag;
}
use of com.whoiszxl.entity.Cart in project shopzz by whoiszxl.
the class CartServiceImpl method updateQuantity.
@Override
public Boolean updateQuantity(long memberId, Long cartId, Integer updateQuantity) {
// 1. 获取购物车,并进行基础校验
Cart cart = this.getById(cartId);
if (cart != null && cart.getMemberId().equals(memberId)) {
// 2. 更新数量
cart.setQuantity(cart.getQuantity() + updateQuantity);
this.updateById(cart);
return true;
}
return false;
}
Aggregations