Explorar el Código

修改用户端关注 可能感兴趣的人bug

liudongzhi hace 2 meses
padre
commit
f6cc35e15d

+ 31 - 0
alien-store/src/main/java/shop/alien/store/controller/StoreInfoController.java

@@ -1653,10 +1653,41 @@ public class StoreInfoController {
             Set<Integer> excludedStoreIds = new HashSet<>(blacklistedStoreIds);
             excludedStoreIds.addAll(followedStoreIds);
             
+            // 查询所有有头图的店铺ID(img_type 为 20 或 21)
+            Set<Integer> storesWithHeadImg = new HashSet<>();
+            try {
+                LambdaQueryWrapper<StoreImg> headImgWrapper = new LambdaQueryWrapper<>();
+                headImgWrapper.in(StoreImg::getImgType, Arrays.asList(20, 21)) // 20:头图单图模式, 21:头图多图模式
+                             .eq(StoreImg::getDeleteFlag, 0);
+                List<StoreImg> headImgList = storeImgMapper.selectList(headImgWrapper);
+                
+                if (!CollectionUtils.isEmpty(headImgList)) {
+                    for (StoreImg storeImg : headImgList) {
+                        if (storeImg.getStoreId() != null) {
+                            storesWithHeadImg.add(storeImg.getStoreId());
+                        }
+                    }
+                }
+                log.info("查询到有头图的店铺数量: {}", storesWithHeadImg.size());
+            } catch (Exception e) {
+                log.error("查询有头图的店铺失败 - error: {}", e.getMessage(), e);
+                // 如果查询失败,返回空结果
+                return R.data(new Page<>(pageNum, pageSize, 0));
+            }
+            
+            // 如果没有有头图的店铺,直接返回空结果
+            if (storesWithHeadImg.isEmpty()) {
+                log.info("没有找到有头图的店铺");
+                return R.data(new Page<>(pageNum, pageSize, 0));
+            }
+            
             // 构建查询条件
             LambdaQueryWrapper<StoreInfo> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(StoreInfo::getDeleteFlag, 0); // 未删除
             
+            // 只查询有头图的店铺
+            queryWrapper.in(StoreInfo::getId, storesWithHeadImg);
+            
             // 排除被拉黑和已关注的店铺
             if (!excludedStoreIds.isEmpty()) {
                 queryWrapper.notIn(StoreInfo::getId, excludedStoreIds);