Commit 2bac8396 by 徐康

过滤券商品

parent 01990363
...@@ -248,116 +248,6 @@ public interface ShoppingCartBaseService { ...@@ -248,116 +248,6 @@ public interface ShoppingCartBaseService {
} }
} }
default BaseResponse<CheckCartRequest> checkAllCartGoodsForMCoffee(CheckCartRequest checkCartRequest) {
ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class);
ProductService productService = SDKCommonBaseContextWare.getBean(ProductService.class);
try {
ValidateShopProductRequest validateShopProductRequest = shoppingCartAdapter.getValidateShopProductRequest(checkCartRequest);
com.freemud.application.sdk.api.base.BaseResponse<ValiadShopProductResponse> valiadResponse = productService.validateShopProductAboutReason(validateShopProductRequest);
if (valiadResponse == null || !CartResponseConstant.SUCCESS.getCode().equals(valiadResponse.getCode()) || valiadResponse.getData()==null) {
checkCartRequest.getCartGoodsList().clear();
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(valiadResponse.getMessage(),checkCartRequest);
}
ValiadShopProductResponse validateResult = valiadResponse.getData();
CartGoodsStates cartGoodsStates = new CartGoodsStates();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
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++) {
ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i);
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
if (cartGoods.getSkuId().equals(validaProduct.getSkuId())) {
String spuName = null == validaProduct.getProductType() ? (StringUtils.isNotEmpty(cartGoods.getSkuName()) ? cartGoods.getSkuName() :
StringUtils.isNotEmpty(cartGoods.getName()) ? cartGoods.getName() : "") : validaProduct.getProductType().getName();
if (PRODUCT_DOWN == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)){
invalidSpu.add(spuName);
}
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_NOTFOUND == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)) {
notFoundSpu.add(spuName);
}
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_PRICE_CHANGE == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)) {
changePriceSpu.add(spuName);
}
List<ProductBeanDTO> productList = validateResult.getFailureList().stream().filter(f-> f.getCode() == PRODUCT_PRICE_CHANGE).map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
break;
}
}
}
}
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_PRICE_CHANGE.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()));
}
List<ProductBeanDTO> productList = validateResult.getSuccessList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
// 当goodsId为空或商品是商品券时直接跳过
if (StringUtils.isEmpty(cartGoods.getGoodsId()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.COUPON_GOODS.getGoodsType())) {
continue;
}
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
}
//校验商品券是否有当前点餐方式
cartGoodsStates = updateSpqCartGoodsInfo(checkCartRequest.getCartGoodsList(), checkCartRequest.getOrderWay(), checkCartRequest.getPartnerId(), checkCartRequest.getTrackingNo(), cartGoodsStates
, checkCartRequest.getStoreId());
// 点餐方式改变商品券发生变动
if (cartGoodsStates != null && cartGoodsStates.isOrderWayFlag()) {
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.ORDER_WAY_CHANGE);
}
//若商品详情赋值有异常,直接移除购物车
if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> StringUtils.isEmpty(cart.getCartGoodsUid()))) {
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
}
// if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) {
// checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()));
// checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
// checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_MATERIAL_ERROR);
// }
return CartResponseUtil.success(checkCartRequest);
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", checkCartRequest.getTrackingNo(), e.getMessage(), "checkAllCartGoods", checkCartRequest, e, Level.ERROR);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(e.getMessage(),checkCartRequest);
}
}
/** /**
* 更新购物车详细信息 * 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架) * 并check购物车中商品是否价格变更、是否非法(例如商品下架)
......
...@@ -2418,6 +2418,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -2418,6 +2418,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
if(ProductTypeEnum.getVirtualProductType().contains(o.getProductType())) { if(ProductTypeEnum.getVirtualProductType().contains(o.getProductType())) {
continue; continue;
} }
if(CollectionUtils.isNotEmpty(o.getDiscountList()) && o.getDiscountList().stream()
.filter(p -> OldOrderAccountType.PRODUCT_COUPON.getCode().equals(p.getDiscountType())
|| OldOrderAccountType.EVM_PRODUCT_COUPON.getCode().equals(p.getDiscountType())).findAny().isPresent()) {
continue;
}
RecentGoodsInfoVo recentGoodsInfoVo = new RecentGoodsInfoVo(); RecentGoodsInfoVo recentGoodsInfoVo = new RecentGoodsInfoVo();
recentGoodsInfoVo.setSpuId(o.getProductId()); recentGoodsInfoVo.setSpuId(o.getProductId());
recentGoodsInfoVo.setSpuName(o.getProductName()); recentGoodsInfoVo.setSpuName(o.getProductName());
......
...@@ -18,6 +18,8 @@ public class ShoppingCartConstant { ...@@ -18,6 +18,8 @@ public class ShoppingCartConstant {
public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品"; public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品"; public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品";
public final static String SHOPPING_CART_GOODS_CHANGE = "因商家变更了商品,导致选购失效,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算"; public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算";
public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦"; public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦";
......
...@@ -254,6 +254,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -254,6 +254,7 @@ public class ShoppingCartMCoffeeServiceImpl {
BaseResponse baseResponse = null; BaseResponse baseResponse = null;
ShoppingCartGoodsResponseVo result = new ShoppingCartGoodsResponseVo(); ShoppingCartGoodsResponseVo result = new ShoppingCartGoodsResponseVo();
Map<String, List<String>> allToastMsgMap = new HashMap<>(); Map<String, List<String>> allToastMsgMap = new HashMap<>();
String toastMsg = "";
for (BatchGoodsInfoVo goodsInfo : requestVo.getGoodsInfos()) { for (BatchGoodsInfoVo goodsInfo : requestVo.getGoodsInfos()) {
baseResponse = addGoods(convertBatchAdd2SingleAdd(goodsInfo,requestVo)); baseResponse = addGoods(convertBatchAdd2SingleAdd(goodsInfo,requestVo));
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR,baseResponse.getCode())){ if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR,baseResponse.getCode())){
...@@ -262,6 +263,14 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -262,6 +263,14 @@ public class ShoppingCartMCoffeeServiceImpl {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = (ShoppingCartGoodsResponseVo) baseResponse.getResult(); ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = (ShoppingCartGoodsResponseVo) baseResponse.getResult();
if(null != shoppingCartGoodsResponseVo && null != shoppingCartGoodsResponseVo.getChanged() && shoppingCartGoodsResponseVo.getChanged()) { if(null != shoppingCartGoodsResponseVo && null != shoppingCartGoodsResponseVo.getChanged() && shoppingCartGoodsResponseVo.getChanged()) {
result.setChanged(true); result.setChanged(true);
if(StringUtils.isNotBlank(shoppingCartGoodsResponseVo.getToastMsg())
&& ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS.equals(shoppingCartGoodsResponseVo.getToastMsg())) {
allToastMsgMap.put(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS, Arrays.asList("1"));
}
if(StringUtils.isNotBlank(shoppingCartGoodsResponseVo.getToastMsg())
&& ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE.equals(shoppingCartGoodsResponseVo.getToastMsg())) {
allToastMsgMap.put(ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE, Arrays.asList("1"));
}
if(null != shoppingCartGoodsResponseVo.getToastMsgMap() && shoppingCartGoodsResponseVo.getToastMsgMap().size() > 0) { if(null != shoppingCartGoodsResponseVo.getToastMsgMap() && shoppingCartGoodsResponseVo.getToastMsgMap().size() > 0) {
shoppingCartGoodsResponseVo.getToastMsgMap().entrySet().stream().forEach(o -> { shoppingCartGoodsResponseVo.getToastMsgMap().entrySet().stream().forEach(o -> {
if(allToastMsgMap.get(o.getKey()) != null) { if(allToastMsgMap.get(o.getKey()) != null) {
...@@ -274,7 +283,6 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -274,7 +283,6 @@ public class ShoppingCartMCoffeeServiceImpl {
} }
} }
if(null != allToastMsgMap && allToastMsgMap.size() > 0) { if(null != allToastMsgMap && allToastMsgMap.size() > 0) {
String toastMsg = "";
if (CollectionUtils.isNotEmpty(allToastMsgMap.get(CART_PRODUCT_INVALID_STATE))){ if (CollectionUtils.isNotEmpty(allToastMsgMap.get(CART_PRODUCT_INVALID_STATE))){
toastMsg = toastMsg.concat(CART_PRODUCT_INVALID_STATE.replace("$spuName",StringUtils.join(allToastMsgMap.get(CART_PRODUCT_INVALID_STATE),","))); toastMsg = toastMsg.concat(CART_PRODUCT_INVALID_STATE.replace("$spuName",StringUtils.join(allToastMsgMap.get(CART_PRODUCT_INVALID_STATE),",")));
...@@ -292,6 +300,12 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -292,6 +300,12 @@ public class ShoppingCartMCoffeeServiceImpl {
if (CollectionUtils.isNotEmpty(allToastMsgMap.get(COUPON_IS_DISABLE))){ if (CollectionUtils.isNotEmpty(allToastMsgMap.get(COUPON_IS_DISABLE))){
toastMsg = toastMsg.concat(COUPON_IS_DISABLE.replace("$couponName",StringUtils.join(allToastMsgMap.get(COUPON_IS_DISABLE),","))); toastMsg = toastMsg.concat(COUPON_IS_DISABLE.replace("$couponName",StringUtils.join(allToastMsgMap.get(COUPON_IS_DISABLE),",")));
} }
if(CollectionUtils.isNotEmpty(allToastMsgMap.get(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS))) {
toastMsg = toastMsg.concat(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
}
if(CollectionUtils.isNotEmpty(allToastMsgMap.get(ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE))) {
toastMsg = toastMsg.concat(ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE);
}
result.setToastMsg(toastMsg); result.setToastMsg(toastMsg);
result.setToastMsgMap(allToastMsgMap); result.setToastMsgMap(allToastMsgMap);
return ResponseUtil.success(result); return ResponseUtil.success(result);
...@@ -2014,7 +2028,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2014,7 +2028,7 @@ public class ShoppingCartMCoffeeServiceImpl {
if (valiadResponse == null || !CartResponseConstant.SUCCESS.getCode().equals(valiadResponse.getErrcode().toString()) || valiadResponse.getData()==null) { if (valiadResponse == null || !CartResponseConstant.SUCCESS.getCode().equals(valiadResponse.getErrcode().toString()) || valiadResponse.getData()==null) {
checkCartRequest.getCartGoodsList().clear(); checkCartRequest.getCartGoodsList().clear();
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true); checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(com.freemud.sdk.api.assortment.shoppingcart.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS); checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(valiadResponse.getErrmsg(),checkCartRequest); return CartResponseUtil.error(valiadResponse.getErrmsg(),checkCartRequest);
} }
ValiadShopProductResponse validateResult = valiadResponse.getData(); ValiadShopProductResponse validateResult = valiadResponse.getData();
...@@ -2097,8 +2111,8 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2097,8 +2111,8 @@ public class ShoppingCartMCoffeeServiceImpl {
toastMsgMap.put(CART_PRODUCT_PRICE_CHANGE, changePriceSpu); toastMsgMap.put(CART_PRODUCT_PRICE_CHANGE, changePriceSpu);
} }
if (CollectionUtils.isNotEmpty(numErrorSpu)){ if (CollectionUtils.isNotEmpty(numErrorSpu)){
toastMsg = toastMsg.concat("您选择的【$spuName】不满足购买条件".replace("$spuName",StringUtils.join(numErrorSpu,","))); toastMsg = toastMsg.concat(CART_PRODUCT_NOT_MET_CONDITIONS.replace("$spuName",StringUtils.join(numErrorSpu,",")));
toastMsgMap.put("您选择的【$spuName】不满足购买条件", numErrorSpu); toastMsgMap.put(CART_PRODUCT_NOT_MET_CONDITIONS, numErrorSpu);
} }
if (CollectionUtils.isNotEmpty(disableCoupon)){ if (CollectionUtils.isNotEmpty(disableCoupon)){
...@@ -2109,7 +2123,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2109,7 +2123,7 @@ public class ShoppingCartMCoffeeServiceImpl {
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(toastMsg); checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(toastMsg);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsgMap(toastMsgMap); checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsgMap(toastMsgMap);
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), com.freemud.sdk.api.assortment.shoppingcart.constant.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()));
} }
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods cartGoods : checkCartRequest.getCartGoodsList()) { for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
...@@ -2145,7 +2159,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2145,7 +2159,7 @@ public class ShoppingCartMCoffeeServiceImpl {
if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> StringUtils.isEmpty(cart.getCartGoodsUid()))) { if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> StringUtils.isEmpty(cart.getCartGoodsUid()))) {
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid())); checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true); checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(com.freemud.sdk.api.assortment.shoppingcart.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS); checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
} }
// if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) { // if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) {
// checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType())); // checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()));
...@@ -2156,7 +2170,7 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -2156,7 +2170,7 @@ public class ShoppingCartMCoffeeServiceImpl {
} catch (Exception e) { } catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", checkCartRequest.getTrackingNo(), e.getMessage(), "checkAllCartGoods", checkCartRequest, e, Level.ERROR); ErrorLog.printErrorLog("assortment-shoppingcart-sdk", checkCartRequest.getTrackingNo(), e.getMessage(), "checkAllCartGoods", checkCartRequest, e, Level.ERROR);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true); checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(com.freemud.sdk.api.assortment.shoppingcart.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS); checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(e.getMessage(),checkCartRequest); return CartResponseUtil.error(e.getMessage(),checkCartRequest);
} }
} }
......
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