Commit 606aef6d by shuhu.hou@freemud.cn

Merge branch 'feature/20200324_套餐商品组校验' into develop

# Conflicts:
#	assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
parents bb1497c4 02b311c6
......@@ -45,22 +45,24 @@ public class ShoppingCartAdapter {
return request;
}
public ValidateShopProductRequest getValidateShopProductRequest(CheckCartRequest checkCartRequest){
public ValidateShopProductRequest getValidateShopProductRequest(CheckCartRequest checkCartRequest) {
ValidateShopProductRequest validateShopProductRequest = new ValidateShopProductRequest();
validateShopProductRequest.setChannel(checkCartRequest.getMenuType());
validateShopProductRequest.setPartnerId(checkCartRequest.getPartnerId());
validateShopProductRequest.setStoreId(checkCartRequest.getStoreId());
validateShopProductRequest.setProductTypeList(new ArrayList<>());
for (CartGoods cartGoods :checkCartRequest.getCartGoodsList()) {
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
// 过滤非商品券商品
if (cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)){
if (cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) {
continue;
}
ValidateShopProductType productType = new ValidateShopProductType();
productType.setSpuId(cartGoods.getSpuId());
productType.setSkuId(ObjectUtils.equals(GoodsTypeEnum.SKU_GOODS.getGoodsType(),cartGoods.getGoodsType())? cartGoods.getSkuId():cartGoods.getSpuId());
productType.setPrice(cartGoods.getOriginalPrice()==null?0:cartGoods.getOriginalPrice().intValue());
productType.setValidatePrice(productType.getPrice()==0?0:1);
productType.setSkuId(ObjectUtils.equals(GoodsTypeEnum.SKU_GOODS.getGoodsType(), cartGoods.getGoodsType()) ? cartGoods.getSkuId() : cartGoods.getSpuId());
// 应产品要求
// 普通商品,取商品的finalePrice(普通商品售价);套餐商品,取originalPrice(套餐价格)
productType.setPrice(cartGoods.getFinalPrice() == null ? 0 : cartGoods.getFinalPrice().intValue());
productType.setValidatePrice(productType.getPrice() == 0 ? 0 : 1);
productType.setValidateAttribute(1);
productType.setValidateStatuses(Arrays.asList(2));
productType.setUuid(cartGoods.getCartGoodsUid());
......@@ -74,10 +76,10 @@ public class ShoppingCartAdapter {
return validateShopProductRequest;
}
public List<ProductAttributeValueType> getAttributes( List<CartGoods.CartGoodsExtra> extra){
List<ProductAttributeValueType> attributeValueTypes=new ArrayList<>();
if (CollectionUtils.isNotEmpty(extra)){
for (CartGoods.CartGoodsExtra cartGoodsExtra :extra) {
public List<ProductAttributeValueType> getAttributes(List<CartGoods.CartGoodsExtra> extra) {
List<ProductAttributeValueType> attributeValueTypes = new ArrayList<>();
if (CollectionUtils.isNotEmpty(extra)) {
for (CartGoods.CartGoodsExtra cartGoodsExtra : extra) {
ProductAttributeValueType productAttributeValueType = new ProductAttributeValueType();
productAttributeValueType.setAttributeId(cartGoodsExtra.getAttributeId());
productAttributeValueType.setAttributeValue(cartGoodsExtra.getAttributeName());
......@@ -87,14 +89,14 @@ public class ShoppingCartAdapter {
return attributeValueTypes;
}
public List<ValidateSkuProductType> getValidateSkuProductType(List<CartGoods.ComboxGoods> productComboList){
List<ValidateSkuProductType> result=new ArrayList<>();
if (CollectionUtils.isNotEmpty(productComboList)){
for (CartGoods.ComboxGoods comboxGoods :productComboList) {
public List<ValidateSkuProductType> getValidateSkuProductType(List<CartGoods.ComboxGoods> productComboList) {
List<ValidateSkuProductType> result = new ArrayList<>();
if (CollectionUtils.isNotEmpty(productComboList)) {
for (CartGoods.ComboxGoods comboxGoods : productComboList) {
ValidateSkuProductType validateSkuProductType = new ValidateSkuProductType();
validateSkuProductType.setProductId(comboxGoods.getGoodsId());
validateSkuProductType.setPrice(comboxGoods.getOriginalPrice()==null?0:comboxGoods.getOriginalPrice().intValue());
validateSkuProductType.setMarkUpPrice(comboxGoods.getFinalPrice()==null?0:comboxGoods.getFinalPrice().intValue());
validateSkuProductType.setPrice(comboxGoods.getOriginalPrice() == null ? 0 : comboxGoods.getOriginalPrice().intValue());
validateSkuProductType.setMarkUpPrice(comboxGoods.getFinalPrice() == null ? 0 : comboxGoods.getFinalPrice().intValue());
validateSkuProductType.setQty(comboxGoods.getQty());
validateSkuProductType.setAttributeList(getAttributes(comboxGoods.getExtra()));
validateSkuProductType.setProductGroupId(comboxGoods.getProductGroupId());
......@@ -239,10 +241,10 @@ public class ShoppingCartAdapter {
cartGoodsStates.setPriceChanged(true);
}
cartGoods.setOriginalPrice(newOrigOriginalPrice);
cartGoods.setOriginalAmount(newOrigOriginalPrice*cartGoods.getQty());
cartGoods.setAmount(newOrigOriginalPrice*cartGoods.getQty());
cartGoods.setOriginalAmount(newOrigOriginalPrice * cartGoods.getQty());
cartGoods.setAmount(newOrigOriginalPrice * cartGoods.getQty());
//咨询商品服务,套餐售价取originalPrice
cartGoods.setFinalPrice(isSetMealProduct?productBean.getOriginalPrice(): productBean.getFinalPrice());
cartGoods.setFinalPrice(isSetMealProduct ? productBean.getOriginalPrice() : productBean.getFinalPrice());
cartGoods.setWeight(productBean.getWeight());
cartGoods.setUnit(productBean.getUnit());
cartGoods.setWeightType(CommonsConstant.WEIGHT_PRODUCT.equals(productBean.getWeightType()));
......@@ -251,8 +253,8 @@ public class ShoppingCartAdapter {
/**
* 更新当前购物车商品行信息
*
* @param cartGoods 当前购物车商品行
* @param productBeans 购物车中所有的productId对应的商品详情
* @param cartGoods 当前购物车商品行
* @param productBeans 购物车中所有的productId对应的商品详情
*/
public void updateCartGoodsInfoNew(CartGoods cartGoods, List<ProductBeanDTO> productBeans) {
try {
......@@ -358,8 +360,8 @@ public class ShoppingCartAdapter {
comboxGoods.setPic(productBean.getPicture());
comboxGoods.setPackPrice(productBean.getPackPrice());
comboxGoods.setOriginalPrice(productBean.getFinalPrice());
comboxGoods.setOriginalAmount(productBean.getFinalPrice()*comboxGoods.getQty());
comboxGoods.setAmount(finalPrice*comboxGoods.getQty());
comboxGoods.setOriginalAmount(productBean.getFinalPrice() * comboxGoods.getQty());
comboxGoods.setAmount(finalPrice * comboxGoods.getQty());
comboxGoods.setCustomerCode(productBean.getCustomerCode());
comboxGoods.setFinalPrice(finalPrice);
comboxGoods.setWeightType(CommonsConstant.WEIGHT_PRODUCT.equals(productBean.getWeightType()));
......@@ -369,41 +371,41 @@ public class ShoppingCartAdapter {
}
/**
* 更新套餐固定商品、可选商品信息
* 更新套餐固定商品、可选商品信息
*
* @param comboxGoods 固定商品或可选商品
* @param comboxGoods 固定商品或可选商品
* @param parentProductBean 套餐服商品
* @param isComboxGoods 是否是固定商品
* @param isComboxGoods 是否是固定商品
* @return
*/
private void updateComboxGoodsInfoNew(CartGoods.ComboxGoods comboxGoods, ProductBeanDTO parentProductBean, boolean isComboxGoods) {
ProductBeanDTO.ProductComboType productComboType = new ProductBeanDTO.ProductComboType();
ProductBeanDTO.ProductGroupType.GroupDetailType groupDetailType=new ProductBeanDTO.ProductGroupType.GroupDetailType();
if (isComboxGoods){
productComboType= parentProductBean.getProductComboList().stream().filter(p -> ObjectUtils.equals(comboxGoods.getGoodsId(), p.getProductId())).findFirst().orElse(new ProductBeanDTO.ProductComboType());
}else {
Map<String, ProductBeanDTO.ProductGroupType.GroupDetailType> map=new HashMap<>();
parentProductBean.getProductGroupList().stream().map(t-> t.getGroupDetail()).forEach(group-> group.forEach(detailType -> map.put( detailType.getProductId(),detailType)));
ProductBeanDTO.ProductGroupType.GroupDetailType groupDetailType = new ProductBeanDTO.ProductGroupType.GroupDetailType();
if (isComboxGoods) {
productComboType = parentProductBean.getProductComboList().stream().filter(p -> ObjectUtils.equals(comboxGoods.getGoodsId(), p.getProductId())).findFirst().orElse(new ProductBeanDTO.ProductComboType());
} else {
Map<String, ProductBeanDTO.ProductGroupType.GroupDetailType> map = new HashMap<>();
parentProductBean.getProductGroupList().stream().map(t -> t.getGroupDetail()).forEach(group -> group.forEach(detailType -> map.put(detailType.getProductId(), detailType)));
groupDetailType = map.get(comboxGoods.getGoodsId());
}
// 若是固定商品则取商品详情的FinalPrice,若是可选商品则取MarkUpPrice
Long finalPrice =isComboxGoods? productComboType.getFinalPrice().longValue():groupDetailType.getMarkUpPrice().longValue();
Long finalPrice = isComboxGoods ? productComboType.getFinalPrice().longValue() : groupDetailType.getMarkUpPrice().longValue();
// 设置商品详情
Map<String, String> attributes = getAttributesNew(comboxGoods.getExtra());
comboxGoods.setName(isComboxGoods?productComboType.getProductName():groupDetailType.getProductName());
comboxGoods.setName(isComboxGoods ? productComboType.getProductName() : groupDetailType.getProductName());
comboxGoods.setSpuName(comboxGoods.getName());
comboxGoods.setSpecProductId(attributes.get(ATTRIBUTEID));
comboxGoods.setSubName(attributes.get(ATTRIBUTENAME));
comboxGoods.setPic(isComboxGoods?productComboType.getPicture():groupDetailType.getPicture());
comboxGoods.setOriginalPrice(isComboxGoods?productComboType.getFinalPrice().longValue():groupDetailType.getProductFinalPrice().longValue());
comboxGoods.setOriginalAmount(comboxGoods.getOriginalPrice()*comboxGoods.getQty());
comboxGoods.setAmount(finalPrice*comboxGoods.getQty());
comboxGoods.setCustomerCode(isComboxGoods?productComboType.getCustomerCode():groupDetailType.getCustomerCode());
comboxGoods.setPic(isComboxGoods ? productComboType.getPicture() : groupDetailType.getPicture());
comboxGoods.setOriginalPrice(isComboxGoods ? productComboType.getFinalPrice().longValue() : groupDetailType.getProductFinalPrice().longValue());
comboxGoods.setOriginalAmount(comboxGoods.getOriginalPrice() * comboxGoods.getQty());
comboxGoods.setAmount(finalPrice * comboxGoods.getQty());
comboxGoods.setCustomerCode(isComboxGoods ? productComboType.getCustomerCode() : groupDetailType.getCustomerCode());
comboxGoods.setFinalPrice(finalPrice);
comboxGoods.setWeightType(isComboxGoods? CommonsConstant.WEIGHT_PRODUCT.equals(productComboType.getWeightType()):CommonsConstant.WEIGHT_PRODUCT.equals(groupDetailType.getWeightType()));
comboxGoods.setUnit(isComboxGoods?productComboType.getUnit():groupDetailType.getUnit());
comboxGoods.setWeightType(isComboxGoods ? CommonsConstant.WEIGHT_PRODUCT.equals(productComboType.getWeightType()) : CommonsConstant.WEIGHT_PRODUCT.equals(groupDetailType.getWeightType()));
comboxGoods.setUnit(isComboxGoods ? productComboType.getUnit() : groupDetailType.getUnit());
comboxGoods.setWeight(isComboxGoods ? productComboType.getWeight() : groupDetailType.getWeight());
}
......
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