Commit 7e527b4f by ping.wu

Merge branches 'develop' and 'feature/20200915_购物车添加限制数量_wuping' of…

Merge branches 'develop' and 'feature/20200915_购物车添加限制数量_wuping' of http://gitlab.freemud.com/order-group-application/order-group into develop
parents ee2c75cd dde7085d
...@@ -265,7 +265,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -265,7 +265,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/ */
Integer checkQty = this.checkSkuQty(allCartGoodsList, cartGoods); Integer checkQty = this.checkSkuQty(allCartGoodsList, cartGoods);
//购物车添加数量限制 //购物车添加数量限制
limitGoodsQty(checkQty,appId); Integer productsCount = limitGoodsQty(allCartGoodsList,cartGoods,appId);
//查询多个商品库存信息 //查询多个商品库存信息
queryManyGoodsStocks(addShoppingCartGoodsRequestVo, productIds, productBeanListSpuClass, skuId, checkQty); queryManyGoodsStocks(addShoppingCartGoodsRequestVo, productIds, productBeanListSpuClass, skuId, checkQty);
String productName = null; String productName = null;
...@@ -284,7 +284,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -284,7 +284,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount); =getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
sendGoodsQtyCheck(checkQty,appId,partnerId, userId, storeId,tableNumber, oldCartGoodsList,shoppingCartBaseService,calculationDiscountResult.getSendGoods()); sendGoodsQtyCheck(productsCount,appId,partnerId, userId, storeId,tableNumber, oldCartGoodsList,shoppingCartBaseService,calculationDiscountResult.getSendGoods());
// 当商品数量被设为0时 // 当商品数量被设为0时
if (Objects.equals(cartGoods.getQty(), 0)) { if (Objects.equals(cartGoods.getQty(), 0)) {
assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService); assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService);
...@@ -357,8 +357,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -357,8 +357,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (cartGoods == null) { if (cartGoods == null) {
throw new ServiceException(ResponseResult.SHOPPING_CART_UPDATE_ERROR); throw new ServiceException(ResponseResult.SHOPPING_CART_UPDATE_ERROR);
} }
//购物车添加数量限制
limitGoodsQty(qty,appId);
// 检查购物车商品库存数量 // 检查购物车商品库存数量
checkUpdateStock(updateShoppingCartGoodsQtyRequestVo, cartGoods); checkUpdateStock(updateShoppingCartGoodsQtyRequestVo, cartGoods);
...@@ -385,7 +383,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -385,7 +383,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
// return shoppingCartGoodsResponseVo; // return shoppingCartGoodsResponseVo;
} }
sendGoodsQtyCheckForUpdate(qty,cartGoods.getQty(),appId,partnerId, userId, storeId,null, cartGoodsUid,shoppingCartBaseService,calculationDiscountResult.getSendGoods()); sendGoodsQtyCheckForUpdate(cartGoodsList,cartGoods.getQty(),appId,partnerId, userId, storeId,null, cartGoodsUid,shoppingCartBaseService,calculationDiscountResult.getSendGoods());
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType());
...@@ -1652,12 +1650,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1652,12 +1650,19 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
/** /**
* 查询生态配置限制加购开关与限制数量 * 查询生态配置限制加购开关与限制数量
*/ */
public void limitGoodsQty(Integer qty,String appid){ public Integer limitGoodsQty(List<CartGoods> oldCartGoodsList, CartGoods cartGoods,String appid){
Integer qty = 0;
if(CollectionUtils.isNotEmpty(oldCartGoodsList)){
for (CartGoods goods : oldCartGoodsList) {
qty += goods.getQty();
}
}
qty += cartGoods.getQty();
String redisKey = limitCartKey + appid; String redisKey = limitCartKey + appid;
Object value = redisCache.hashGet(redisKey, "2"); Object value = redisCache.hashGet(redisKey, "2");
if (value == null) { if (value == null) {
return ; return qty;
} else { } else {
JSONArray jsonArray = (JSONArray)value; JSONArray jsonArray = (JSONArray)value;
int cartLimitFlag = 0; int cartLimitFlag = 0;
...@@ -1666,9 +1671,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1666,9 +1671,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
JSONObject jsonObject = (JSONObject)object; JSONObject jsonObject = (JSONObject)object;
HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class); HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class);
if("cartLimitFlag".equals(hashMap.get("appKey"))){ if("cartLimitFlag".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return qty;
}
cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue")); cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue"));
} }
if("cartLimitCount".equals(hashMap.get("appKey"))){ if("cartLimitCount".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return qty;
}
cartLimitCount = Integer.parseInt((String)hashMap.get("appValue")); cartLimitCount = Integer.parseInt((String)hashMap.get("appValue"));
} }
} }
...@@ -1676,7 +1687,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1676,7 +1687,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
throw new ServiceException(ResponseResult.SHOPPING_CART_LIMIT_ADD); throw new ServiceException(ResponseResult.SHOPPING_CART_LIMIT_ADD);
} }
} }
return qty;
} }
...@@ -1706,9 +1717,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1706,9 +1717,15 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
JSONObject jsonObject = (JSONObject)object; JSONObject jsonObject = (JSONObject)object;
HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class); HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class);
if("cartLimitFlag".equals(hashMap.get("appKey"))){ if("cartLimitFlag".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return;
}
cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue")); cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue"));
} }
if("cartLimitCount".equals(hashMap.get("appKey"))){ if("cartLimitCount".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return;
}
cartLimitCount = Integer.parseInt((String)hashMap.get("appValue")); cartLimitCount = Integer.parseInt((String)hashMap.get("appValue"));
} }
} }
...@@ -1723,16 +1740,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1723,16 +1740,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
/** /**
* 购物车添加完成后促销返回赠送商品总数量校验 * 购物车添加完成后促销返回赠送商品总数量校验
*/ */
public void sendGoodsQtyCheckForUpdate(Integer updateQty,Integer goodsQty,String appid,String partnerId, String userId, String storeId, String cartGoodsUid,String tableNumber, ShoppingCartBaseService shoppingCartService,List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivitys){ public void sendGoodsQtyCheckForUpdate(List<CartGoods> cartGoodsList,Integer goodsQty,String appid,String partnerId, String userId, String storeId, String cartGoodsUid,String tableNumber, ShoppingCartBaseService shoppingCartService,List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivitys){
if(CollectionUtils.isEmpty(sendActivitys)){ Integer updateQty = 0;
return; if(CollectionUtils.isNotEmpty(cartGoodsList)){
} for (CartGoods goods : cartGoodsList) {
int sendQty = 0; updateQty += goods.getQty();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivitys){
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoods : sendActivity.getSendGoods()){
sendQty += sendGoods.getSendNumber();
} }
} }
String redisKey = limitCartKey + appid; String redisKey = limitCartKey + appid;
Object value = redisCache.hashGet(redisKey, "2"); Object value = redisCache.hashGet(redisKey, "2");
...@@ -1746,12 +1761,27 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1746,12 +1761,27 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
JSONObject jsonObject = (JSONObject)object; JSONObject jsonObject = (JSONObject)object;
HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class); HashMap hashMap = JSONObject.parseObject(jsonObject.toJSONString(),HashMap.class);
if("cartLimitFlag".equals(hashMap.get("appKey"))){ if("cartLimitFlag".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return;
}
cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue")); cartLimitFlag = Integer.parseInt((String)hashMap.get("appValue"));
} }
if("cartLimitCount".equals(hashMap.get("appKey"))){ if("cartLimitCount".equals(hashMap.get("appKey"))){
if (StringUtils.isBlank((String)hashMap.get("appValue"))) {
return;
}
cartLimitCount = Integer.parseInt((String)hashMap.get("appValue")); cartLimitCount = Integer.parseInt((String)hashMap.get("appValue"));
} }
} }
int sendQty = 0;
if(CollectionUtils.isNotEmpty(sendActivitys)){
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivitys){
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoods : sendActivity.getSendGoods()){
sendQty += sendGoods.getSendNumber();
}
}
}
if(cartLimitFlag == 1 && cartLimitCount != 0 && updateQty+sendQty > cartLimitCount){ if(cartLimitFlag == 1 && cartLimitCount != 0 && updateQty+sendQty > cartLimitCount){
assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoodsUid, goodsQty, "", shoppingCartBaseService); assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoodsUid, goodsQty, "", shoppingCartBaseService);
throw new ServiceException(ResponseResult.SHOPPING_CART_LIMIT_ADD); throw new ServiceException(ResponseResult.SHOPPING_CART_LIMIT_ADD);
......
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