Commit 508efe29 by 孙昱

sunyu::update::merge code

parents ec9aea7a 34275a17
...@@ -509,7 +509,11 @@ public class ShoppingCartConvertAdapter { ...@@ -509,7 +509,11 @@ public class ShoppingCartConvertAdapter {
? cartGoods.getSkuId() : cartGoods.getSpuId()); ? cartGoods.getSkuId() : cartGoods.getSpuId());
// 应产品要求 // 应产品要求
// 普通商品,取商品的finalePrice(普通商品售价);套餐商品,取originalPrice(套餐价格) // 普通商品,取商品的finalePrice(普通商品售价);套餐商品,取originalPrice(套餐价格)
if (ObjectUtils.equals(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGoods.getGoodsType())){
productType.setPrice(null == cartGoods.getOriginalPrice() ? 0 : cartGoods.getOriginalPrice().intValue());
}else{
productType.setPrice(cartGoods.getFinalPrice() == null ? 0 : cartGoods.getFinalPrice().intValue()); productType.setPrice(cartGoods.getFinalPrice() == null ? 0 : cartGoods.getFinalPrice().intValue());
}
productType.setValidatePrice(productType.getPrice() == 0 ? 0 : 1); productType.setValidatePrice(productType.getPrice() == 0 ? 0 : 1);
productType.setValidateAttribute(1); productType.setValidateAttribute(1);
productType.setValidateStatuses(Arrays.asList(2)); productType.setValidateStatuses(Arrays.asList(2));
...@@ -638,8 +642,13 @@ public class ShoppingCartConvertAdapter { ...@@ -638,8 +642,13 @@ public class ShoppingCartConvertAdapter {
//更新当前商品行价格 //更新当前商品行价格
Long newOrigOriginalPrice = 0L; Long newOrigOriginalPrice = 0L;
if (isSetMealProduct) { if (isSetMealProduct) {
if (null != cartGoods.getOriginalPrice() && cartGoods.getOriginalPrice()>0){
newOrigOriginalPrice += cartGoods.getOriginalPrice();
}else {
newOrigOriginalPrice += cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum(); newOrigOriginalPrice += cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
}
newOrigOriginalPrice += cartGoods.getProductGroupList().stream().mapToLong(t -> t.getOriginalAmount()).sum(); newOrigOriginalPrice += cartGoods.getProductGroupList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
} else { } else {
newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice(); newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice();
} }
...@@ -852,22 +861,24 @@ public class ShoppingCartConvertAdapter { ...@@ -852,22 +861,24 @@ public class ShoppingCartConvertAdapter {
//更新当前商品行价格 //更新当前商品行价格
Long newOrigOriginalPrice = 0L; Long newOrigOriginalPrice = 0L;
if (isSetMealProduct) { if (isSetMealProduct) {
Long comboxGoodsFinalPrice = cartGoods.getProductComboList().stream().mapToLong(t -> t.getFinalPrice()).sum();
Long comboxGoodsOriginalPrice = cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum(); Long comboxGoodsOriginalPrice = cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
Long groupGoodsOriginalPrice = cartGoods.getProductGroupList().stream().mapToLong(t -> t.getOriginalAmount()).sum(); Long groupGoodsOriginalPrice = cartGoods.getProductGroupList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
Long comboxGoodsFinalPrice = cartGoods.getProductComboList().stream().mapToLong(t -> t.getFinalPrice()).sum();
Long groupGoodsFinalPrice = cartGoods.getProductGroupList().stream().mapToLong(t -> t.getFinalPrice()).sum(); Long groupGoodsFinalPrice = cartGoods.getProductGroupList().stream().mapToLong(t -> t.getFinalPrice()).sum();
cartGoods.setOriginalPrice(comboxGoodsOriginalPrice); cartGoods.setOriginalPrice(null != cartGoods.getOriginalPrice()? cartGoods.getOriginalPrice() :
cartGoods.setOriginalAmount((comboxGoodsOriginalPrice+groupGoodsOriginalPrice)* cartGoods.getQty()); comboxGoodsOriginalPrice);
cartGoods.setAmount((comboxGoodsFinalPrice+groupGoodsFinalPrice) * cartGoods.getQty()); cartGoods.setOriginalAmount((cartGoods.getOriginalPrice()+groupGoodsOriginalPrice)* cartGoods.getQty());
//咨询商品服务,套餐售价取originalPrice //咨询商品服务,套餐售价取originalPrice
cartGoods.setFinalPrice(comboxGoodsFinalPrice); cartGoods.setFinalPrice(null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice() :
comboxGoodsFinalPrice);
cartGoods.setAmount((cartGoods.getFinalPrice()+groupGoodsFinalPrice) * cartGoods.getQty());
} else { } else {
newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice(); newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice();
cartGoods.setOriginalPrice(newOrigOriginalPrice); cartGoods.setOriginalPrice(newOrigOriginalPrice);
cartGoods.setOriginalAmount(newOrigOriginalPrice * cartGoods.getQty()); cartGoods.setOriginalAmount(newOrigOriginalPrice * cartGoods.getQty());
cartGoods.setAmount(newOrigOriginalPrice * cartGoods.getQty()); cartGoods.setAmount(newOrigOriginalPrice * cartGoods.getQty());
//咨询商品服务,套餐售价取originalPrice //咨询商品服务,套餐售价取originalPrice
cartGoods.setFinalPrice(isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice()); cartGoods.setFinalPrice(isSkuProduct ? skuProduct.getOriginalPrice() : spuProduct.getFinalPrice());
} }
cartGoods.setWeight(isSkuProduct ? skuProduct.getWeight() : spuProduct.getWeight()); cartGoods.setWeight(isSkuProduct ? skuProduct.getWeight() : spuProduct.getWeight());
cartGoods.setUnit(isSkuProduct ? skuProduct.getUnit() : spuProduct.getUnit()); cartGoods.setUnit(isSkuProduct ? skuProduct.getUnit() : spuProduct.getUnit());
...@@ -1031,5 +1042,4 @@ public class ShoppingCartConvertAdapter { ...@@ -1031,5 +1042,4 @@ public class ShoppingCartConvertAdapter {
); );
} }
} }
} }
...@@ -1369,6 +1369,36 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1369,6 +1369,36 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setTaxId(productBeanListSpuClass.get(0).getTaxId()); cartGoods.setTaxId(productBeanListSpuClass.get(0).getTaxId());
} }
//套餐商品赋值
if (ObjectUtils.equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGoods.getGoodsType())){
cartGoods.setOriginalPrice(productBeanListSpuClass.get(0).getOriginalPrice());
cartGoods.setFinalPrice(productBeanListSpuClass.get(0).getFinalPrice());
cartGoods.setPackPrice(productBeanListSpuClass.get(0).getPackPrice());
cartGoods.setCustomerCode(productBeanListSpuClass.get(0).getCustomerCode());
cartGoods.setName(productBeanListSpuClass.get(0).getName());
cartGoods.setSpuName(productBeanListSpuClass.get(0).getName());
cartGoods.setSkuName(productBeanListSpuClass.get(0).getName());
cartGoods.setPic(productBeanListSpuClass.get(0).getPicture());
cartGoods.setStockLimit(productBeanListSpuClass.get(0).getStockLimit() == 1);
cartGoods.setTax(productBeanListSpuClass.get(0).getTax());
cartGoods.setTaxId(productBeanListSpuClass.get(0).getTaxId());
//套餐可选商品赋值
if (CollectionUtils.isNotEmpty(productBeanListSpuClass.get(0).getProductGroupList())){
for (ProductBeanDTO.ProductGroupType groupType : productBeanListSpuClass.get(0).getProductGroupList()) {
if (CollectionUtils.isNotEmpty(groupType.getGroupDetail())){
for (ProductBeanDTO.ProductGroupType.GroupDetailType detailType : groupType.getGroupDetail()) {
for (CartGoods.ComboxGoods groupGoods : cartGoods.getProductGroupList()) {
if (detailType.getProductId().equals(groupGoods.getGoodsId())) {
groupGoods.setFinalPrice(detailType.getMarkUpPrice().longValue());
groupGoods.setOriginalPrice(detailType.getProductPrice().longValue());
}
}
}
}
}
}
}
} }
......
package cn.freemud.service.impl.mcoffee.calculation; package cn.freemud.service.impl.mcoffee.calculation;
import cn.freemud.adapter.ShoppingCartConvertAdapter; import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.adapter.ShoppingCartMccafeAdapter;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.UserLoginInfoDto; import cn.freemud.entities.dto.UserLoginInfoDto;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto; import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
...@@ -38,6 +39,8 @@ public class SetMealCalculation { ...@@ -38,6 +39,8 @@ public class SetMealCalculation {
@Autowired @Autowired
private ShoppingCartConvertAdapter shoppingCartConvertAdapter; private ShoppingCartConvertAdapter shoppingCartConvertAdapter;
@Autowired
private ShoppingCartMccafeAdapter shoppingCartMccafeAdapter;
public void updateShoppingCartGoodsDiscount(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) { public void updateShoppingCartGoodsDiscount(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
...@@ -62,11 +65,15 @@ public class SetMealCalculation { ...@@ -62,11 +65,15 @@ public class SetMealCalculation {
cartGoods.setPackPrice(cartGoods.getPackPrice() * cartGoods.getQty()); cartGoods.setPackPrice(cartGoods.getPackPrice() * cartGoods.getQty());
// 可选商品现总价 // 可选商品现总价
productGroupTotalAmount = 0l; productGroupTotalAmount = 0l;
long productGroupAmount = cartGoods.getProductGroupList().stream().mapToLong(t -> t.getFinalPrice() * t.getQty()).sum(); long productGroupAmount =
null == cartGoods.getProductGroupList() ? 0 :
cartGoods.getProductGroupList().stream().mapToLong(t -> (null != t.getFinalPrice() ?
t.getFinalPrice():0) * (null != t.getQty() ? t.getQty():0)).sum();
productGroupTotalAmount += productGroupAmount * cartGoods.getQty(); productGroupTotalAmount += productGroupAmount * cartGoods.getQty();
// 固定商品现总价 // 固定商品现总价
long productComboAmount = cartGoods.getProductComboList().stream().mapToLong(t -> t.getFinalPrice() * t.getQty()).sum(); long productComboAmount = cartGoods.getProductComboList().stream().mapToLong(t -> (null != t.getFinalPrice() ?
t.getFinalPrice():0) * (null != t.getQty() ? t.getQty():0)).sum();
long productComboTotalAmount = productComboAmount * cartGoods.getQty(); long productComboTotalAmount = productComboAmount * cartGoods.getQty();
long materialPrice = 0l; long materialPrice = 0l;
...@@ -79,15 +86,23 @@ public class SetMealCalculation { ...@@ -79,15 +86,23 @@ public class SetMealCalculation {
comboxmaterialPrice+= null != materialGoods.getFinalPrice() ? materialGoods.getFinalPrice() * cartGoods.getQty() : 0; comboxmaterialPrice+= null != materialGoods.getFinalPrice() ? materialGoods.getFinalPrice() * cartGoods.getQty() : 0;
} }
} }
comboxGoods.setAmount(comboxGoods.getAmount()+comboxmaterialPrice); comboxGoods.setAmount((null == comboxGoods.getAmount() ? 0 :
comboxGoods.getAmount())+comboxmaterialPrice);
materialPrice = materialPrice + comboxmaterialPrice; materialPrice = materialPrice + comboxmaterialPrice;
} }
} }
cartGoods.setOriginalAmount(productGroupTotalAmount + productComboTotalAmount + materialPrice);
cartGoods.setOriginalPrice(productComboTotalAmount); Long amount = null != cartGoods.getFinalPrice() ? cartGoods.getFinalPrice()*cartGoods.getQty() + productGroupTotalAmount + materialPrice :
cartGoods.setAmount(productGroupTotalAmount + productComboTotalAmount + materialPrice); productGroupTotalAmount + productComboTotalAmount + materialPrice;
cartGoods.setFinalPrice(productComboTotalAmount); Long comboOriginalPriceAmount = null != cartGoods.getOriginalAmount() ? cartGoods.getOriginalAmount() :
productComboTotalAmount;
cartGoods.setOriginalAmount(productGroupTotalAmount + comboOriginalPriceAmount + materialPrice);
cartGoods.setOriginalPrice(null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice() :
productComboTotalAmount);
cartGoods.setAmount(amount);
cartGoods.setFinalPrice(null != cartGoods.getFinalPrice() ? cartGoods.getFinalPrice() :
productComboTotalAmount);
// 套餐(固定商品)现价 // 套餐(固定商品)现价
// String toastMsg = getTotalAmount(cartGoods, productGroupAmount, numberMap, goodsMap); // String toastMsg = getTotalAmount(cartGoods, productGroupAmount, numberMap, goodsMap);
...@@ -131,11 +146,11 @@ public class SetMealCalculation { ...@@ -131,11 +146,11 @@ public class SetMealCalculation {
int productGroupDiscountAmount = cartGoods.getProductGroupList().stream().mapToInt(t -> t.getFinalPrice().intValue() * t.getQty()).sum(); int productGroupDiscountAmount = cartGoods.getProductGroupList().stream().mapToInt(t -> t.getFinalPrice().intValue() * t.getQty()).sum();
// totalDiscountAmount += discountAmount - productGroupDiscountAmount * cartGoods.getQty(); // totalDiscountAmount += discountAmount - productGroupDiscountAmount * cartGoods.getQty();
// 添加套餐父商品 // 添加套餐父商品
ShoppingCartGoodsDto.CartGoodsDetailDto parentCartGoods = shoppingCartConvertAdapter.convertCartGoods2DetailGoods(cartGoods, apportionGoods,duplicateGoodsMap); ShoppingCartGoodsDto.CartGoodsDetailDto parentCartGoods = shoppingCartMccafeAdapter.convertCartGoods2DetailGoods(cartGoods, apportionGoods,duplicateGoodsMap);
// parentCartGoods.setTotalDiscountAmount(parentCartGoods.getTotalDiscountAmount()+ cartGoods.getOriginalAmount().intValue() - cartGoods.getAmount().intValue()); // parentCartGoods.setTotalDiscountAmount(parentCartGoods.getTotalDiscountAmount()+ cartGoods.getOriginalAmount().intValue() - cartGoods.getAmount().intValue());
// parentCartGoods.getActivityDiscountsDtos().add(getActivityDiscountsDto(discountAmount - productGroupDiscountAmount * cartGoods.getQty())); // parentCartGoods.getActivityDiscountsDtos().add(getActivityDiscountsDto(discountAmount - productGroupDiscountAmount * cartGoods.getQty()));
// 添加套餐固定商品&可选商品: 做均摊 // 添加套餐固定商品&可选商品: 做均摊
parentCartGoods.setComboProducts(shoppingCartConvertAdapter.convertComboxGoods2DetailGoods(cartGoods,parentCartGoods.getTotalDiscountAmount())); parentCartGoods.setComboProducts(shoppingCartMccafeAdapter.convertComboxGoods2DetailGoods(cartGoods,parentCartGoods.getTotalDiscountAmount()));
cartGoodsDetailDtos.add(parentCartGoods); cartGoodsDetailDtos.add(parentCartGoods);
} }
} }
......
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