Преглед на файлове

更新获取文章信息, 图片和视频分开存放

fangzhen преди 9 месеца
родител
ревизия
4d78f763cf

+ 4 - 0
ruoyi-framework/pom.xml

@@ -77,6 +77,10 @@
             <artifactId>fastjson</artifactId>
             <version>2.0.31</version>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-generator</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 6 - 6
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java

@@ -1,11 +1,5 @@
 package com.ruoyi.framework.web.service;
 
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.generator.domain.Community.CommunityUserInfo;
-import com.ruoyi.generator.mapper.community.CommunityUserInfoMapper;
-import org.apache.commons.lang3.RandomUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.constant.CacheConstants;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.constant.UserConstants;
@@ -14,13 +8,19 @@ import com.ruoyi.common.core.domain.model.RegisterBody;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.user.CaptchaException;
 import com.ruoyi.common.exception.user.CaptchaExpireException;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.MessageUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.manager.AsyncManager;
 import com.ruoyi.framework.manager.factory.AsyncFactory;
+import com.ruoyi.generator.domain.Community.CommunityUserInfo;
+import com.ruoyi.generator.mapper.community.CommunityUserInfoMapper;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
+import org.apache.commons.lang3.RandomUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * 注册校验方法

+ 41 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -15,6 +15,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
@@ -96,6 +98,22 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
             communityArticleVos = communityArticleMapper.selectCommunityArticleList(communityArticle, circleIds, offset, pageSize);
             Long userId = SecurityUtils.getUserId();
             for (CommunityArticleVo articleVo : communityArticleVos) {
+                List<CommunityArticleImages> imageList = articleVo.getImageList();
+                List<CommunityArticleImages> videoList = new ArrayList<>();
+                CommunityArticleImages videos = null;
+                for (CommunityArticleImages image : imageList) {
+                    videos = new CommunityArticleImages();
+                    String imageUrl = image.getImageUrl();
+                    //判断是否是视频
+                    boolean isVideo = isVideoFile(imageUrl);
+                    if (isVideo) {
+                        imageList.remove(image);
+                        BeanUtils.copyProperties(image, videos);
+                        videoList.add(videos);
+                    }
+                }
+                articleVo.setVideoList(videoList);
+
                 //设置文章的点赞数量
                 articleVo.setLikeCount(communityLikeMapper
                         .selectList(new QueryWrapper<CommunityLike>()
@@ -427,4 +445,27 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
         return communityUserLikeVos;
     }
 
+    /**
+     * 判断是否是视频文件
+     *
+     * @param fileUrl 文件地址
+     * @return 结果
+     */
+    public static boolean isVideoFile(String fileUrl) {
+        try {
+            // 打开 HTTP 连接
+            URL url = new URL(fileUrl);
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("GET");
+
+            // 获取文件类型
+            String mimeType = connection.getContentType();
+
+            // 判断是否为视频类型
+            return mimeType != null && mimeType.startsWith("video");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
 }

+ 5 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityArticleVo.java

@@ -1,5 +1,6 @@
 package com.ruoyi.generator.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.generator.domain.Community.CommunityArticleImages;
@@ -79,6 +80,10 @@ public class CommunityArticleVo extends BaseEntity implements Serializable {
     @ApiModelProperty("文章图片集合")
     private List<CommunityArticleImages> imageList;
 
+    @ApiModelProperty("文章视频集合")
+    @TableField(exist = false)
+    private List<CommunityArticleImages> videoList;
+
     @ApiModelProperty("文章评论信息")
     private List<CommunityArticleCommentVo> comments;