|
@@ -20,6 +20,7 @@ import org.springframework.util.StringUtils;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -74,7 +75,7 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
|
|
|
cartItem.setProductBrand(pmsProduct.getName());
|
|
|
cartItem.setProductSn(pmsProduct.getProductSn());
|
|
|
if (cartItem.getProductSkuId() != null) {
|
|
|
- if (pmsSkuStock.getStock() < cartItem.getQuantity()) {
|
|
|
+ if (pmsSkuStock.getStock() - pmsSkuStock.getLockStock() < cartItem.getQuantity()) {
|
|
|
throw new BizException("库存不足");
|
|
|
}
|
|
|
cartItem.setProductSkuCode(pmsSkuStock.getSkuCode());
|
|
@@ -86,7 +87,7 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
|
|
|
cartItemMapper.insert(cartItem);
|
|
|
return cartItem;
|
|
|
} else {
|
|
|
- if (pmsSkuStock.getStock() < existCartItem.getQuantity() + cartItem.getQuantity()) {
|
|
|
+ if (pmsSkuStock.getStock() - pmsSkuStock.getLockStock() < existCartItem.getQuantity() + cartItem.getQuantity()) {
|
|
|
throw new BizException("库存不足");
|
|
|
}
|
|
|
cartItem.setModifyDate(new Date());
|
|
@@ -117,7 +118,24 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
|
|
|
public List<OmsCartItem> list(Long memberId) {
|
|
|
OmsCartItemExample example = new OmsCartItemExample();
|
|
|
example.createCriteria().andDeleteStatusEqualTo(0).andMemberIdEqualTo(memberId).andHiddenEqualTo(0);
|
|
|
- return cartItemMapper.selectByExample(example);
|
|
|
+ List<OmsCartItem> omsCartItems = cartItemMapper.selectByExample(example);
|
|
|
+ if (CollectionUtils.isEmpty(omsCartItems)) {
|
|
|
+ return omsCartItems;
|
|
|
+ }
|
|
|
+ List<Long> skuIds = omsCartItems.stream().map(OmsCartItem::getProductSkuId).collect(Collectors.toList());
|
|
|
+ PmsSkuStockExample skuExample = new PmsSkuStockExample();
|
|
|
+ skuExample.createCriteria().andIdIn(skuIds);
|
|
|
+ List<PmsSkuStock> pmsSkuStocks = skuStockMapper.selectByExample(skuExample);
|
|
|
+ Map<Long, List<PmsSkuStock>> collect =
|
|
|
+ pmsSkuStocks.stream().collect(Collectors.groupingBy(PmsSkuStock::getId));
|
|
|
+ for (OmsCartItem omsCartItem : omsCartItems) {
|
|
|
+ List<PmsSkuStock> pmsSkuStocks1 = collect.get(omsCartItem.getProductSkuId());
|
|
|
+ if (!CollectionUtils.isEmpty(pmsSkuStocks1)) {
|
|
|
+ omsCartItem.setStock(pmsSkuStocks1.get(0).getStock());
|
|
|
+ omsCartItem.setLockStock(pmsSkuStocks1.get(0).getLockStock());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return omsCartItems;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -152,14 +170,15 @@ public class OmsCartItemServiceImpl implements OmsCartItemService {
|
|
|
|
|
|
PmsSkuStock pmsSkuStock = skuStockMapper.selectByPrimaryKey(omsCartItem.getProductSkuId());
|
|
|
|
|
|
- if (pmsSkuStock.getStock() < quantity) {
|
|
|
- throw new BizException("库存不足");
|
|
|
+ if (pmsSkuStock.getStock() - pmsSkuStock.getLockStock() < quantity) {
|
|
|
+ return pmsSkuStock.getStock() - pmsSkuStock.getLockStock();
|
|
|
}
|
|
|
|
|
|
OmsCartItemExample example = new OmsCartItemExample();
|
|
|
example.createCriteria().andDeleteStatusEqualTo(0)
|
|
|
.andIdEqualTo(id).andMemberIdEqualTo(memberId);
|
|
|
- return cartItemMapper.updateByExampleSelective(cartItem, example);
|
|
|
+ cartItemMapper.updateByExampleSelective(cartItem, example);
|
|
|
+ return pmsSkuStock.getStock() - pmsSkuStock.getLockStock();
|
|
|
}
|
|
|
|
|
|
@Override
|