Commit 80cb7cc5 by 刘鹏飞

拼单购物车个人清除清除

parent 5b4aa878
......@@ -115,7 +115,7 @@ public class CollageCartBaseServiceImpl implements ShoppingCartBaseService {
operations.putAll(cartGoodsMap);
operations.expire(expire,TimeUnit.SECONDS);
return CartResponseUtil.success();
return CartResponseUtil.success(cartParamDto.getCartGoodsList());
} catch (Exception e) {
ErrorLog.printErrorLog("设置拼单购物车异常", "CollageCartBaseServiceImpl/setCartGoodsList", cartParamDto, e);
return null;
......@@ -312,16 +312,16 @@ public class CollageCartBaseServiceImpl implements ShoppingCartBaseService {
* @param userId
* @return
*/
public Boolean getCollageMemStateHashKey(String partnerId, String storeId, String userId,String sessionId) {
public Boolean getCollageMemStateHashKey(String partnerId, String storeId, String userId,String currentUserId) {
try {
String collageMemberHashKey = genCollageMemberStateHashKey(partnerId, storeId, userId);
return redisCache.hashGet(collageMemberHashKey,sessionId);
return redisCache.hashGet(collageMemberHashKey,currentUserId);
} catch (Exception e) {
Map<String,String> request = new HashMap<>();
request.put("partnerId",partnerId);
request.put("storeId",storeId);
request.put("userId",userId);
request.put("sessionId",sessionId);
request.put("currentUserId",currentUserId);
ErrorLog.printErrorLog("获取拼单用户选好的状态异常", "CollageCartBaseServiceImpl/getCollageMemStateHashKey", request, e);
return null;
}
......@@ -333,11 +333,11 @@ public class CollageCartBaseServiceImpl implements ShoppingCartBaseService {
* @param partnerId
* @param storeId
* @param crateUserId
* @param sessionId
* @param userId
*/
public void updateCollageCartGoodsUids(List<String> cartGoodsUids,String partnerId,String storeId,String crateUserId,String sessionId){
public void updateCollageCartGoodsUids(List<String> cartGoodsUids,String partnerId,String storeId,String crateUserId,String userId){
String collageMemberKey = genCollageMemberHashKey(partnerId, storeId, crateUserId);
redisCache.hashPut(collageMemberKey,sessionId,cartGoodsUids);
redisCache.hashPut(collageMemberKey,userId,cartGoodsUids);
}
/**
......@@ -345,21 +345,21 @@ public class CollageCartBaseServiceImpl implements ShoppingCartBaseService {
* @param partnerId
* @param storeId
* @param crateUserId
* @param sessionId
* @param userId
* @return
*/
public List<String> getCollageCartGoodsUids(String partnerId,String storeId,String crateUserId,String sessionId){
public List<String> getCollageCartGoodsUids(String partnerId,String storeId,String crateUserId,String userId){
try {
String collageMemberKey = genCollageMemberHashKey(partnerId, storeId, crateUserId);
BoundHashOperations<String, String, List<String>> operations = redisTemplate.boundHashOps(collageMemberKey);
List<String> goodsUids = operations.get(sessionId);
List<String> goodsUids = operations.get(userId);
return goodsUids;
} catch (Exception e) {
Map<String,String> request = new HashMap<>();
request.put("partnerId",partnerId);
request.put("storeId",storeId);
request.put("crateUserId",crateUserId);
request.put("sessionId",crateUserId);
request.put("userId",crateUserId);
ErrorLog.printErrorLog("获取拼单人员缓存购物车行异常", "CollageCartBaseServiceImpl/getCollageCartGoodsUids", request, e);
return null;
}
......
......@@ -145,6 +145,7 @@ public enum ResponseResult {
COLLAGE_ALREADY_CHOOSE("49004", "拼单商品已经选购结束,请确定"),
COLLAGE_ALREADY_EXIST("49005", "当前用户存在进行中的拼单订单"),
COLLAGE_NOT_OWNER("49006", "当前用户不是拼单发起人,无法操作"),
COLLAGE_GOOD_NOT_ONESELF("49007", "只能操作自己的商品"),
/**
......
......@@ -237,10 +237,13 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
@Override
public BaseResponse updateGoodsQty(UpdateShoppingCartGoodsQtyRequestVo updateShoppingCartGoodsQtyRequestVo) {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(updateShoppingCartGoodsQtyRequestVo.getSessionId());
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo);
CustomerInfoVo currentUserInfoVo = getCustomerInfoVo(updateShoppingCartGoodsQtyRequestVo.getSessionId());
// 当前用户必须登陆
if (null == currentUserInfoVo || StringUtils.isEmpty(currentUserInfoVo.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(currentUserInfoVo);
//String currentSessionId = updateShoppingCartGoodsQtyRequestVo.getSessionId();
String currentUserId = userLoginInfoDto.getMemberId();
String partnerId = updateShoppingCartGoodsQtyRequestVo.getPartnerId();
......@@ -258,6 +261,12 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
// 拼单相关条件校验
check(partnerId, storeId, crateUserId,null,currentUserId);
// 校验需要修改的商品行和操作人的关系
List<String> goodsUids = collageCartBaseService.getCollageCartGoodsUids(partnerId,storeId,crateUserId,currentUserId);
if(null == goodsUids || !goodsUids.contains(updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid())){
throw new ServiceException(ResponseResult.COLLAGE_GOOD_NOT_ONESELF);
}
// 购物车版本加锁
dolock(partnerId, storeId, crateUserId,updateShoppingCartGoodsQtyRequestVo.getCarVer());
List<CartGoods> cartGoodsList = null;
......@@ -306,10 +315,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
// return shoppingCartGoodsResponseVo;
}
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, crateUserId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType());
......@@ -335,10 +343,16 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
if (StringUtils.isEmpty(shoppingCartInfoRequestVo.getShopId())){
throw new ServiceException(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
}
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
// 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(shoppingCartInfoRequestVo.getSessionId());
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo);
CustomerInfoVo currentUserInfoVo = getCustomerInfoVo(shoppingCartInfoRequestVo.getSessionId());
// 当前用户必须登陆
if (null == currentUserInfoVo || StringUtils.isEmpty(currentUserInfoVo.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(currentUserInfoVo);
String currentUserId = userLoginInfoDto.getMemberId();
//String currentSessionId = shoppingCartInfoRequestVo.getSessionId();
String partnerId = shoppingCartInfoRequestVo.getPartnerId();
......@@ -382,7 +396,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
}
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
// 重新存储最新购物车
List<CartGoods> cartGoodsRedisList = assortmentSdkService.setShoppingCart(partnerId, storeId, crateUserId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), "", this.collageCartBaseService);
List<CartGoods> cartGoodsRedisList = assortmentSdkService.setShoppingCart(partnerId, storeId, crateUserId, cartGoodsList, currentUserInfoVo.getSessionId(), "", this.collageCartBaseService);
// 更新拼单购物车人员缓存中的的购物车行id集合
List<String> cartGoodsUids = cartGoodsRedisList.stream().filter(cartGoods1 -> currentUserId.equals(cartGoods1.getUserId())).map(CartGoods::getCartGoodsUid).collect(Collectors.toList());
......@@ -410,7 +424,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,coupons,null,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount);
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,coupons,null,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount);
if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
......@@ -830,8 +844,13 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
public BaseResponse clearPartCarGoods(ShoppingCartCollageClearRequestVo shoppingCartCollageClearRequestVo) {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(shoppingCartCollageClearRequestVo.getSessionId());
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo);
CustomerInfoVo currentUserInfoVo = getCustomerInfoVo(shoppingCartCollageClearRequestVo.getSessionId());
// 当前用户必须登陆
if (null == currentUserInfoVo || StringUtils.isEmpty(currentUserInfoVo.getMemberId())) {
throw new ServiceException(ResponseResult.NOT_LOGIN);
}
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(currentUserInfoVo);
String currentUserId = userLoginInfoDto.getMemberId();
//String currentSessionId = shoppingCartCollageClearRequestVo.getSessionId();
String partnerId = shoppingCartCollageClearRequestVo.getPartnerId();
......@@ -858,13 +877,15 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
// 购物车版本加锁
dolock(partnerId, storeId, crateUserId,shoppingCartCollageClearRequestVo.getCarVer());
List<CartGoods> cartGoodsList = null;
List<CartGoods> cartGoodsList = new ArrayList<>();
try {
// 获取用户的购物车行id
List<String> goodsUids = collageCartBaseService.getCollageCartGoodsUids(partnerId, storeId, crateUserId,shoppingCartCollageClearRequestVo.getSessionId());
List<String> goodsUids = collageCartBaseService.getCollageCartGoodsUids(partnerId, storeId, crateUserId,currentUserId);
// 清除购物车中的购物车行信息
List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods> nowCartGoodsList = collageCartBaseService.removeGoodsUids(partnerId, storeId, crateUserId,goodsUids);
if(null != nowCartGoodsList && !nowCartGoodsList.isEmpty()){
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(nowCartGoodsList), CartGoods.class);
}
......@@ -881,8 +902,11 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
List<CartGoods> cartGoodsRedisList = assortmentSdkService.setShoppingCart(partnerId, storeId, crateUserId, cartGoodsList, shoppingCartCollageClearRequestVo.getSessionId(), "", 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,shoppingCartCollageClearRequestVo.getSessionId());
List<String> cartGoodsUids = new ArrayList<>();
if(null != cartGoodsRedisList){
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(), "shoppingCartCollageServiceImpl updateGoodsQty:" + e.getMessage(), e);
......@@ -899,7 +923,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Long deliveryAmount = calculateDeliveryAmount(receiveId, partnerId, storeId, userLoginInfoDto.getWxAppid(), shoppingCartGoodsResponseVo);
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
=getCalculationDiscountResult(menuType,partnerId,storeId,crateUserId,appId,userLoginInfoDto.getWxAppid(),orderType,currentUserInfoVo.isMemberPaid(),cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
}
......
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