Browse Source

refactor(alien-second): 优化二手商品举报和展示逻辑

- 修复了商品联系人信息为空时的空指针异常
- 优化了商品图片和举报凭证图片的处理逻辑
-增加了根据图片类型调整处理方式的功能
wxd 3 months ago
parent
commit
7c78b84d7b

+ 20 - 14
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -161,15 +161,18 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         // 2. 转换为VO对象
         SecondGoodsRecordDetailVo detailVo = SecondGoodsRecordDetailVo.fromRecord(record);
 
-        // 获取联系人
-        QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
-        userQueryWrapper.lambda()
-                .eq(LifeUser::getId, record.getUserId())
-                .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
-        LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
+        if (record.getUserId() != null){
+            // 获取联系人
+            QueryWrapper<LifeUser> userQueryWrapper = new QueryWrapper<>();
+            userQueryWrapper.lambda()
+                    .eq(LifeUser::getId, record.getUserId())
+                    .eq(LifeUser::getDeleteFlag, Constants.DeleteFlag.NOT_DELETED);
+            LifeUser user = lifeUserMapper.selectOne(userQueryWrapper);
+
+            detailVo.setUserName(user.getUserName());
+            detailVo.setUserPhone(user.getUserPhone());
+        }
 
-        detailVo.setUserName(user.getUserName());
-        detailVo.setUserPhone(user.getUserPhone());
 
         // 3. 获取商品图片列表
         QueryWrapper<StoreImg> imageQueryWrapper = new QueryWrapper<>();
@@ -185,7 +188,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             List<String> imageUrls = imageList.stream()
                     .map(StoreImg::getImgUrl)
                     .collect(Collectors.toList());
-            List<Map<String, Object>> imgList = processReportImages(imageUrls);
+            List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
             detailVo.setImgList(imgList);
             detailVo.setImageUrls(imageUrls);
         }
@@ -268,7 +271,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             List<String> imageUrls = imageList.stream()
                     .map(StoreImg::getImgUrl)
                     .collect(Collectors.toList());
-            List<Map<String, Object>> imgList = processReportImages(imageUrls);
+            List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
             goodsInfo.setImgList(imgList);
             goodsInfo.setImgUrl(imageUrls);
         }
@@ -296,7 +299,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             List<String> imageUrls = imageList.stream()
                     .map(StoreImg::getImgUrl)
                     .collect(Collectors.toList());
-            List<Map<String, Object>> imgList = processReportImages(imageUrls);
+            List<Map<String, Object>> imgList = processReportImages(imageUrls,2);
             goodsInfo.setImgList(imgList);
             goodsInfo.setImgUrl(imageUrls);
         }
@@ -460,7 +463,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             // 处理举报凭证图片
             if (StringUtils.hasText(report.getReportEvidenceImg())) {
                 List<String> urlList = Arrays.asList(report.getReportEvidenceImg().split(","));
-                List<Map<String, Object>> imgList = processReportImages(urlList);
+                List<Map<String, Object>> imgList = processReportImages(urlList,1);
                 reportingVo.setImgList(imgList);
             }
             
@@ -473,9 +476,10 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
     /**
      * 处理举报凭证图片
      * @param urlList 图片URL集合
+     * @param type  类型 1-举报 2-商品
      * @return 图片列表
      */
-    private List<Map<String, Object>> processReportImages(List<String> urlList) {
+    private List<Map<String, Object>> processReportImages(List<String> urlList, Integer type) {
         List<Map<String, Object>> list = new ArrayList<>();
         List<String> videoList = new ArrayList<>();
         List<String> videoFileType = Arrays.asList("mp4", "avi", "flv", "mkv", "rmvb", "wmv", "3gp", "mov");
@@ -496,7 +500,9 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
                 videoList.add(contains);
                 if (videoFileType.contains(fileType.toLowerCase())) {
                     map.put("type", "video");
-                    map.put("imgUrl", urlList.get(i + 1));
+                    if (type == 1){
+                        map.put("imgUrl", urlList.get(i + 1));
+                    }
                     map.put("videoUrl", urlList.get(i));
                 } else {
                     map.put("type", "image");