Commit 5b4aa878 by 刘鹏飞

拼单购物车出参添加用户区分商品行

parent dd4bb338
......@@ -32,9 +32,9 @@ public class CartGoods {
private String goodsId;
/**
* 购买人的的sessionid
* 购买人的的名称
*/
private String sessionId;
private String userName;
/**
* 购买人的的userId
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: ShoppingCartUpdateRequestVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping.wu
* @date: 2018/5/22 10:42
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Data;
import java.util.List;
@Data
public class ShoppingCartCollageGoodsResponseVo extends ShoppingCartGoodsBaseResponseVo{
/**
* 用户商品信息
*/
List<CartGoods> userProducts;
/**
* 用户昵称
*/
private String userName;
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: ShoppingCartUpdateRequestVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping.wu
* @date: 2018/5/22 10:42
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Builder;
import lombok.Data;
import java.util.List;
@Data
public class ShoppingCartCollageResponseVo extends ShoppingCartGoodsBaseResponseVo{
/**
* 用户商品信息
*/
private List<ShoppingCartCollageGoodsResponseVo> userProducts;
/**
* 商品总数
*/
private Integer productsCount;
/**
* 活动信息
*/
private ActivityTip activityTip;
/**
* 原总价
*/
private Long originalTotalAmount;
/**
* 现总价
*/
private Long totalAmount;
/**
* 总折扣价
*/
private Long totalDiscountAmount;
/**
* 新包装费(该字段给新版本前端展示,使其好计算)
*/
private Long newPackAmount;
/**
* 优惠券折扣
*/
private Long couponDiscount;
/**
* 满减折扣
*/
private Long fullDiscount;
/**
* svc卡支付描述
*/
private String svcDiscountDesc;
/**
* 可用优惠券列表
*/
private ActivityClassifyCouponBean availableCoupon;
private ActivityTip buyOneGetActivity;
/**
* 积分抵扣优惠
*/
private ShoppingCartCustomerScoreVo customerScoreVo;
/**
* 起送费
*/
private Long freeDeliveryPrice;
/**
* 会员卡原价
*/
private Integer cardOriginalAmount;
/**
* 会员卡优惠金额
*/
private Integer cardDiscountAmount;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 减免后配送费
*/
private Long discountDeliveryAmount;
/**
* 满多少额度 减免
*/
private Long thresholdAmount;
/**
* 是否参加满额减免
*/
@Builder.Default
private Boolean isDiscountDelivery = false;
/**
* 满额减配送费描述
*/
private String deliveryDiscountDesc;
/**
* 减免后配送费
*/
private String discountDeliveryActivityCode;
/**
* 配送费为零的原因:0:正常,1:超出配送范围
*/
private Integer deliveryFeeZeroReason;
/**
* 购物车版本号
*/
private Integer carVer;
}
......@@ -41,10 +41,14 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBase
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.MessageFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collector;
import java.util.stream.Collectors;
/**
......@@ -158,15 +162,15 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
//添加非商品券商品
List<CartGoods> cartGoodsRedisList= addNotProductCouponGoods(addShoppingCartGoodsRequestVo, cartGoods, goodsId, crateUserId, shoppingCartGoodsResponseVo, allCartGoodsList);
// 更新拼单购物车人员缓存中的的购物车行id集合
List<String> cartGoodsUids = cartGoodsRedisList.stream().filter(cartGoods1 -> currentUserId.equals(cartGoods1.getUserId())).map(CartGoods::getCartGoodsUid).collect(Collectors.toList());
collageCartBaseService.updateCollageCartGoodsUids(cartGoodsUids,partnerId, storeId, crateUserId,currentUserId);
// 当商品数量被设为0时
if (Objects.equals(cartGoods.getQty(), 0)) {
assortmentSdkService.updateGoodsQtyBySdk(partnerId, currentUserId, storeId, cartGoods.getCartGoodsUid(), 0, "", collageCartBaseService);
cartGoodsRedisList = assortmentSdkService.updateGoodsQtyBySdk(partnerId, currentUserId, storeId, cartGoods.getCartGoodsUid(), 0, "", collageCartBaseService);
}
// 更新拼单购物车人员缓存中的的购物车行id集合
List<String> cartGoodsUids = cartGoodsRedisList.stream().filter(cartGoods1 -> currentUserId.equals(cartGoods1.getUserId())).map(CartGoods::getCartGoodsUid).collect(Collectors.toList());
collageCartBaseService.updateCollageCartGoodsUids(cartGoodsUids,partnerId, storeId, crateUserId,currentUserId);
} catch (Exception e) {
ErrorLog.errorConvertJson(SDKCommonBaseContextWare.getAppName(), LogThreadLocal.getTrackingNo(), getClass(), "updateGoodsQty:" + e.getMessage(), e);
return ResponseUtil.error(ResponseResult.SHOPPING_CART_VERSION_ERROR, "购物车商品有变动,请手动刷新再修改");
......@@ -196,7 +200,38 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
shoppingCartGoodsResponseVo.setCarVer(collageCartBaseService.incrementCartVersion(partnerId, storeId, crateUserId));
//埋点添加购物车行为
this.buriedPointShoppingCart(addShoppingCartGoodsRequestVo, spuId, productName);
return ResponseUtil.success(shoppingCartGoodsResponseVo);
// 根据人员分类购物车
ShoppingCartCollageResponseVo shoppingCartCollageResponseVo = splitByUser(shoppingCartGoodsResponseVo);
return ResponseUtil.success(shoppingCartCollageResponseVo);
}
/**
* 根据人员分类购物车,方便前端展示
* @param shoppingCartGoodsResponseVo
* @return
*/
public ShoppingCartCollageResponseVo splitByUser(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo){
ShoppingCartCollageResponseVo shoppingCartCollageResponseVo = new ShoppingCartCollageResponseVo();
BeanUtils.copyProperties(shoppingCartGoodsResponseVo,shoppingCartCollageResponseVo);
List<CartGoods> cartGoods = shoppingCartGoodsResponseVo.getProducts();
Map<String,String> userInfo = cartGoods.stream().collect(Collectors.toMap(CartGoods::getUserId,CartGoods::getUserName, (k1, k2) -> k1));
Map<String,List<CartGoods>> userGoods = cartGoods.stream().collect(Collectors.groupingBy(CartGoods::getUserId));
List<ShoppingCartCollageGoodsResponseVo> userProducts = new ArrayList<>();
for(Map.Entry<String,String> m:userInfo.entrySet()){
ShoppingCartCollageGoodsResponseVo shoppingCartCollageGoodsResponseVo = new ShoppingCartCollageGoodsResponseVo();
shoppingCartCollageGoodsResponseVo.setUserName(m.getValue());
shoppingCartCollageGoodsResponseVo.setUserProducts(userGoods.get(m.getKey()));
userProducts.add(shoppingCartCollageGoodsResponseVo);
}
shoppingCartCollageResponseVo.setUserProducts(userProducts);
return shoppingCartCollageResponseVo;
}
@Override
......@@ -287,7 +322,11 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, crateUserId, ShoppingCartConstant.ADD_AND_UPDATE, null);
// 设置购物车版本号
shoppingCartGoodsResponseVo.setCarVer(collageCartBaseService.incrementCartVersion(partnerId, storeId, crateUserId));
return ResponseUtil.success(shoppingCartGoodsResponseVo);
// 根据人员分类购物车
ShoppingCartCollageResponseVo shoppingCartCollageResponseVo = splitByUser(shoppingCartGoodsResponseVo);
return ResponseUtil.success(shoppingCartCollageResponseVo);
}
@Override
......@@ -388,7 +427,11 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
this.addNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsResponseVo);
// 设置购物车版本号
shoppingCartGoodsResponseVo.setCarVer(collageCartBaseService.incrementCartVersion(partnerId, storeId, crateUserId));
return ResponseUtil.success(shoppingCartGoodsResponseVo);
// 根据人员分类购物车
ShoppingCartCollageResponseVo shoppingCartCollageResponseVo = splitByUser(shoppingCartGoodsResponseVo);
return ResponseUtil.success(shoppingCartCollageResponseVo);
}
@Override
......@@ -870,6 +913,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, crateUserId, ShoppingCartConstant.ADD_AND_UPDATE, null);
// 设置购物车版本号
shoppingCartGoodsResponseVo.setCarVer(collageCartBaseService.incrementCartVersion(partnerId, storeId, crateUserId));
return ResponseUtil.success(shoppingCartGoodsResponseVo);
// 根据人员分类购物车
ShoppingCartCollageResponseVo shoppingCartCollageResponseVo = splitByUser(shoppingCartGoodsResponseVo);
return ResponseUtil.success(shoppingCartCollageResponseVo);
}
}
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