Browse Source

代码优化一些

fangzhen 4 months ago
parent
commit
7df067666e

+ 2 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java

@@ -134,10 +134,9 @@ public class CommonController {
     public AjaxResult uploadFile(MultipartFile file) throws Exception {
         try {
             String fileType = FileUtils.getFileType(file);
-            if ("image".equalsIgnoreCase(fileType)) {
+//            if ("image".equalsIgnoreCase(fileType)) {
 //                file = FileUtils.convertToJpg(file);
-                OssUtils.test1(file);
-            }
+//            }
             // 上传文件路径
             String fileName = OssUtils.uploadMultipartFile(file);
             System.out.println(fileName);

+ 11 - 0
ruoyi-common/pom.xml

@@ -165,6 +165,17 @@
             <version>0.4.14</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.sejda.imageio</groupId>
+            <artifactId>webp-imageio</artifactId>
+            <version>0.1.6</version>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 15 - 41
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java

@@ -10,6 +10,7 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.tika.Tika;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
@@ -18,9 +19,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -342,7 +340,7 @@ public class FileUtils {
      * @throws Exception 异常
      */
     public static MultipartFile convertFileToMultipartFile(File file) throws Exception {
-        DiskFileItem fileItem = new DiskFileItem("file", "image/png", true, file.getName(), (int) file.length(), file.getParentFile());
+        DiskFileItem fileItem = new DiskFileItem("file", "image/jpg", true, file.getName(), (int) file.length(), file.getParentFile());
 
         try (FileInputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream()) {
             IOUtils.copy(input, os);
@@ -351,24 +349,19 @@ public class FileUtils {
         return new CommonsMultipartFile(fileItem);
     }
 
-    // 将HEIC格式图片转换为JPG并返回MultipartFile
-    public static MultipartFile convertToJpg(MultipartFile file) throws Exception {
-        // 指定文件保存路径(例如:上传目录下的转换后文件名)
-        String fileName = "converted_" + System.currentTimeMillis() + ".jpg";
-        Path filePath = Paths.get("F:\\", fileName);
-
-        // 使用thumbnailator进行图片转换
-        InputStream inputStream = file.getInputStream();
-        try {
-            Thumbnails.of(inputStream)
-                    .outputFormat("jpg")
-                    .toFile(filePath.toFile()); // 转换为JPG并保存到指定路径
-        } finally {
-            // 确保流在处理完后关闭
-            inputStream.close();
-        }
-        // 将临时文件转换为MultipartFile
-        return convertFileToMultipartFile(filePath.toFile());
+    public static MultipartFile convertToJpg(MultipartFile file) throws IOException {
+        byte[] bytes = file.getBytes();
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        Thumbnails.of(new ByteArrayInputStream(bytes))
+                .scale(1)
+                .outputFormat("jpg")
+                .toOutputStream(outputStream);
+        return new MockMultipartFile(
+                file.getName(),
+                file.getOriginalFilename().replaceAll("\\.[^.]+$", ".jpg"),
+                "image/jpeg",
+                outputStream.toByteArray()
+        );
     }
 
     /**
@@ -397,23 +390,4 @@ public class FileUtils {
             }
         }
     }
-
-    // 清理临时文件的方法
-    public static void deleteTempFile(File tempFile) {
-        if (tempFile.exists()) {
-            boolean deleted = tempFile.delete();
-            if (!deleted) {
-                System.err.println("Failed to delete temporary file: " + tempFile.getAbsolutePath());
-            }
-        }
-    }
-
-    public static void deleteTempFile(Path tempFilePath) {
-        try {
-            Files.delete(tempFilePath);
-        } catch (IOException e) {
-            System.err.println("Failed to delete temporary file: " + tempFilePath);
-            e.printStackTrace();
-        }
-    }
 }

+ 19 - 21
ruoyi-framework/src/main/java/com/ruoyi/framework/webSocket/WebSocketServer.java

@@ -2,10 +2,8 @@ package com.ruoyi.framework.webSocket;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.generator.domain.Community.CommunityReturnRecord;
 import com.ruoyi.generator.service.ICommunityReturnRecordService;
 import com.ruoyi.system.domain.CommunityChatMsg;
 import com.ruoyi.system.service.ICommunityChatMsgService;
@@ -264,25 +262,25 @@ public class WebSocketServer {
                 chatMsg.setSenderAnonName(jsonObject.getString("senderAnonName"));
                 chatMsg.setReceiverAnonName(jsonObject.getString("receiverAnonName"));
 
-                //获取返图创建人用户id和返图接收人用户id
-                String returnCreateUserId = jsonObject.getString("returnCreateUserId");
-                String returnReceiveUserId = jsonObject.getString("returnReceiveUserId");
-                if (returnCreateUserId != null && returnReceiveUserId != null) {
-                    //不为null时,则进行判断返图列表是否存在记录
-                    CommunityReturnRecord returnRecord = returnRecordService.getOne(new QueryWrapper<CommunityReturnRecord>()
-                            .eq("return_create_user_id", returnCreateUserId)
-                            .eq("return_receive_user_id", returnReceiveUserId)
-                            .eq("is_delete", false)
-                            .eq("status", false));
-                    if (returnRecord == null) {
-                        CommunityReturnRecord communityReturnRecord = new CommunityReturnRecord();
-                        communityReturnRecord.setReturnCreateUserId(Long.parseLong(returnCreateUserId));
-                        communityReturnRecord.setReturnReceiveUserId(Long.parseLong(returnReceiveUserId));
-                        communityReturnRecord.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
-                        communityReturnRecord.setCreateBy(Long.parseLong(returnCreateUserId));
-                        returnRecordService.save(communityReturnRecord);
-                    }
-                }
+//                //获取返图创建人用户id和返图接收人用户id
+//                String returnCreateUserId = jsonObject.getString("returnCreateUserId");
+//                String returnReceiveUserId = jsonObject.getString("returnReceiveUserId");
+//                if (returnCreateUserId != null && returnReceiveUserId != null) {
+//                    //不为null时,则进行判断返图列表是否存在记录
+//                    CommunityReturnRecord returnRecord = returnRecordService.getOne(new QueryWrapper<CommunityReturnRecord>()
+//                            .eq("return_create_user_id", returnCreateUserId)
+//                            .eq("return_receive_user_id", returnReceiveUserId)
+//                            .eq("is_delete", false)
+//                            .eq("status", false));
+//                    if (returnRecord == null) {
+//                        CommunityReturnRecord communityReturnRecord = new CommunityReturnRecord();
+//                        communityReturnRecord.setReturnCreateUserId(Long.parseLong(returnCreateUserId));
+//                        communityReturnRecord.setReturnReceiveUserId(Long.parseLong(returnReceiveUserId));
+//                        communityReturnRecord.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+//                        communityReturnRecord.setCreateBy(Long.parseLong(returnCreateUserId));
+//                        returnRecordService.save(communityReturnRecord);
+//                    }
+//                }
             }
             chatMsg.setCreateBy(senderId);
             chatMsg.setSenderIsRead(true);