Sfoglia il codice sorgente

预览增删改查代码提交

pans 8 mesi fa
parent
commit
22a6491095

+ 3 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/TranscodingController.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
+import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
 import vip.xiaonuo.disk.service.TranscodingService;
 
 import javax.annotation.Resource;
@@ -38,8 +39,8 @@ public class TranscodingController {
         return transcodingService.transcodingVideo(transcodingReqDTO);
     }
     @PostMapping("/transcodingResource/file")
-    public CommonResult<String> transcodingResource(@RequestBody TranscodingReqDTO transcodingReqDTO) {
-        return transcodingService.transcodingResource(transcodingReqDTO);
+    public CommonResult<String> transcodingResource(@RequestBody TranscodingResourceReqDTO transcodingResourceReqDTO) {
+        return transcodingService.transcodingResource(transcodingResourceReqDTO);
     }
 
 }

+ 23 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/dto/file/TranscodingResourceReqDTO.java

@@ -0,0 +1,23 @@
+package vip.xiaonuo.disk.dto.file;
+
+import lombok.Data;
+
+@Data
+public class TranscodingResourceReqDTO {
+    /**
+     * 文件id
+     */
+    private String userFileId;
+
+    /**
+     * 转码类型 0: 视频 1: 文档
+     */
+    private Integer transcodingType;
+
+    /**
+     * 转码格式
+     * 视频:mp4 wmv avi flv mpeg mpg rmvb mov
+     * 文档:pdf doc docx ppt pptx xls xlsx
+     */
+    private String format;
+}

+ 2 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/TranscodingService.java

@@ -2,6 +2,7 @@ package vip.xiaonuo.disk.service;
 
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
+import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
 
 /**
  * 资源转码 service
@@ -18,5 +19,5 @@ public interface TranscodingService {
      */
     CommonResult<String> transcodingVideo(TranscodingReqDTO transcodingReqDTO);
 
-    CommonResult<String> transcodingResource(TranscodingReqDTO transcodingReqDTO);
+    CommonResult<String> transcodingResource(TranscodingResourceReqDTO transcodingResourceReqDTO);
 }

+ 53 - 19
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/TranscodingServiceImpl.java

@@ -13,6 +13,7 @@ import vip.xiaonuo.disk.domain.ResourceFile;
 import vip.xiaonuo.disk.domain.ResourceUserFile;
 import vip.xiaonuo.disk.domain.UserFile;
 import vip.xiaonuo.disk.dto.file.TranscodingReqDTO;
+import vip.xiaonuo.disk.dto.file.TranscodingResourceReqDTO;
 import vip.xiaonuo.disk.mapper.FileMapper;
 import vip.xiaonuo.disk.mapper.ResourceFileMapper;
 import vip.xiaonuo.disk.mapper.ResourceUserFileMapper;
@@ -24,6 +25,8 @@ import vip.xiaonuo.disk.util.VideoConverter;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * 资源转码 service
@@ -109,47 +112,84 @@ public class TranscodingServiceImpl implements TranscodingService {
     }
 
     @Override
-    public CommonResult<String> transcodingResource(TranscodingReqDTO transcodingReqDTO) {
+    public CommonResult<String> transcodingResource(TranscodingResourceReqDTO transcodingResourceReqDTO) {
         // 校验目标文件是否存在,是否是本人的
         String userId = StpLoginUserUtil.getLoginUser().getId();
         QueryWrapper<ResourceUserFile> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(ResourceUserFile::getFileId, transcodingReqDTO.getFileId());
+        queryWrapper.lambda().eq(ResourceUserFile::getUserFileId, transcodingResourceReqDTO.getUserFileId());
         ResourceUserFile userFile = resourceUserFileMapper.selectOne(queryWrapper);
         if (userFile == null || !userFile.getUserId().equals(userId)) {
             return CommonResult.error("文件不存在或不是本人的");
         }
+
+        List<String> videoList= Arrays.asList("wmv","avi","flv","mpeg","mpg","rmvb","mov");
+
+        List<String> wordList= Arrays.asList("doc","docx","ppt","pptx","xls","xlsx");
+
+
         ResourceFile fileBean = resourceFileMapper.selectById(userFile.getFileId());
         if (fileBean == null) {
             return CommonResult.error("文件不存在");
         }
+        if(videoList.contains(userFile.getExtendName())){
+            transcodingResourceReqDTO.setTranscodingType(0);
+            transcodingResourceReqDTO.setFormat("mp4");
+        }
+
+        if(wordList.contains(userFile.getExtendName())){
+            transcodingResourceReqDTO.setTranscodingType(1);
+            transcodingResourceReqDTO.setFormat("pdf");
+        }
+
+
         // 构建转码格式列表
         ArrayList<String> formatList = new ArrayList<>();
-        formatList.add(transcodingReqDTO.getFormat());
+        formatList.add(transcodingResourceReqDTO.getFormat());
         // 判断视频还是图片
-        if (transcodingReqDTO.getTranscodingType() == 0) {
+        if (transcodingResourceReqDTO.getTranscodingType() == 0) {
             try {
                 // 转码视频
                 // mp4 wmv avi flv mpeg mpg rmvb mov 互相转
-                videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingReqDTO.getFormat()});
-                // 转换后把文件信息新增到数据库
-                saveResourceFile(fileBean, transcodingReqDTO);
+                videoConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId(), new String[]{transcodingResourceReqDTO.getFormat()});
+               //根据文件id修改预览地址
+                if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
+                    ResourceFile newFile = new ResourceFile();
+                    newFile.setFileId(fileBean.getFileId());
+                    newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
+                    resourceFileMapper.updateById(newFile);
+                }else{
+                    ResourceFile newFile = new ResourceFile();
+                    newFile.setFileId(fileBean.getFileId());
+                    newFile.setPreviewFileUrl(fileBean.getFileUrl());
+                    resourceFileMapper.updateById(newFile);
+                }
             } catch (Exception ex) {
                 log.error(ex.getMessage());
                 return CommonResult.error("格式转换失败");
             }
-        } else if (transcodingReqDTO.getTranscodingType() == 1) {
+        } else if (transcodingResourceReqDTO.getTranscodingType() == 1) {
             // 转码文档
             // pdf doc docx ppt pptx xls xlsx
             // doc转docx,ppt转pptx,xls转xlsx 所有均转pdf
             // 判断目标格式
             try {
-                if ("pdf".equals(transcodingReqDTO.getFormat())) {
-                    pdfUtils.convertToPdf(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
+                if ("pdf".equals(transcodingResourceReqDTO.getFormat())) {
+                    pdfUtils.convertToPdf(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
                 } else {
-                    officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
+                    officeConverter.convertAndUpload(fileBean.getFileUrl(), fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
+                }
+                //根据文件id修改预览地址
+                if(videoList.contains(userFile.getExtendName())||wordList.contains(userFile.getExtendName())){
+                    ResourceFile newFile = new ResourceFile();
+                    newFile.setFileId(fileBean.getFileId());
+                    newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingResourceReqDTO.getFormat());
+                    resourceFileMapper.updateById(newFile);
+                }else{
+                    ResourceFile newFile = new ResourceFile();
+                    newFile.setFileId(fileBean.getFileId());
+                    newFile.setPreviewFileUrl(fileBean.getFileUrl());
+                    resourceFileMapper.updateById(newFile);
                 }
-                // 转换后把文件信息新增到数据库
-                saveResourceFile(fileBean, transcodingReqDTO);
             } catch (Exception ex) {
                 log.error("格式转换:"+ex.getMessage());
                 return CommonResult.error("格式转换失败");
@@ -158,12 +198,6 @@ public class TranscodingServiceImpl implements TranscodingService {
         return CommonResult.ok("格式转换成功");
     }
 
-    public void saveResourceFile(ResourceFile fileBean, TranscodingReqDTO transcodingReqDTO) {
-        ResourceFile newFile = new ResourceFile();
-        newFile.setFileId(fileBean.getFileId());
-        newFile.setPreviewFileUrl("converted/" + fileBean.getFileId() + "." + transcodingReqDTO.getFormat());
-        resourceFileMapper.updateById(newFile);
-    }
 
 
     /**