Commit 271db3b3 by 张跃

加价购优化

parent 31e1b315
...@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -204,14 +205,16 @@ public class ShoppingCartDemoController { ...@@ -204,14 +205,16 @@ public class ShoppingCartDemoController {
premiumRequest.setShopId(listCartGoodsBO.getShopId()); premiumRequest.setShopId(listCartGoodsBO.getShopId());
premiumRequest.setVersion(listCartGoodsBO.getVersion()); premiumRequest.setVersion(listCartGoodsBO.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest); BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(premiumRequest);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode()) if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode())
&& premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){ && premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts(); List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = listCartGoodsBO.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList()); List<String> sendGoodsIdList = listCartGoodsBO.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList());
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList()); chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum(); long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
baseListCartGoodsVO.setSendGoodsAmount(sendGoodsAmount); baseListCartGoodsVO.setSendGoodsAmount(sendGoodsAmount);
} }
updateForPopupWindow(baseListCartGoodsVO,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,baseRequestDTO.getSendGoods());
} }
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除 // 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
...@@ -219,6 +222,42 @@ public class ShoppingCartDemoController { ...@@ -219,6 +222,42 @@ public class ShoppingCartDemoController {
} }
public void updateForPopupWindow(BaseListCartGoodsVO baseListCartGoodsVO, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList,
List<ListCartGoodsBO.SendGoods> sendGoods) {
if(Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)){
chooseSendGoodList.forEach(good->{
ListCartGoodsBO.SendGoods first =null;
if(sendGoods !=null) {
first = sendGoods.stream().filter(a -> a.getGoodsId().equals(good.getPid())).findFirst().orElseGet(null);
}
CartGoods cartGoods = new CartGoods();
cartGoods.setSpuId(good.getSpuId());
cartGoods.setSkuId(good.getSkuId());
cartGoods.setSkuName(good.getSkuName());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setFinalPrice(good.getNowPrice());
cartGoods.setPhotoUrl(good.getPicture());
cartGoods.setGoodsId(good.getPid());
cartGoods.setName(good.getName());
cartGoods.setSpuName(good.getSpuName());
cartGoods.setQty(first==null ? 1:first.getQty());
if(first != null) {
cartGoods.setActivityCode(first.getActivityCode());
if(!CollectionUtils.isEmpty(first.getAttributes())){
List<CartGoods.CartGoodsExtra> extra = new ArrayList();
first.getAttributes().forEach(attribute -> {
CartGoods.CartGoodsExtra goodsExtra = new CartGoods.CartGoodsExtra();
goodsExtra.setAttributeId(attribute.getAttributeId());
goodsExtra.setAttributeName(attribute.getAttributeValue());
extra.add(goodsExtra);
});
cartGoods.setExtra(extra);
}
}
baseListCartGoodsVO.getProducts().add(cartGoods);
});
}
}
/** /**
* 获取购物车均摊详情,点 "去支付" 时调用 * 获取购物车均摊详情,点 "去支付" 时调用
......
...@@ -132,6 +132,15 @@ public class ListCartGoodsBO extends BaseBo { ...@@ -132,6 +132,15 @@ public class ListCartGoodsBO extends BaseBo {
@NotNull @NotNull
private Integer qty; private Integer qty;
private String activityCode; private String activityCode;
private List<Attribute> attributes;
} }
@Data
public final static class Attribute{
private String attributeId;
private String attributeValue;
}
} }
...@@ -147,6 +147,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -147,6 +147,16 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotNull @NotNull
private Integer qty; private Integer qty;
private String activityCode; private String activityCode;
private List<Attribute> attributes;
}
@Data
public final static class Attribute{
private String attributeId;
private String attributeValue;
} }
@Data @Data
......
...@@ -760,14 +760,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -760,14 +760,16 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
request.setShopId(shoppingCartInfoRequestVo.getShopId()); request.setShopId(shoppingCartInfoRequestVo.getShopId());
request.setVersion(shoppingCartInfoRequestVo.getVersion()); request.setVersion(shoppingCartInfoRequestVo.getVersion());
BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = premiumExchange(request); BaseResponse<PremiumExchangeResponseVo> premiumExchangeResponseVoBaseResponse = premiumExchange(request);
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = null;
if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode()) if (premiumExchangeResponseVoBaseResponse != null && ResponseResult.SUCCESS.getCode().equals(premiumExchangeResponseVoBaseResponse.getCode())
&& premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){ && premiumExchangeResponseVoBaseResponse.getResult() != null && CollectionUtils.isNotEmpty(premiumExchangeResponseVoBaseResponse.getResult().getProducts())){
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts(); List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = premiumExchangeResponseVoBaseResponse.getResult().getProducts();
List<String> sendGoodsIdList = shoppingCartInfoRequestVo.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList()); List<String> sendGoodsIdList = shoppingCartInfoRequestVo.getSendGoods().stream().map(p -> p.getGoodsId()).collect(toList());
List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList()); chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum(); long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount); shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount);
} }
updateForPopupWindow(shoppingCartGoodsResponseVo,premiumExchangeResponseVoBaseResponse.getResult().getShowType(),chooseSendGoodList,shoppingCartInfoRequestVo.getSendGoods());
} }
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除 // 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
...@@ -780,6 +782,43 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -780,6 +782,43 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo); return ResponseUtil.success(shoppingCartGoodsResponseVo);
} }
public void updateForPopupWindow(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, Integer showType, List<PremiumExchangeResponseVo.PremiumExchangeProduct> chooseSendGoodList,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoods) {
if(Integer.valueOf("5").equals(showType) && !org.springframework.util.CollectionUtils.isEmpty(chooseSendGoodList)){
chooseSendGoodList.forEach(good->{
ShoppingCartInfoRequestVo.SendGoods first =null;
if (sendGoods != null) {
first = sendGoods.stream().filter(a -> a.getGoodsId().equals(good.getPid())).findFirst().orElseGet(null);
}
CartGoods cartGoods = new CartGoods();
cartGoods.setSpuId(good.getSpuId());
cartGoods.setSkuId(good.getSkuId());
cartGoods.setSkuName(good.getSkuName());
cartGoods.setOriginalAmount(good.getOriginalPrice());
cartGoods.setFinalPrice(good.getNowPrice());
cartGoods.setPhotoUrl(good.getPicture());
cartGoods.setGoodsId(good.getPid());
cartGoods.setName(good.getName());
cartGoods.setSpuName(good.getSpuName());
cartGoods.setQty(first==null ? 1:first.getQty());
if(first != null) {
cartGoods.setActivityCode(first.getActivityCode());
if(!CollectionUtils.isEmpty(first.getAttributes())){
List<CartGoods.CartGoodsExtra> extra = new ArrayList();
first.getAttributes().forEach(attribute -> {
CartGoods.CartGoodsExtra goodsExtra = new CartGoods.CartGoodsExtra();
goodsExtra.setAttributeId(attribute.getAttributeId());
goodsExtra.setAttributeName(attribute.getAttributeValue());
extra.add(goodsExtra);
});
cartGoods.setExtra(extra);
}
}
shoppingCartGoodsResponseVo.getProducts().add(cartGoods);
});
}
}
private void convert2CartGoods(CartGoods cartGoods, GetProductsVo productInfo) { private void convert2CartGoods(CartGoods cartGoods, GetProductsVo productInfo) {
cartGoods.setCartGoodsUid(UUID.randomUUID().toString()); cartGoods.setCartGoodsUid(UUID.randomUUID().toString());
Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType(); Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType();
......
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