Commit 6ed92f00 by 周晓航

更新购物车数量接口 新增该操作校验

parent e8ced6be
...@@ -627,22 +627,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -627,22 +627,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
ShoppingCartConvertAdapter.setClassification(cartGoods, getProductsVo); ShoppingCartConvertAdapter.setClassification(cartGoods, getProductsVo);
GetProductStockRequestDto requestDto = new GetProductStockRequestDto(); this.commonItemVerfity(BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode(),
requestDto.setChannel(BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode()); partnerId,
requestDto.setPartnerId(partnerId); storeId,
requestDto.setStoreId(storeId); Collections.singletonList(Long.parseLong(cartGoods.getGoodsId())),
requestDto.setProductIds(Collections.singletonList(Long.parseLong(cartGoods.getGoodsId()))); qty);
GetProductStockResponseDto availableStocks = stockClient.getAvailableStocks(requestDto);
if (availableStocks == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(availableStocks.getCode())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
}
int stock = CollectionUtils.isEmpty(availableStocks.getResult()) || availableStocks.getResult().get(0).getQty() == null ? 0 :
availableStocks.getResult().get(0).getQty();
if (stock <= 0) {
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
} else if (stock < qty) {
throw new BizServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE, "仅剩" + stock + "件库存了");
}
} }
...@@ -2362,12 +2352,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2362,12 +2352,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (!isLimit) { if (!isLimit) {
return; return;
} }
this.commonItemVerfity(BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode(),
addShoppingCartGoodsRequestVo.getPartnerId(),
addShoppingCartGoodsRequestVo.getShopId(),
productIds,
qty);
}
private void commonItemVerfity(String channel, String partnerId, String storeId, List<Long> productIds, Integer qty){
GetProductStockRequestDto requestDto = new GetProductStockRequestDto(); GetProductStockRequestDto requestDto = new GetProductStockRequestDto();
requestDto.setChannel(BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode()); requestDto.setChannel(BusinessTypeEnum.getByType(channel);
requestDto.setPartnerId(addShoppingCartGoodsRequestVo.getPartnerId()); requestDto.setPartnerId(partnerId);
requestDto.setStoreId(addShoppingCartGoodsRequestVo.getShopId()); requestDto.setStoreId(storeId);
requestDto.setProductIds(productIds); requestDto.setProductIds(productIds);
GetProductStockResponseDto availableStocks = stockClient.getAvailableStocks(requestDto); GetProductStockResponseDto availableStocks = stockClient.getAvailableStocks(requestDto);
this.finalVerfity(availableStocks, qty);
}
private void finalVerfity(GetProductStockResponseDto availableStocks, Integer qty) {
// 商品服务 返回null 或者 qty=null 表示不限制库存 // 商品服务 返回null 或者 qty=null 表示不限制库存
if (Objects.isNull(availableStocks)) { if (Objects.isNull(availableStocks)) {
return; return;
...@@ -2386,7 +2390,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2386,7 +2390,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} else if (stock < qty) { } else if (stock < qty) {
throw new BizServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE, "仅剩" + stock + "件库存了"); throw new BizServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE, "仅剩" + stock + "件库存了");
} }
} }
/** /**
...@@ -3507,18 +3510,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -3507,18 +3510,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} }
} }
if (availableStocks != null && !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(availableStocks.getCode())) { this.finalVerfity(availableStocks, qty);
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
}
if (availableStocks != null && ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(availableStocks.getCode()) &&
(CollectionUtils.isEmpty(availableStocks.getResult()) || availableStocks.getResult().get(0).getQty() == null
|| availableStocks.getResult().get(0).getQty() < qty)) {
Integer stock = 0;
if (!CollectionUtils.isEmpty(availableStocks.getResult()) && (stock = availableStocks.getResult().get(0).getQty()) > 0) {
throw new BizServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE, "仅剩" + stock + "件库存了");
}
throw new ServiceException(ResponseResult.SHOPPING_CART_STOCK_NOT_HAVE);
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment