Переглянути джерело

新增会员优惠和活动不同时享受限制

codingliang 6 місяців тому
батько
коміт
83b26856b8

+ 4 - 0
src/main/java/com/sqx/modules/goods/entity/GoodsShop.java

@@ -265,6 +265,10 @@ public class GoodsShop implements Serializable {
     @ApiModelProperty("参与活动列表")
     private List<ShopActivityVO>  shopActivityList;
 
+    @TableField(exist = false)
+    @ApiModelProperty("会员优惠描述")
+    private String vipPromotionDesc;
+
     public GoodsShop() {
     }
 }

+ 16 - 4
src/main/java/com/sqx/modules/goods/service/impl/GoodsServiceImpl.java

@@ -538,8 +538,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
         List<GoodsShop> records = goodsShopIPage.getRecords();
 
         if (CollUtil.isNotEmpty(records)) {
-            CommonInfo one1 = commonInfoService.findOne(292);
-            CommonInfo one2 = commonInfoService.findOne(293);
             List<Long> shopIdList = records.stream().map(GoodsShop::getShopId).collect(Collectors.toList());
             List<Goods> goodsList = goodsDao.selectGoodsBySalesAndGoodsNameAndShopIds(shopIdList, queryDTO.getImpotr());
             Map<Long, List<Goods>> goodsMap = goodsList.stream().collect(Collectors.groupingBy(Goods::getShopId));
@@ -551,13 +549,27 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsDao, Goods> implements Go
             List<ShopActivityVO> shopActivityVOS = activityShopService.getActivityByShopIds(shopIdList);
             Map<Long, List<ShopActivityVO>> shopActivityMap = shopActivityVOS.stream().collect(Collectors.groupingBy(ShopActivityVO::getShopId));
 
+            CommonInfo vipPromotionMinAmount = commonInfoService.findOne(446);
+            CommonInfo vipPromotionAmount = commonInfoService.findOne(444);
+            String vipPromotionDesc = "满" + vipPromotionMinAmount.getMin() + "元减" + vipPromotionAmount.getMin() + "元";
+
+            CommonInfo one1 = commonInfoService.findOne(292);
+            CommonInfo one2 = commonInfoService.findOne(293);
             for (int a = 0; a < goodsShopIPage.getRecords().size(); a++) {
                 GoodsShop goodsShop = goodsShopIPage.getRecords().get(a);
                 Long shopId = goodsShop.getShopId();
                 goodsShop.setCouponList(couponMap.get(shopId));
 
-                // 设置活动信息
-                goodsShop.setShopActivityList(shopActivityMap.get(shopId));
+                // 会员专区查询
+                if (StrUtil.equals(queryDTO.getVipPromotion(), goodsShop.getVipPromotion())) {
+                    // 设置会员优惠描述
+                    goodsShop.setVipPromotionDesc(vipPromotionDesc);
+                }
+                // 非会员专区查询
+                else {
+                    // 设置活动信息
+                    goodsShop.setShopActivityList(shopActivityMap.get(shopId));
+                }
 
                 if (StringUtils.isNotEmpty(queryDTO.getImpotr())) {
                     goodsShop.setGoodsList(goodsMap.get(shopId));

+ 8 - 3
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -510,15 +510,15 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         // 校验地址、配送费信息
         checkAddress(parentOrder, payOrderDTO.getAddressId(), goodsShop);
 
+        // 校验是否参与vip优惠
+        checkVipPromotion(parentOrder, goodsShop, userId);
+
         // 检查活动优惠信息
         checkActivity(payOrderDTO.getActivityId(), parentOrder);
 
         // 校验优惠券信息
         checkCoupon(parentOrder, userId);
 
-        // 校验是否参与vip优惠
-        checkVipPromotion(parentOrder, goodsShop, userId);
-
         // 计算店铺收益
         calcShopIncome(parentOrder, goodsShop);
 
@@ -602,6 +602,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
      * @param parentOrder 订单信息
      */
     private void checkActivity(Long activityId, TbOrder parentOrder) {
+        // 参加了会员优惠,则不参与活动优惠
+        if (StrUtil.equals(parentOrder.getVipPromotion(), Constant.YES)) {
+            return;
+        }
+
         OrderSuitActivityVO orderBestActivity = null;
 
         // 获取当前订单适用的活动列表