Commit 3bbd58e6 by 孙昱

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

parent 5727d012
...@@ -37,17 +37,17 @@ public class ShoppingCartConstant { ...@@ -37,17 +37,17 @@ public class ShoppingCartConstant {
* 商品价格校验失败 * 商品价格校验失败
*/ */
public static final int PRODUCT_PRICE_CHANGE = 102; 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 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 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 { ...@@ -212,56 +212,52 @@ public interface ShoppingCartBaseService {
ValiadShopProductResponse validateResult = valiadResponse.getData(); ValiadShopProductResponse validateResult = valiadResponse.getData();
CartGoodsStates cartGoodsStates = new CartGoodsStates(); 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())){ 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++) { for (int i = 0; i < validateResult.getFailureList().size(); i++) {
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true); checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i); ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i);
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) { for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
String spuName = !productInfoMap.isEmpty() ? productInfoMap.get(cartGoods.getSkuId()) : ""; if (cartGoods.getSkuId() == validaProduct.getSkuId()) {
if (PRODUCT_DOWN == validaProduct.getCode()){ String spuName = null == validaProduct.getProductType() ? "" : validaProduct.getProductType().getName();
cartGoodsStates.setHasInvalidGoods(true); if (PRODUCT_DOWN == validaProduct.getCode()) {
cartGoods.setCartGoodsUid(null); invalidSpu.add(spuName);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(CART_PRODUCT_INVALID_STATE.replace("$spuName",spuName)); cartGoodsStates.setHasInvalidGoods(true);
break; cartGoods.setCartGoodsUid(null);
} break;
if (PRODUCT_NOTFOUND == validaProduct.getCode()){ }
cartGoodsStates.setHasInvalidGoods(true); if (PRODUCT_NOTFOUND == validaProduct.getCode()) {
cartGoods.setCartGoodsUid(null); notFoundSpu.add(spuName);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(CART_PRODUCT_NOT_FOUND.replace("$spuName",spuName)); cartGoodsStates.setHasInvalidGoods(true);
break; cartGoods.setCartGoodsUid(null);
} 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 (PRODUCT_PRICE_CHANGE == validaProduct.getCode()) { 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()); List<ProductBeanDTO> productList = validateResult.getFailureList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList); 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); setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE);
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid())); 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