Commit 52aaa7d5 by 周晓航

Merge branch 'KA-测试购物车list不重复调用' into pre

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationCommonService.java
parents ac2ff3c1 85ba6314
...@@ -1062,13 +1062,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1062,13 +1062,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = goodsList.getResult(); ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = goodsList.getResult();
// fisherman -> 储值卡互斥需求 发现bug 导致返回购物车数据不对 当前时间节点无法修复 重新请求一次 // fisherman -> 储值卡互斥需求 发现bug 导致返回购物车数据不对 当前时间节点无法修复 重新请求一次
if (Objects.nonNull(shoppingCartInfoRequestVo.getEnableSharing()) && shoppingCartInfoRequestVo.getEnableSharing().compareTo(0) == 0) { if (Objects.nonNull(shoppingCartInfoRequestVo.getEnableSharing()) && shoppingCartInfoRequestVo.getEnableSharing().compareTo(0) == 0) {
logUtil.info("fisherman -> 当前请求了2次计算操作", JSON.toJSONString(shoppingCartInfoRequestVo), JSON.toJSONString(shoppingCartGoodsResponseVo)); if (shoppingCartGoodsResponseVo.getChanged() != null && shoppingCartGoodsResponseVo.getChanged() ==true) {
goodsList = getGoodsList(shoppingCartInfoRequestVo); goodsList = getGoodsList(shoppingCartInfoRequestVo);
if (goodsList == null || !ResponseResult.SUCCESS.getCode().equals(goodsList.getCode())) { if (goodsList == null || !ResponseResult.SUCCESS.getCode().equals(goodsList.getCode())) {
return goodsList; return goodsList;
} }
shoppingCartGoodsResponseVo = goodsList.getResult(); shoppingCartGoodsResponseVo = goodsList.getResult();
} }
}
//SVC卡支付 //SVC卡支付
SVCCardPay(cardCodes, shoppingCartInfoRequestVo.getReceiveId(), partnerId, storeId, shoppingCartGoodsResponseVo); SVCCardPay(cardCodes, shoppingCartInfoRequestVo.getReceiveId(), partnerId, storeId, shoppingCartGoodsResponseVo);
return ResponseUtil.success(goodsList.getResult()); return ResponseUtil.success(goodsList.getResult());
......
...@@ -70,7 +70,7 @@ public class CalculationCommonService { ...@@ -70,7 +70,7 @@ public class CalculationCommonService {
, List<CartGoods> cartGoodsList , List<CartGoods> cartGoodsList
, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, , ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo,
String couponCode, String couponCode,
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo ) { ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
/** /**
* 使用促销算价赋值行记录 * 使用促销算价赋值行记录
...@@ -82,7 +82,9 @@ public class CalculationCommonService { ...@@ -82,7 +82,9 @@ public class CalculationCommonService {
long totalOriginalAmount = 0L, totalAmount = 0L, totalPackageAmount = 0L; long totalOriginalAmount = 0L, totalAmount = 0L, totalPackageAmount = 0L;
long originalAmount = 0L, amount = 0L, packageAmount = 0L; long originalAmount = 0L, amount = 0L, packageAmount = 0L;
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
originalAmount = 0L;amount = 0L;packageAmount = 0L; originalAmount = 0L;
amount = 0L;
packageAmount = 0L;
this.rowRealAmount(goods, cartGoods, couponCode); this.rowRealAmount(goods, cartGoods, couponCode);
...@@ -112,7 +114,7 @@ public class CalculationCommonService { ...@@ -112,7 +114,7 @@ public class CalculationCommonService {
// fisehrman 总优惠金额 需要+配送券的优惠金额 // fisehrman 总优惠金额 需要+配送券的优惠金额
if (discountResult == null) { if (discountResult == null) {
shoppingCartGoodsResponseVo.setTotalDiscountAmount(0L); shoppingCartGoodsResponseVo.setTotalDiscountAmount(0L);
}else { } else {
// 需要算上配送券的优惠金额 // 需要算上配送券的优惠金额
Integer discountAmount = 0; Integer discountAmount = 0;
if (CollectionUtils.isNotEmpty(discountResult.getDiscounts())) { if (CollectionUtils.isNotEmpty(discountResult.getDiscounts())) {
...@@ -133,23 +135,23 @@ public class CalculationCommonService { ...@@ -133,23 +135,23 @@ public class CalculationCommonService {
return; return;
} }
Goods find = goods Goods find = goods
.stream().filter((k) -> Objects.equals(k.getCartGoodsUid(),cartGoods.getCartGoodsUid())) .stream().filter((k) -> Objects.equals(k.getCartGoodsUid(), cartGoods.getCartGoodsUid()))
.findFirst().orElse(null); .findFirst().orElse(null);
if (find == null) return; if (find == null) return;
cartGoods.setAmount(find.getRealAmount()); cartGoods.setAmount(find.getRealAmount());
cartGoods.setCurrentCouponDiscount(0); cartGoods.setCurrentCouponDiscount(0);
cartGoods.setFinalPrice(find.getNowPrice()); cartGoods.setFinalPrice(find.getNowPrice());
if (CollectionUtils.isNotEmpty(find.getDiscounts())){ if (CollectionUtils.isNotEmpty(find.getDiscounts())) {
// ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = find.getDiscounts().stream() // ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = find.getDiscounts().stream()
// .filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null); // .filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
// if (goodsDiscount != null){ // if (goodsDiscount != null){
// } // }
for (GoodsDiscount goodsDiscount : find.getDiscounts()){ for (GoodsDiscount goodsDiscount : find.getDiscounts()) {
if(goodsDiscount.getActivityCode().equals(couponCode)){ if (goodsDiscount.getActivityCode().equals(couponCode)) {
cartGoods.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue()); cartGoods.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
} }
if(StringUtils.isNotEmpty(goodsDiscount.getCurrentMembershipLevel())){ if (StringUtils.isNotEmpty(goodsDiscount.getCurrentMembershipLevel())) {
cartGoods.setCurrentMemberLevel(goodsDiscount.getCurrentMembershipLevel()); cartGoods.setCurrentMemberLevel(goodsDiscount.getCurrentMembershipLevel());
} }
} }
...@@ -180,14 +182,13 @@ public class CalculationCommonService { ...@@ -180,14 +182,13 @@ public class CalculationCommonService {
SmallMaterial mt = gChoices.get(choice.getGoodsId()); SmallMaterial mt = gChoices.get(choice.getGoodsId());
if (mt == null) { if (mt == null) {
amount += choice.getAmount() * choice.getQty(); amount += choice.getAmount() * choice.getQty();
} } else {
else {
amount += mt.getRealAmount(); amount += mt.getRealAmount();
choice.setCurrentCouponDiscount(0); choice.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(mt.getDiscounts())){ if (CollectionUtils.isNotEmpty(mt.getDiscounts())) {
GoodsDiscount goodsDiscount = mt.getDiscounts().stream() GoodsDiscount goodsDiscount = mt.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null); .filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){ if (goodsDiscount != null) {
choice.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue()); choice.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
} }
} }
...@@ -210,10 +211,10 @@ public class CalculationCommonService { ...@@ -210,10 +211,10 @@ public class CalculationCommonService {
SmallMaterial sm = sChoices.get(mg.getSpuId()); SmallMaterial sm = sChoices.get(mg.getSpuId());
if (sm != null) { if (sm != null) {
mg.setCurrentCouponDiscount(0); mg.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(sm.getDiscounts())){ if (CollectionUtils.isNotEmpty(sm.getDiscounts())) {
GoodsDiscount goodsDiscount = sm.getDiscounts().stream() GoodsDiscount goodsDiscount = sm.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null); .filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){ if (goodsDiscount != null) {
mg.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue()); mg.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
} }
} }
...@@ -242,7 +243,7 @@ public class CalculationCommonService { ...@@ -242,7 +243,7 @@ public class CalculationCommonService {
public ShoppingCartGoodsDto.CartGoodsDetailDto convertCartGoods2DetailGoodsList(Goods calculationGoods public ShoppingCartGoodsDto.CartGoodsDetailDto convertCartGoods2DetailGoodsList(Goods calculationGoods
, CartGoods cartGoods , CartGoods cartGoods
, String partnerId) { , String partnerId) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = this.convertCartGoods2DetailGoods(calculationGoods, cartGoods,partnerId); ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = this.convertCartGoods2DetailGoods(calculationGoods, cartGoods, partnerId);
return cartGoodsDetailDto; return cartGoodsDetailDto;
} }
...@@ -286,7 +287,16 @@ public class CalculationCommonService { ...@@ -286,7 +287,16 @@ public class CalculationCommonService {
toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS; toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS;
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg); setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg);
//结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空 //结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空
if (shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag())) { // 请求里面的 enableSharing = 0 并且 changed = true
boolean changed = shoppingCartInfoRequestVo != null
&&shoppingCartInfoRequestVo.getEnableSharing() != null
&& shoppingCartInfoRequestVo.getEnableSharing().compareTo(0) == 0
&& Objects.nonNull(shoppingCartGoodsResponseVo.getChanged())
&& shoppingCartGoodsResponseVo.getChanged().compareTo(true) == 0;
if (changed) {
shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg("购物车数据异常,需要重新请求购物车list接口");
} else {
shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList)); shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList));
shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : ""); shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : "");
} }
...@@ -420,7 +430,7 @@ public class CalculationCommonService { ...@@ -420,7 +430,7 @@ public class CalculationCommonService {
cartGoodsDetailDto.setSkuName(StringUtils.isEmpty(cartGoods.getSkuName()) ? cartGoods.getSpuName() : cartGoods.getSkuName()); cartGoodsDetailDto.setSkuName(StringUtils.isEmpty(cartGoods.getSkuName()) ? cartGoods.getSpuName() : cartGoods.getSkuName());
cartGoodsDetailDto.setSkuForeignName(StringUtils.isEmpty(cartGoods.getSkuForeignName()) ? cartGoods.getSpuForeignName() : cartGoods.getSkuForeignName()); cartGoodsDetailDto.setSkuForeignName(StringUtils.isEmpty(cartGoods.getSkuForeignName()) ? cartGoods.getSpuForeignName() : cartGoods.getSkuForeignName());
cartGoodsDetailDto.setIsSendGoods(false); cartGoodsDetailDto.setIsSendGoods(false);
if (calculationGoods!=null) { if (calculationGoods != null) {
// 修复购物车NPE 是否为赠品 // 修复购物车NPE 是否为赠品
cartGoodsDetailDto.setIsSendGoods(ObjectUtils.equals(1, calculationGoods.getCartGoodType())); cartGoodsDetailDto.setIsSendGoods(ObjectUtils.equals(1, calculationGoods.getCartGoodType()));
} }
...@@ -443,13 +453,12 @@ public class CalculationCommonService { ...@@ -443,13 +453,12 @@ public class CalculationCommonService {
if (cartGoods.isWeightType()) { if (cartGoods.isWeightType()) {
cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode()); cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode());
} }
if (calculationGoods!=null) { if (calculationGoods != null) {
cartGoodsDetailDto.setOriginalPrice(calculationGoods.getOriginalPrice()); cartGoodsDetailDto.setOriginalPrice(calculationGoods.getOriginalPrice());
} } else {
else {
cartGoodsDetailDto.setOriginalPrice(cartGoods.getOriginalPrice()); cartGoodsDetailDto.setOriginalPrice(cartGoods.getOriginalPrice());
} }
if (calculationGoods!=null) { if (calculationGoods != null) {
if (cartGoodsDetailDto.getIsSendGoods()) { if (cartGoodsDetailDto.getIsSendGoods()) {
// 由于买赠活动中,赠品有属性的时候会裂为多行,所有优惠金额不能直接用促销返回的, 需要根据实际购物车行中的数量来计算 // 由于买赠活动中,赠品有属性的时候会裂为多行,所有优惠金额不能直接用促销返回的, 需要根据实际购物车行中的数量来计算
int discountAmt = calculationGoods.getDiscountAmount().intValue(); int discountAmt = calculationGoods.getDiscountAmount().intValue();
...@@ -458,8 +467,7 @@ public class CalculationCommonService { ...@@ -458,8 +467,7 @@ public class CalculationCommonService {
} else { } else {
cartGoodsDetailDto.setTotalDiscountAmount(calculationGoods.getDiscountAmount().intValue()); cartGoodsDetailDto.setTotalDiscountAmount(calculationGoods.getDiscountAmount().intValue());
} }
} } else {
else {
cartGoodsDetailDto.setTotalDiscountAmount(cartGoods.getOriginalAmount().intValue() - cartGoods.getAmount().intValue()); cartGoodsDetailDto.setTotalDiscountAmount(cartGoods.getOriginalAmount().intValue() - cartGoods.getAmount().intValue());
} }
//设置行优惠 //设置行优惠
...@@ -528,7 +536,7 @@ public class CalculationCommonService { ...@@ -528,7 +536,7 @@ public class CalculationCommonService {
} }
goods.setOriginalProductType(mg.getOriginalProductType()); goods.setOriginalProductType(mg.getOriginalProductType());
materialList.add(goods); materialList.add(goods);
cartGoodsDetailDto.setOriginalPrice(cartGoodsDetailDto.getOriginalPrice() + goods.getOriginalPrice() * (goods.getQty()/cartGoodsDetailDto.getQty())); cartGoodsDetailDto.setOriginalPrice(cartGoodsDetailDto.getOriginalPrice() + goods.getOriginalPrice() * (goods.getQty() / cartGoodsDetailDto.getQty()));
cartGoodsDetailDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() + goods.getTotalDiscountAmount()); cartGoodsDetailDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() + goods.getTotalDiscountAmount());
} }
cartGoodsDetailDto.setProductType(ProductType.MATERIAL.getCode()); cartGoodsDetailDto.setProductType(ProductType.MATERIAL.getCode());
...@@ -546,9 +554,9 @@ public class CalculationCommonService { ...@@ -546,9 +554,9 @@ public class CalculationCommonService {
List<ShoppingCartGoodsDto.CartGoodsDetailDto> comboLists = this.com2DetailGoods(gxDiscount, cartGoods.getProductComboList(), cartGoods, true); List<ShoppingCartGoodsDto.CartGoodsDetailDto> comboLists = this.com2DetailGoods(gxDiscount, cartGoods.getProductComboList(), cartGoods, true);
combs.addAll(comboLists); combs.addAll(comboLists);
cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode()); cartGoodsDetailDto.setProductType(ProductType.SETMEAL.getCode());
if (calculationGoods !=null) { if (calculationGoods != null) {
originalPriceSum = calculationGoods.getOriginalPrice(); originalPriceSum = calculationGoods.getOriginalPrice();
}else { } else {
for (ShoppingCartGoodsDto.CartGoodsDetailDto comboList : comboLists) { for (ShoppingCartGoodsDto.CartGoodsDetailDto comboList : comboLists) {
originalPriceSum += (comboList.getQty() / cartGoods.getQty()) * comboList.getOriginalPrice(); originalPriceSum += (comboList.getQty() / cartGoods.getQty()) * comboList.getOriginalPrice();
} }
...@@ -671,8 +679,8 @@ public class CalculationCommonService { ...@@ -671,8 +679,8 @@ public class CalculationCommonService {
HashMap<String, BlockRow> map = new HashMap<>(); HashMap<String, BlockRow> map = new HashMap<>();
if (goods == null) return map; if (goods == null) return map;
//固定搭配 //固定搭配
if (isFixed ) { if (isFixed) {
if(CollectionUtils.isNotEmpty(goods.getGroupCombox())){ if (CollectionUtils.isNotEmpty(goods.getGroupCombox())) {
for (GroupCombox gx : goods.getGroupCombox()) { for (GroupCombox gx : goods.getGroupCombox()) {
BlockRow blockRow = new BlockRow(); BlockRow blockRow = new BlockRow();
blockRow.setDiscountAmount(gx.getDiscountAmount()); blockRow.setDiscountAmount(gx.getDiscountAmount());
...@@ -763,7 +771,7 @@ public class CalculationCommonService { ...@@ -763,7 +771,7 @@ public class CalculationCommonService {
uid = goods.getCartGoodsUid(); uid = goods.getCartGoodsUid();
} }
} }
if(StringUtils.isNotBlank(toastMsg)){ if (StringUtils.isNotBlank(toastMsg)) {
shoppingCartGoodsResponseVo.setToastMsg(toastMsg); shoppingCartGoodsResponseVo.setToastMsg(toastMsg);
} }
shoppingCartGoodsResponseVo.setUid(uid); shoppingCartGoodsResponseVo.setUid(uid);
......
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