Explorar el Código

refactor(alien-second): 重构二手商品详情信息获取逻辑

- 新增 dealSecondGoodsInfo 方法用于处理商品信息
- 优化 getAdminGoodsDetail 方法,调用新的 dealSecondGoodsInfo 方法
-修复查询商品时未考虑删除标记的问题
wxd hace 3 meses
padre
commit
1d2303d264

+ 7 - 0
alien-second/src/main/java/shop/alien/second/service/SecondGoodsService.java

@@ -188,4 +188,11 @@ public interface SecondGoodsService extends IService<SecondGoods> {
      * @return 操作记录详情
      */
     SecondGoodsRecordDetailVo getAdminGoodsRecordDetail(Integer recordId);
+
+    /**
+     * 处理商品信息(管理后台使用)
+     * @param goodsId 商品ID
+     * @return 处理后的商品详情信息
+     */
+    SecondGoodsDetailVo dealSecondGoodsInfo(Integer goodsId);
 }

+ 33 - 19
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -186,23 +186,8 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
     @Override
     public SecondGoodsDetailVo getAdminGoodsDetail(Integer goodsId) throws Exception {
         SecondGoodsDetailVo detailVo = new SecondGoodsDetailVo();
-        QueryWrapper<SecondGoodsVo> goodsVoQueryWrapper = new QueryWrapper<>();
-        goodsVoQueryWrapper
-                .eq("sg.id", goodsId);
-        // 1. 获取商品基本信息
-        SecondGoodsVo goodsInfo = secondGoodsMapper.getGoodsById(goodsVoQueryWrapper);
-        detailVo.setGoodsInfo(goodsInfo);
-        
-        // 2. 获取商品图片列表
-        QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
-        imageQueryWrapper.lambda()
-                .eq(StoreImg::getStoreId, goodsId)
-                .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS)
-                .eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
-                .orderByAsc(StoreImg::getImgSort);
-        List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
-        detailVo.setImageList(imageList);
-        
+        // 处理商品信息
+        dealSecondGoodsInfo(goodsId);
         // 3. 获取商品操作记录集合
         QueryWrapper<SecondGoodsRecord> recordQueryWrapper = new QueryWrapper<>();
         recordQueryWrapper.lambda()
@@ -243,7 +228,35 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         
         return detailVo;
     }
-    
+
+    @Override
+    public SecondGoodsDetailVo dealSecondGoodsInfo(Integer goodsId) {
+        SecondGoodsDetailVo SecondGoodsDetailVo = new SecondGoodsDetailVo();
+        QueryWrapper<SecondGoodsVo> goodsVoQueryWrapper = new QueryWrapper<>();
+        goodsVoQueryWrapper
+                .eq("sg.id", goodsId);
+        // 1. 获取商品基本信息
+        SecondGoodsVo goodsInfo = secondGoodsMapper.getGoodsById(goodsVoQueryWrapper);
+
+        // 2. 获取商品图片列表
+        QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
+        imageQueryWrapper.lambda()
+                .eq(StoreImg::getStoreId, goodsId)
+                .eq(StoreImg::getImgType, Constants.ImageType.SECOND_HAND_GOODS)
+                .eq(StoreImg::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED)
+                .orderByAsc(StoreImg::getImgSort);
+        List<StoreImg> imageList = storeImgMapper.selectList(imageQueryWrapper);
+        // 提取图片URL列表
+        if (CollectionUtil.isNotEmpty(imageList)) {
+            List<String> imageUrls = imageList.stream()
+                    .map(StoreImg::getImgUrl)
+                    .collect(Collectors.toList());
+            goodsInfo.setImgUrl(imageUrls);
+        }
+        SecondGoodsDetailVo.setGoodsInfo(goodsInfo);
+        return SecondGoodsDetailVo;
+    }
+
     /**
      * 记录商品操作历史
      * @param goods 商品信息
@@ -1608,7 +1621,8 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
                 queryWrapper.eq("sg.delete_flag", Constants.DeleteFlag.DELETED);
             } else {
                 // 其他状态按照商品状态进行查询,并且删除标记为0
-                queryWrapper.eq("sg.goods_status", queryDTO.getGoodsStatus());
+                queryWrapper.eq("sg.goods_status", queryDTO.getGoodsStatus())
+                        .eq("sg.delete_flag", Constants.DeleteFlag.NOT_DELETED);
             }
         }