Commit 80cb7cc5 by 刘鹏飞

拼单购物车个人清除清除

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