Browse Source

SVIP可见购物车bugfix

chao 3 years ago
parent
commit
95a17976cf

+ 19 - 4
src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java

@@ -146,7 +146,7 @@ public class CartClubServiceImpl implements CartClubService {
                     boolean taxFlag = productService.setCartItemImgAndTax(cartItemVo);
                     // 商品可见度: 3:所有人可见,2:普通机构可见,1:会员机构可见,4:仅医美机构可见
                     Integer visibility = cartItemVo.getVisibility();
-                    boolean visibleFlag = visibility == 3 || visibility==2 || (visibility == 1 && finalUserIdentity == 2) || (visibility == 4 && finalUserClubType == 1);
+                    boolean visibleFlag = visibility == 3 || visibility==2 || (visibility == 1 && (finalUserIdentity == 2 || svipUserFlag)) || (visibility == 4 && finalUserClubType == 1);
                     if (!visibleFlag) {
                         //不可见商品 不加入失效商品,直接去除
                         productIterator.remove();
@@ -555,7 +555,7 @@ public class CartClubServiceImpl implements CartClubService {
             Integer finalUserIdentity = userIdentity;
             cartList.removeIf(cartItemVo -> !(
                 // visibility商品可见度: 3:所有人可见,2:普通机构可见,1:会员机构可见,4:仅医美机构可见
-                (cartItemVo.getVisibility() == 3 || cartItemVo.getVisibility()==2 || (cartItemVo.getVisibility() == 1 && finalUserIdentity == 2) || (cartItemVo.getVisibility() == 4 && finalUserClubType == 1))
+                (cartItemVo.getVisibility() == 3 || cartItemVo.getVisibility()==2 || (cartItemVo.getVisibility() == 1 && (finalUserIdentity == 2 || svipUserFlag)) || (cartItemVo.getVisibility() == 4 && finalUserClubType == 1))
                 // 价格可见度: 0公开价格,1不公开价格,2仅对会员机构公开,3仅对医美机构公开
                 || (cartItemVo.getPriceFlag() == 0 || (cartItemVo.getPriceFlag() == 2 && (finalUserIdentity == 2 || svipUserFlag)) || (cartItemVo.getPriceFlag() == 3 && finalUserClubType == 1))
                 // 是否库存充足
@@ -799,11 +799,26 @@ public class CartClubServiceImpl implements CartClubService {
         if (null != cartList && cartList.size() > 0) {
             // 用户身份
             Integer userIdentity = baseMapper.getIdentityByUserId(userId);
+            userIdentity = null == userIdentity ? 0 : userIdentity;
             // 超级会员标识
             Integer svipUserId = baseMapper.getSvipUserIdByUserId(userId);
             boolean svipUserFlag = null != svipUserId;
-            // 移除价格不可见商品
-            cartList.removeIf(cartItemVo -> !(cartItemVo.getPriceFlag() == 0 || (cartItemVo.getPriceFlag() == 2 && (userIdentity == 2 || svipUserFlag))));
+            // 会员机构类型:1医美,2生美
+            Integer userClubType = 0;
+            if (null != userIdentity && userIdentity == 2) {
+                userClubType = cartClubMapper.getClubTypeById(userId);
+                userClubType = null == userClubType ? 0 : userClubType;
+            }
+            int finalUserIdentity = userIdentity;
+            int finalUserClubType = userClubType;
+            cartList.removeIf(cartItemVo -> !(
+                // visibility商品可见度: 3:所有人可见,2:普通机构可见,1:会员机构可见,4:仅医美机构可见
+                (cartItemVo.getVisibility() == 3 || cartItemVo.getVisibility()==2 || (cartItemVo.getVisibility() == 1 && (finalUserIdentity == 2 || svipUserFlag)) || (cartItemVo.getVisibility() == 4 && finalUserClubType == 1))
+                // 价格可见度: 0公开价格,1不公开价格,2仅对会员机构公开,3仅对医美机构公开
+                || (cartItemVo.getPriceFlag() == 0 || (cartItemVo.getPriceFlag() == 2 && (finalUserIdentity == 2 || svipUserFlag)) || (cartItemVo.getPriceFlag() == 3 && finalUserClubType == 1))
+                // 是否库存充足
+                || (cartItemVo.getStock() != null && cartItemVo.getStock() > 0 && cartItemVo.getStock() >= cartItemVo.getMin() && cartItemVo.getStock() >= cartItemVo.getNumber())
+            ));
             return cartList.size();
         } else {
             return 0;