ky před 1 měsícem
rodič
revize
8f75d57424

+ 2 - 0
src/main/java/com/youlai/boot/system/model/entity/Record.java

@@ -24,6 +24,8 @@ public class Record extends BaseEntity {
      */
     private String fileName;
 
+    private String releaseType;
+
 
     private String fileType;
     /**

+ 3 - 3
src/main/java/com/youlai/boot/system/model/form/RecordForm.java

@@ -39,6 +39,9 @@ public class RecordForm implements Serializable {
 
     private String pageType;
 
+    @Schema(description = "test 测试版 release 发布版")
+    private String releaseType;
+
     @Schema(description = "上传路径")
     @NotBlank(message = "上传内容为空!")
     private String path;
@@ -48,8 +51,6 @@ public class RecordForm implements Serializable {
     @Size(max=255, message="上传说明长度不能超过255个字符")
     private String description;
 
-
-
     @Size(max=255, message="备注长度不能超过255个字符")
     private String remark;
 
@@ -58,7 +59,6 @@ public class RecordForm implements Serializable {
     @Size(max=5, message="端口号在0-65535之内")
     private String port;
 
-
     private int folderId;
 
 }

+ 2 - 0
src/main/java/com/youlai/boot/system/model/query/RecordQuery.java

@@ -46,5 +46,7 @@ public class RecordQuery extends BasePageQuery {
 
     List<Integer> subIds;
 
+    private String releaseType;
+
 
 }

+ 4 - 1
src/main/java/com/youlai/boot/system/model/vo/RecordVO.java

@@ -30,6 +30,10 @@ public class RecordVO implements Serializable {
     private String fileName;
     @Schema(description = "文件类型")
     private String fileType;
+
+    @Schema(description = "test 测试版 release 发布版")
+    private String releaseType;
+
     @Schema(description = "url")
     private String url;
     @Schema(description = "版本号")
@@ -56,5 +60,4 @@ public class RecordVO implements Serializable {
     @Schema(description = "端口")
     private String port;
 
-    
 }

+ 0 - 2
src/main/java/com/youlai/boot/system/schedule/AutoDeleteTask.java

@@ -51,7 +51,6 @@ public class AutoDeleteTask {
             records.stream().findFirst().ifPresent(r-> r.setAuto_delete(0));
 
             records.forEach(r-> recordService.getBaseMapper().updateById(r));
-
                 records.forEach(r->{
                     if (r.getAuto_delete()==1){
                         Path path = Paths.get(r.getPath().replace("\\","\\\\"));
@@ -61,7 +60,6 @@ public class AutoDeleteTask {
                         }
                     }
                 });
-
         });
 
 

+ 0 - 2
src/main/java/com/youlai/boot/system/service/RecordService.java

@@ -62,8 +62,6 @@ public interface RecordService extends IService<Record> {
 
     boolean stopJarFile(Long id);
 
-    String saveFile(MultipartFile file, String type,int dirId);
-
     String saveFile(MultipartFile file,String pageType);
 
 

+ 7 - 31
src/main/java/com/youlai/boot/system/service/impl/RecordServiceImpl.java

@@ -288,51 +288,27 @@ public class RecordServiceImpl extends ServiceImpl<RecordMapper, Record> impleme
 
     }
 
-    @Override
-    public String saveFile(MultipartFile file, String type,int
-            dirId) {
-        DirForm dirForm = new DirForm();
-        dirForm.setPageType(type);
-        dirForm.setDirId(dirId);
-
-        String path = folderNodeService.getPath(dirForm);
-
-        String newFileName = renameFile(Objects.requireNonNull(file.getOriginalFilename()));
-
-        File destFile = new File(path, newFileName);
-
-        try (FileOutputStream fos = new FileOutputStream(destFile)) {
-            log.info("写入文件 {}",file.getOriginalFilename());
-            fos.write(file.getBytes());
-            return destFile.getAbsolutePath();
-        } catch (IOException e) {
-            log.error(e.getMessage(), e);
-            return "";
-        }
 
 
-
-    }
-
     @Override
     public String saveFile(MultipartFile file,String pageType) {
         log.info("接收到文件 {}",file.getName());
-
         String demandFilePathPrefix = configService.getSystemConfig(pageType).toString();
-
         String fileName = SystemUtil.renameFile(Objects.requireNonNull(file.getOriginalFilename()));
-
         String absPath = demandFilePathPrefix + File.separator + fileName;
-
         File destFile = new File(absPath);
-
+        // 核心修复:自动创建所有不存在的父级目录
+        File parentDir = destFile.getParentFile();
+        if (!parentDir.exists()) {
+            boolean mkdirs = parentDir.mkdirs();
+            log.info("目录创建结果:{},路径:{}", mkdirs, parentDir.getAbsolutePath());
+        }
         try (FileOutputStream fos = new FileOutputStream(destFile)) {
             log.info("写入文件 {}",file.getOriginalFilename());
             fos.write(file.getBytes());
-
             return absPath;
         } catch (IOException e) {
-            log.error(e.getMessage(), e);
+            log.error("文件上传失败,路径:{}", absPath, e);
             return null;
         }
     }

+ 5 - 0
src/main/resources/mapper/system/RecordMapper.xml

@@ -18,6 +18,7 @@
 	    t1.port,
 	    t1.file_type,
         t1.url,
+        t1.release_type,
         t2.nickname
         FROM
         deploy_record t1
@@ -54,6 +55,10 @@
                 and
                 t1.file_type = #{queryParams.fileType}
             </if>
+            <if test="queryParams.releaseType != null and queryParams.releaseType !=''">
+                and
+                t1.release_type = #{queryParams.releaseType}
+            </if>
             <if test="queryParams.port != null and queryParams.port !=''">
                 and
                 t1.port like CONCAT('%', #{queryParams.port}, '%')