Commit 5bad4a62 by 孙昱

sunyu::update::fix bug about multipleSpec add singleSpec product and material

parent e21da78e
...@@ -945,56 +945,60 @@ public class ShoppingCartConvertAdapter { ...@@ -945,56 +945,60 @@ public class ShoppingCartConvertAdapter {
if (CollectionUtils.isNotEmpty(spuProduct.getSkuList())) { if (CollectionUtils.isNotEmpty(spuProduct.getSkuList())) {
for (ProductTypeBeanDTO.SkuProductBean skuProductBean : spuProduct.getSkuList()) { for (ProductTypeBeanDTO.SkuProductBean skuProductBean : spuProduct.getSkuList()) {
if (CollectionUtils.isNotEmpty(skuProductBean.getAdditionalGroupList())) { if (CollectionUtils.isNotEmpty(skuProductBean.getAdditionalGroupList())) {
//提取加料信息
List<String> materialSpu = new ArrayList<>();
List<ProductTypeBeanDTO.ProductGroupType.GroupDetailType> groupDetail = new ArrayList<>();
for (ProductTypeBeanDTO.ProductGroupType productGroupType : skuProductBean.getAdditionalGroupList()) { for (ProductTypeBeanDTO.ProductGroupType productGroupType : skuProductBean.getAdditionalGroupList()) {
groupDetail.addAll(productGroupType.getGroupDetail()); if (skuProductBean.getSkuId().equals(cartGoods.getGoodsId()) && null != productGroupType){
} //提取加料信息
HashMap<String, ProductTypeBeanDTO.ProductGroupType.GroupDetailType> materialHash = new HashMap<>(); List<String> materialSpu = new ArrayList<>();
for (ProductTypeBeanDTO.ProductGroupType.GroupDetailType groupDetailType : groupDetail) { List<ProductTypeBeanDTO.ProductGroupType.GroupDetailType> groupDetail = new ArrayList<>();
materialHash.put(groupDetailType.getProductId(), groupDetailType); groupDetail.addAll(productGroupType.getGroupDetail());
materialSpu.add(groupDetailType.getProductId());
} HashMap<String, ProductTypeBeanDTO.ProductGroupType.GroupDetailType> materialHash = new HashMap<>();
//加车小料和商品小料没有交集则提示商品信息有异常 for (ProductTypeBeanDTO.ProductGroupType.GroupDetailType groupDetailType : groupDetail) {
if (CollectionUtils.isEmpty(cartGoods.getProductMaterialList().stream().filter(e -> materialSpu.contains(e.getSpuId())).collect(Collectors.toList()))) { materialHash.put(groupDetailType.getProductId(), groupDetailType);
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()); materialSpu.add(groupDetailType.getProductId());
cartGoods.setProductMaterialList(new ArrayList<>()); }
return;
} //加车小料和商品小料没有交集则提示商品信息有异常
ArrayList<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods> materialGoodsList = new ArrayList<>(); if (CollectionUtils.isEmpty(cartGoods.getProductMaterialList().stream().filter(e -> materialSpu.contains(e.getSpuId())).collect(Collectors.toList()))) {
Long materialAmount = 0L; cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType());
Long originalMaterAmount = 0L; cartGoods.setProductMaterialList(new ArrayList<>());
String materialSubName = cartGoods.getSubName(); return;
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods materialGoods : cartGoods.getProductMaterialList()) { }
ProductTypeBeanDTO.ProductGroupType.GroupDetailType detail = materialHash.get(materialGoods.getSpuId()); ArrayList<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods> materialGoodsList = new ArrayList<>();
if (detail == null) continue; Long materialAmount = 0L;
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods material = new com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods(); Long originalMaterAmount = 0L;
material.setSpuName(detail.getProductName()); String materialSubName = cartGoods.getSubName();
material.setSpuId(detail.getProductId()); for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods materialGoods : cartGoods.getProductMaterialList()) {
//行单价 \ 行总价 ProductTypeBeanDTO.ProductGroupType.GroupDetailType detail = materialHash.get(materialGoods.getSpuId());
material.setFinalPrice(detail.getProductFinalPrice().longValue()); if (detail == null) continue;
material.setAmount(detail.getProductFinalPrice().longValue() * cartGoods.getQty()); com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods material = new com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods();
//原行单价*数量 material.setSpuName(detail.getProductName());
material.setOriginalAmount(detail.getProductFinalPrice().longValue() * cartGoods.getQty()); material.setSpuId(detail.getProductId());
material.setOriginalPrice(detail.getProductFinalPrice().longValue()); //行单价 \ 行总价
material.setCustomerCode(materialGoods.getCustomerCode()); material.setFinalPrice(detail.getProductFinalPrice().longValue());
materialGoodsList.add(material); material.setAmount(detail.getProductFinalPrice().longValue() * cartGoods.getQty());
materialAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty(); //原行单价*数量
originalMaterAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty(); material.setOriginalAmount(detail.getProductFinalPrice().longValue() * cartGoods.getQty());
; material.setOriginalPrice(detail.getProductFinalPrice().longValue());
materialSubName = materialSubName + "/" + detail.getProductName(); material.setCustomerCode(materialGoods.getCustomerCode());
materialGoodsList.add(material);
materialAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty();
originalMaterAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty();
;
materialSubName = materialSubName + "/" + detail.getProductName();
}
//设置购物车行记录
cartGoods.setProductMaterialList(materialGoodsList);
//加料行记录现价总价
cartGoods.setMaterialAmount(materialAmount);
//加料行记录原价总价
cartGoods.setOriginalMaterialAmount(originalMaterAmount);
}else{
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType());
cartGoods.setProductMaterialList(new ArrayList<>());
return;
}
} }
//设置购物车行记录
cartGoods.setProductMaterialList(materialGoodsList);
//加料行记录现价总价
cartGoods.setMaterialAmount(materialAmount);
//加料行记录原价总价
cartGoods.setOriginalMaterialAmount(originalMaterAmount);
}else{
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType());
cartGoods.setProductMaterialList(new ArrayList<>());
return;
} }
} }
} }
......
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