zqy
5 天以前 6d7daf7b789b65a5f2837208b6b0cb8fa52a3367
修改接口为json
3个文件已修改
1个文件已添加
94 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/domain/MediaCompressRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -24,6 +24,7 @@
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.utils.RenamedMultipartFile;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.domain.MediaCompressRequest;
import com.ruoyi.service.DownLoadFileService;
import com.ruoyi.service.impl.VideoProcessService;
import lombok.Data;
@@ -515,47 +516,40 @@
    /**
     * 压缩图片或提取视频封面并返回Base64
     *
     * @param file 图片或视频文件
     * @param width 目标宽度,默认100
     * @param height 目标高度,默认100
     * @param quality 图片质量 0.1-1.0,默认0.8
     * @param mediaCompressRequest
     * 包括
     *  file 图片或视频文件
     * width 目标宽度,默认100
     * height 目标高度,默认100
     *  quality 图片质量 0.1-1.0,默认0.8
     * @return Map包含压缩结果和Base64
     */
    @Anonymous
    @PostMapping(value = "/images/zip", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Map<String, Object> compressMediaToBase64(
        @RequestParam(value = "file", required = false) MultipartFile file,
        @RequestParam(value = "filePath", required = false) String filePath,
        @RequestParam(value = "width", defaultValue = "0") int width,
        @RequestParam(value = "height", defaultValue = "0") int height,
        @RequestParam(value = "quality", defaultValue = "0.8") float quality) {
    @PostMapping(value = "/images/zip")
    public Map<String, Object> compressMediaToBase64(@RequestBody MediaCompressRequest mediaCompressRequest) {
        Map<String, Object> result = new HashMap<>();
        if (mediaCompressRequest == null && mediaCompressRequest.getFilePath() == null){
            result.put("success", false);
            result.put("message", "文件不能为空");
            return result;
        }
        String filePath = mediaCompressRequest.getFilePath();
        int width = mediaCompressRequest.getWidth();
        int height = mediaCompressRequest.getHeight();
        float quality = mediaCompressRequest.getQuality();
        System.out.println("--------------"+mediaCompressRequest);
        File trueFile;
        boolean deleteY = true;
        try {
            // 验证文件
            if ((file == null || file.isEmpty()) && filePath == null ) {
                result.put("success", false);
                result.put("message", "文件不能为空");
                return result;
            }
            String fileUel = RuoYiConfig.getProfile() + filePath.replace("/profile","").replace("profile","");
            trueFile = new File(fileUel);
            if ((file == null || file.isEmpty())){
                deleteY = false;
                String fileUel = RuoYiConfig.getProfile() + filePath.replace("/profile","");
                trueFile = new File(fileUel);
            }else {
                trueFile = videoProcessService.convertToFile(file);
            }
            String fileName = trueFile.getName();
            if (fileName.isEmpty() && filePath == null) {
                result.put("success", false);
                result.put("message", "文件名不能为空");
                return result;
            }
            System.out.println("-----------"+fileName);
@@ -566,10 +560,10 @@
            // 判断文件类型
            if (isImageFile(extension)) {
                // 处理图片文件
                return videoProcessService.processImage(trueFile, width, height, quality, extension,deleteY);
                return videoProcessService.processImage(trueFile, width, height, quality, extension);
            } else if (isVideoFile(extension)) {
                // 处理视频文件
                return videoProcessService.processVideo(trueFile,width,height,quality,extension,deleteY);
                return videoProcessService.processVideo(trueFile,width,height,quality,extension);
            } else {
                result.put("success", false);
                result.put("message", "不支持的文件格式:" + extension);
ruoyi-common/src/main/java/com/ruoyi/common/config/ElasticSearchConfig.java
@@ -35,6 +35,9 @@
                new HttpHost(
                        "localhost",
                        8087,
                    "http"
                )
zhang-content/src/main/java/com/ruoyi/domain/MediaCompressRequest.java
New file
@@ -0,0 +1,13 @@
package com.ruoyi.domain;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestParam;
@Data
public class MediaCompressRequest {
    String filePath;
    int width;
    int height;
    float quality;
}
zhang-content/src/main/java/com/ruoyi/service/impl/VideoProcessService.java
@@ -75,7 +75,7 @@
     * 处理图片文件
     */
    public Map<String, Object> processImage(File file, int width, int height,
                                            float quality, String format,boolean deleteY) throws IOException {
                                            float quality, String format) throws IOException {
        Map<String, Object> result = new HashMap<>();
        // 读取图片
@@ -108,11 +108,6 @@
        result.put("compressedHeight", height > 0 ? height : originalHeight);
        result.put("base64", dataUrl);
        result.put("message", "图片压缩成功");
        if (deleteY) {
            file.delete();
            result.put("originalDeleted", false);
            result.put("message", "图片压缩成功");
        }
        return result;
    }
@@ -287,7 +282,7 @@
     * 处理视频文件:生成Base64编码的封面 (使用JavaCV)
     */
    public Map<String, Object> processVideo(File file, int width, int height,
                                            float quality, String format, boolean deleteY) {
                                            float quality, String format) {
        Map<String, Object> result = new HashMap<>();
        try {
@@ -328,15 +323,6 @@
            log.error("视频封面生成失败", e);
            result.put("success", false);
            result.put("message", "封面生成失败: " + e.getMessage());
        } finally {
            // 清理临时文件
            if (deleteY && file != null && file.exists()) {
                try {
                    file.delete();
                } catch (Exception e) {
                    log.warn("删除临时视频文件时出错", e);
                }
            }
        }
        return result;
    }