feat: 临时菜实现

This commit is contained in:
张松 2024-11-19 09:40:44 +08:00
parent 432e382d6b
commit 2f521d5dc9
2 changed files with 24 additions and 17 deletions

View File

@ -10,9 +10,7 @@ import javax.validation.constraints.NotNull;
public class UpdateCartDTO {
@NotNull
private Integer cartId;
@NotNull
private Integer skuId;
@NotNull
private Integer productId;
@NotNull
private Integer shopId;

View File

@ -429,23 +429,30 @@ public class TbShopTableServiceImpl implements TbShopTableService {
cashierCartRepository.deleteById(updateCartDTO.getCartId());
return null;
}
TbProduct product = null;
if (updateCartDTO.getProductId() != null && updateCartDTO.getSkuId() != null) {
TbProductSku productSku = productMapper.selectSkuByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getSkuId());
TbProduct product = productMapper.selectByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getProductId());
product = productMapper.selectByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getProductId());
if (product == null || productSku == null) {
throw new BadRequestException("商品不存在或已下架, id: " + updateCartDTO.getSkuId());
}
tbCashierCart.setCoverImg(product.getCoverImg());
tbCashierCart.setCreatedAt(System.currentTimeMillis());
tbCashierCart.setIsSku(product.getTypeEnum());
tbCashierCart.setName(product.getName());
tbCashierCart.setProductId(String.valueOf(product.getId()));
tbCashierCart.setSalePrice(productSku.getSalePrice());
tbCashierCart.setSkuId(productSku.getId().toString());
tbCashierCart.setCategoryId(product.getCategoryId());
}
tbCashierCart.setCreatedAt(System.currentTimeMillis());
tbCashierCart.setTradeDay(DateUtils.getDay());
tbCashierCart.setStatus("create");
tbCashierCart.setSalePrice(productSku.getSalePrice());
tbCashierCart.setTotalAmount(new BigDecimal(updateCartDTO.getNum()).multiply(productSku.getSalePrice()));
tbCashierCart.setSalePrice(tbCashierCart.getSalePrice());
tbCashierCart.setTotalAmount(new BigDecimal(updateCartDTO.getNum()).multiply(tbCashierCart.getSalePrice()));
tbCashierCart.setNote(updateCartDTO.getNote());
if (updateCartDTO.getIsPack() != null) {
@ -453,7 +460,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
tbCashierCart.setPackFee(BigDecimal.ZERO);
tbCashierCart.setTotalAmount(tbCashierCart.getSalePrice().multiply(BigDecimal.valueOf(updateCartDTO.getNum())));
} else {
if (product != null) {
tbCashierCart.setPackFee(new BigDecimal(updateCartDTO.getNum()).multiply(product.getPackFee()));
}
tbCashierCart.setTotalAmount(tbCashierCart.getSalePrice().multiply(BigDecimal.valueOf(updateCartDTO.getNum()))
.add(tbCashierCart.getPackFee()));
}
@ -467,7 +476,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
tbCashierCart.setTotalNumber(updateCartDTO.getNum());
tbCashierCart.setNumber(updateCartDTO.getNum());
tbCashierCart.setCategoryId(product.getCategoryId());
tbCashierCartMapper.updateById(tbCashierCart);
if (tbCashierCart.getOrderId() != null && StrUtil.isNotBlank(updateCartDTO.getNote())) {
@ -1707,7 +1715,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
private void updateCartAndStock(List<TbCashierCart> newAddCashierCarts, TbOrderInfo orderInfo, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
// 更新购物车记录的orderId
for (TbCashierCart cashierCart : newAddCashierCarts) {
if (!"-999".equals(cashierCart.getProductId())) {
// 不为座位费临时菜扣除库存
if (!"-999".equals(cashierCart.getProductId()) && cashierCart.getIsTemporary() != null && cashierCart.getIsTemporary() == 0) {
TbProduct product = productMapper.selectById(cashierCart.getProductId());
TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);