Selaa lähdekoodia

发布商品使用处理修改i

wxd 12 tuntia sitten
vanhempi
commit
64446a5b61

+ 21 - 17
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -117,7 +117,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             return false; // 如果获取不到ID,视为操作失败
         }
         // 保存商品图片信息
-        return saveStoreImages(savedGoodsId, goods.getImgUrl());
+        return saveStoreImages(savedGoodsId, goods);
     }
 
 
@@ -149,7 +149,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             }
 
             // 保存商品图片信息
-            if (!saveStoreImages(savedGoodsId, goodsDTO.getImgUrl())) {
+            if (!saveStoreImages(savedGoodsId, goodsDTO )) {
                 return false;
             }
             goods = secondGoodsMapper.selectById(savedGoodsId);
@@ -194,6 +194,9 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
 
         // 图片审核(循环处理)
         List<String> imageUrls = goodsDTO.getImgUrl();
+        if (!StringUtils.isEmpty(goodsDTO.getHomeImage())){
+            imageUrls.add(goodsDTO.getHomeImage());
+        }
         if (imageUrls != null && !imageUrls.isEmpty()) {
             StringBuilder failReasonBuilder = new StringBuilder();
             for (String imageUrl : imageUrls) {
@@ -254,26 +257,26 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
     /**
      * 保存商品图片信息
      * @param savedGoodsId 保存后的商品ID
-     * @param imgUrl 图片URL列表
+     * @param goods .getimgUrl 图片URL列表
      * @return 保存结果
      */
-    private boolean saveStoreImages(Integer savedGoodsId, List<String> imgUrl) {
-        if (CollectionUtil.isEmpty(imgUrl)) {
+    private boolean saveStoreImages(Integer savedGoodsId, SecondGoodsVo goods ) {
+        if (CollectionUtil.isEmpty(goods.getImgUrl())) {
             return true; // 如果没有图片,则返回成功
         }
         // 处理 第一个值为视频地址,获取视频第一帧作为商品封面图
-        String coverImage = getCoverImageFromVideoOrImage(imgUrl);
+        String coverImage = getCoverImageFromVideoOrImage(goods);
         if (coverImage != null) {
             // 更新商品表封面图字段
-            SecondGoods goods = new SecondGoods();
-            goods.setId(savedGoodsId);
-            goods.setHomeImage(coverImage);
-            updateById(goods);
+            SecondGoods secondGoods = new SecondGoods();
+            secondGoods.setId(savedGoodsId);
+            secondGoods.setHomeImage(coverImage);
+            updateById(secondGoods);
         }
         // 保存前先把原有的删除
         storeImgMapper.delete(new LambdaUpdateWrapper<StoreImg>().eq(StoreImg::getStoreId, savedGoodsId));
         // 批量保存图片信息
-        for(int i = 0; i < imgUrl.size(); i++){
+        for(int i = 0; i < goods.getImgUrl().size(); i++){
             StoreImg storeImg = new StoreImg();
             storeImg.setStoreId(savedGoodsId);
             storeImg.setImgType(Constants.ImageType.SECOND_HAND_GOODS);
@@ -284,7 +287,7 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
             storeImg.setUpdatedTime(new Date());
             storeImg.setCreatedUserId(1);
             storeImg.setUpdatedUserId(1);
-            storeImg.setImgUrl(imgUrl.get(i));
+            storeImg.setImgUrl(goods.getImgUrl().get(i));
             // 保存图片 插入store_img数据库
             storeImgMapper.insert(storeImg);
         }
@@ -357,18 +360,19 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
 
     /**
      * 判断并获取商品封面图(若第一个链接是视频,则取第一帧)
-     * @param imgUrl 商品图片/视频链接列表
+     * @param goodsVo imgUrl 商品图片/视频链接列表
      * @return 封面图URL或处理后的图像标识
      */
-    public String getCoverImageFromVideoOrImage(List<String> imgUrl) {
-        if (imgUrl == null || imgUrl.isEmpty()) {
+    public String getCoverImageFromVideoOrImage(SecondGoodsVo goodsVo) {
+        if (goodsVo.getImgUrl() == null || goodsVo.getImgUrl().isEmpty()) {
             return null;
         }
 
-        String firstUrl = imgUrl.get(0);
+        String firstUrl = goodsVo.getImgUrl().get(0);
         if (isVideoUrl(firstUrl)) {
             // 如果是视频,获取第一帧作为封面图
-            return extractFirstFrameAsCover(firstUrl);
+            return goodsVo.getHomeImage();
+//            return extractFirstFrameAsCover(firstUrl);
         } else {
             // 否则直接返回第一个图片链接
             return firstUrl;