Commit 3bbd58e6 by 孙昱

sunyu::update::reconstruct code block for checkout shoppingcartInfo

parent 5727d012
......@@ -37,17 +37,17 @@ public class ShoppingCartConstant {
* 商品价格校验失败
*/
public static final int PRODUCT_PRICE_CHANGE = 102;
public static final String CART_PRODUCT_PRICE_CHANGE = "您选择的【$spuName】商品价格将发生变化";
public static final String CART_PRODUCT_PRICE_CHANGE = "您选择的【$spuName】商品价格将发生变化;";
/**
* 商品不存在
*/
public static final int PRODUCT_NOTFOUND= 103;
public static final String CART_PRODUCT_NOT_FOUND = "您选择的【$spuName】商品不在当前门店菜单中";
public static final String CART_PRODUCT_NOT_FOUND = "您选择的【$spuName】商品不在当前门店菜单中;";
/**
* 商品状态校验失败
*/
public static final int PRODUCT_DOWN= 104;
public static final String CART_PRODUCT_INVALID_STATE = "您选择的【$spuName】商品已失效";
public static final String CART_PRODUCT_INVALID_STATE = "您选择的【$spuName】商品已失效;";
}
......@@ -212,56 +212,52 @@ public interface ShoppingCartBaseService {
ValiadShopProductResponse validateResult = valiadResponse.getData();
CartGoodsStates cartGoodsStates = new CartGoodsStates();
Map<String,String> productInfoMap = new HashMap<>();
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
productInfoMap.put(cartGoods.getSkuId(),cartGoods.getSkuName());
}
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if (CollectionUtils.isNotEmpty(validateResult.getFailureList())){
List<String> invalidSpu = new ArrayList<>();
List<String> notFoundSpu = new ArrayList<>();
List<String> changePriceSpu = new ArrayList<>();
for (int i = 0; i < validateResult.getFailureList().size(); i++) {
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i);
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
String spuName = !productInfoMap.isEmpty() ? productInfoMap.get(cartGoods.getSkuId()) : "";
if (PRODUCT_DOWN == validaProduct.getCode()){
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(CART_PRODUCT_INVALID_STATE.replace("$spuName",spuName));
break;
}
if (PRODUCT_NOTFOUND == validaProduct.getCode()){
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(CART_PRODUCT_NOT_FOUND.replace("$spuName",spuName));
break;
}
}
}
if (null == checkCartRequest.getShoppingCartGoodsResponseVo() || StringUtils.isEmpty(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg()) ||
checkCartRequest.getShoppingCartGoodsResponseVo().getChanged()) {
for (int i = 0; i < validateResult.getFailureList().size(); i++) {
cartGoodsStates.setPriceChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i);
List<String> spuNameList = new ArrayList<>();
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
if (cartGoods.getSkuId() == validaProduct.getSkuId()) {
String spuName = null == validaProduct.getProductType() ? "" : validaProduct.getProductType().getName();
if (PRODUCT_DOWN == validaProduct.getCode()) {
invalidSpu.add(spuName);
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_NOTFOUND == validaProduct.getCode()) {
notFoundSpu.add(spuName);
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_PRICE_CHANGE == validaProduct.getCode()) {
spuNameList.add(cartGoods.getSkuId().equals(validaProduct.getSkuId()) ? cartGoods.getSpuName() : "");
changePriceSpu.add(spuName);
List<ProductBeanDTO> productList = validateResult.getFailureList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
}
}
if (spuNameList.size() > 2){
spuNameList.remove(spuNameList.size()-1);
}
String toastMsg = StringUtils.isEmpty(checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg()) ? "" : checkCartRequest.getShoppingCartGoodsResponseVo().getToastMsg();
if (CollectionUtils.isNotEmpty(spuNameList)){
String spuName = spuNameList.size()>1 ? StringUtils.join(spuNameList,",").concat("等") : StringUtils.join(spuNameList,",") ;
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(toastMsg.concat(CART_PRODUCT_PRICE_CHANGE.replace("$spuName", spuName)));
}
}
}
String toastMsg = "";
if (CollectionUtils.isNotEmpty(invalidSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_INVALID_STATE.replace("$spuName",StringUtils.join(invalidSpu,",")));
}
if (CollectionUtils.isNotEmpty(notFoundSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_NOT_FOUND.replace("$spuName",StringUtils.join(notFoundSpu,",")));
}
if (CollectionUtils.isNotEmpty(changePriceSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_NOT_FOUND.replace("$spuName",StringUtils.join(changePriceSpu,",")));
}
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(toastMsg);
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE);
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
}
......
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