Explorar o código

修改用户端的营销活动部分逻辑,只有已审核通过的才显示的问题

ldz hai 1 semana
pai
achega
0358efdcfe

+ 29 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreInfoServiceImpl.java

@@ -33,8 +33,11 @@ import shop.alien.entity.store.excelVo.util.ExcelExporter;
 import shop.alien.entity.store.excelVo.util.ExcelGenerator;
 import shop.alien.entity.store.vo.*;
 import shop.alien.entity.storePlatform.StoreLicenseHistory;
+import shop.alien.entity.storePlatform.StoreOperationalActivity;
 import shop.alien.mapper.*;
 import shop.alien.mapper.storePlantform.StoreLicenseHistoryMapper;
+import shop.alien.mapper.storePlantform.StoreOperationalActivityMapper;
+import shop.alien.mapper.storePlantform.StoreOperationalActivityMapper;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.config.GaoDeMapUtil;
 import shop.alien.store.config.WebSocketProcess;
@@ -154,6 +157,10 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
 
     private final StoreImgService storeImgService;
 
+    /**
+     * 运营活动数据访问对象
+     */
+    private final StoreOperationalActivityMapper storeOperationalActivityMapper;
 
     /**
      * 商户证照历史记录数据访问对象
@@ -2905,13 +2912,33 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
 
     /**
      * 获取活动banner图
+     * 关联查询 store_img 和 store_operational_activity 表
+     * 关联条件:store_operational_activity.id = store_img.business_id
      */
-
     public List<StoreImg> getBannerUrl(String storeId) {
+        // 先查询符合条件的运营活动(只查询进行中的活动,status=5)
+        LambdaQueryWrapper<StoreOperationalActivity> activityWrapper = new LambdaQueryWrapper<StoreOperationalActivity>()
+                .eq(StoreOperationalActivity::getStoreId, Integer.parseInt(storeId))
+                .eq(StoreOperationalActivity::getDeleteFlag, 0)
+                .eq(StoreOperationalActivity::getStatus, 5);
+        List<StoreOperationalActivity> activities = storeOperationalActivityMapper.selectList(activityWrapper);
+        
+        // 如果没有活动,返回空列表
+        if (CollectionUtils.isEmpty(activities)) {
+            return new ArrayList<>();
+        }
+        
+        // 获取活动ID列表
+        List<Integer> activityIds = activities.stream()
+                .map(StoreOperationalActivity::getId)
+                .collect(Collectors.toList());
+        
+        // 查询与活动关联的图片
         LambdaQueryWrapper<StoreImg> queryWrapper = new LambdaQueryWrapper<StoreImg>()
                 .eq(StoreImg::getStoreId, Integer.parseInt(storeId))
                 .eq(StoreImg::getImgType, 26)
-                .eq(StoreImg::getDeleteFlag, 0);
+                .eq(StoreImg::getDeleteFlag, 0)
+                .in(StoreImg::getBusinessId, activityIds);
         return storeImgMapper.selectList(queryWrapper);
     }