Commit 5271b87b by 徐光兴

Merge remote-tracking branch 'origin/master'

parents d3260494 db476196
...@@ -95,6 +95,7 @@ public class PlatformActiveServiceImpl implements ActiveService { ...@@ -95,6 +95,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
.get(); .get();
CartGoods cartGood = new CartGoods(); CartGoods cartGood = new CartGoods();
cartGood.setGoodsId(goods.getGoodsId()); cartGood.setGoodsId(goods.getGoodsId());
cartGood.setOriginalGoodsUid(goods.getOriginalGoodsUid());
cartGood.setGoodsType(1); cartGood.setGoodsType(1);
cartGood.setSpuId(Objects.equals(product.getIsSkuProduct(), 1) ? product.getSpecProductId() : goods.getGoodsId()); cartGood.setSpuId(Objects.equals(product.getIsSkuProduct(), 1) ? product.getSpecProductId() : goods.getGoodsId());
cartGood.setSkuId(goods.getGoodsId()); cartGood.setSkuId(goods.getGoodsId());
...@@ -118,7 +119,7 @@ public class PlatformActiveServiceImpl implements ActiveService { ...@@ -118,7 +119,7 @@ public class PlatformActiveServiceImpl implements ActiveService {
cartGood.setClassificationName(product.getCategoryName()); cartGood.setClassificationName(product.getCategoryName());
// nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额 // nodeId标识activeCode,用于计算均摊时每个商品在每个活动上均摊金额
cartGood.setNodeId(discount.getActivityCode()); cartGood.setNodeId(discount.getActivityCode());
list.addAll(buyAndGiftsPromotionService.setGiftExtra(cartGood, product, addcartGoodsList)); list.addAll(buyAndGiftsPromotionService.setGiftExtra(cartGood, product, oldcartGoodsLists));
} }
// 因为有涉及到用户选择的属性,存入redis // 因为有涉及到用户选择的属性,存入redis
addcartGoodsList.addAll(giftCacheManager.resetGiftCache(list, null, partnerId, storeId, userId)); addcartGoodsList.addAll(giftCacheManager.resetGiftCache(list, null, partnerId, storeId, userId));
......
...@@ -66,7 +66,9 @@ public class GiftCacheManager { ...@@ -66,7 +66,9 @@ public class GiftCacheManager {
while (it.hasNext()) { while (it.hasNext()) {
CartGoods old = it.next(); CartGoods old = it.next();
boolean isSameType = StringUtils.isBlank(activityCode) || activityCode.equals(old.getActivityCode()); boolean isSameType = StringUtils.isBlank(activityCode) || activityCode.equals(old.getActivityCode());
if (! old.getGoodsId().equals(gift.getGoodsId()) || ! isSameType) continue; // 买赠活动,多个不同属性的同一商品,赠品属性不能乱
boolean oriSource = StringUtils.isBlank(gift.getOriginalGoodsUid()) || gift.getOriginalGoodsUid().equals(old.getOriginalGoodsUid());
if (! old.getGoodsId().equals(gift.getGoodsId()) || ! isSameType || !oriSource) continue;
// 赠品匹配上了,copy赠品属性 // 赠品匹配上了,copy赠品属性
gift.setExtra(old.getExtra()); gift.setExtra(old.getExtra());
gift.setSubName(old.getSubName()); gift.setSubName(old.getSubName());
......
...@@ -218,7 +218,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -218,7 +218,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
List<CartGoods> result = new ArrayList<>(); List<CartGoods> result = new ArrayList<>();
result.add(cartGoods); result.add(cartGoods);
//购物车内存在同类 // 买一赠一时,赠品属性和原商品保持一致
if (null != cartGoodsList && cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).count() > 0) { if (null != cartGoodsList && cartGoodsList.stream().filter(c -> c.getSpuId().equals(cartGoods.getSpuId())).count() > 0) {
CartGoods find = cartGoodsList.stream().filter(c -> c.getCartGoodsUid().equals(cartGoods.getOriginalGoodsUid())).findFirst().orElse(null); CartGoods find = cartGoodsList.stream().filter(c -> c.getCartGoodsUid().equals(cartGoods.getOriginalGoodsUid())).findFirst().orElse(null);
if (null == find) { if (null == find) {
......
...@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; ...@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
/** /**
* @author Clover.z * @author Clover.z
...@@ -49,7 +50,14 @@ public class CartGiftServiceImpl implements CartGiftService { ...@@ -49,7 +50,14 @@ public class CartGiftServiceImpl implements CartGiftService {
nameList.add(a.getAttributeName()); nameList.add(a.getAttributeName());
}); });
goods.setExtra(attrList); goods.setExtra(attrList);
goods.setSubName(StringUtils.join(nameList, "/")); // 多规格赠品,需要带上规格name
String skuName = Optional.ofNullable(goods.getSkuName()).orElse("");
String spuName = Optional.ofNullable(goods.getSpuName()).orElse("");
String skuPreName = "";
if (skuName.length() > spuName.length()+1) {
skuPreName = skuName.substring(spuName.length() + 1) + "/";
}
goods.setSubName(skuPreName + StringUtils.join(nameList, "/"));
// 更新赠品缓存 // 更新赠品缓存
giftCacheManager.updateGiftGoods(partnerId, storeCode, user.getMemberId(), goods); giftCacheManager.updateGiftGoods(partnerId, storeCode, user.getMemberId(), goods);
return goods; return goods;
......
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