Browse Source

更改代码结构,创建目录将代码分类存放

zhaojinyu 2 weeks ago
parent
commit
32919713f2

+ 0 - 4
base-modules/service-file/pom.xml

@@ -88,10 +88,6 @@
             <artifactId>mysql-connector-java</artifactId>
             <scope>runtime</scope>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-        </dependency>
 
     </dependencies>
 

+ 17 - 42
base-modules/service-file/src/main/java/com/ruoyi/file/controller/FileUpdateController.java → base-modules/service-file/src/main/java/com/ruoyi/file/controller/FileUpdateInfoController.java

@@ -1,89 +1,70 @@
 package com.ruoyi.file.controller;
 
-import com.ruoyi.file.model.FileUpdateInfo;
-import com.ruoyi.file.repository.FileUpdateInfoRepository;
-import com.ruoyi.file.service.FileUpdateRequest;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
+import com.ruoyi.file.domain.FileUpdateInfo;
+import com.ruoyi.file.service.FileUpdateInfoService;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import com.ruoyi.file.service.FileUpdateService;
-
 import java.util.List;
-import java.util.Optional;
 
 @RestController
 @RequestMapping("/api/update")
-public class FileUpdateController {
-
-    @Autowired
-    private FileUpdateService fileUpdateService;
+public class FileUpdateInfoController {
 
     @Autowired
-    private FileUpdateInfoRepository fileUpdateInfoRepository;
+    private FileUpdateInfoService fileUpdateInfoService;
 
     @PostMapping("/add")
-    public ApiResult<String> addFileToDatabase(@RequestBody FileUpdateRequest request) {
+    public ApiResult<String> addFileToDatabase(@RequestBody FileUpdateInfo fileUpdateInfo) {
         try {
-            fileUpdateService.addFileToDatabase(request);
+            fileUpdateInfoService.addFileToDatabase(fileUpdateInfo);
             return ApiResult.success("文件信息录入成功");
         } catch (Exception e) {
             return ApiResult.error("文件信息录入失败: " + e.getMessage());
         }
     }
 
-    // 检查文件是否需要更新
     @PostMapping("/checkById")
     public ApiResult<String> checkFileUpdate(@RequestParam Long id) {
         try {
-            boolean isUpdateRequired = fileUpdateService.checkFileUpdate(id);
+            boolean isUpdateRequired = fileUpdateInfoService.checkFileUpdate(id);
             return ApiResult.success(isUpdateRequired ? "需要更新" : "不需要更新");
         } catch (Exception e) {
             return ApiResult.error("检查文件更新失败: " + e.getMessage());
         }
     }
 
-    // 执行文件更新
     @PostMapping("/reloadById")
     public ApiResult<String> performFileUpdate(@RequestParam Long id) {
         try {
-            fileUpdateService.performFileUpdate(id);
+            fileUpdateInfoService.performFileUpdate(id);
             return ApiResult.success("文件更新成功");
         } catch (Exception e) {
             return ApiResult.error("文件更新失败: " + e.getMessage());
         }
     }
 
-    // 新增查询接口
     @GetMapping("/query")
     public ApiResult<CommonPage<FileUpdateInfo>> queryFiles(
             @RequestParam(required = false) String fileName,
             @RequestParam(required = false, defaultValue = "1") int current,
             @RequestParam(required = false, defaultValue = "10") int size) {
         try {
-            // 创建 Pageable 对象
-            Pageable pageable = PageRequest.of(current - 1, size);
-
-            Page<FileUpdateInfo> page;
+            List<FileUpdateInfo> files;
             if (fileName == null || fileName.trim().isEmpty()) {
-                // 查询所有记录
-                page = fileUpdateInfoRepository.findAll(pageable);
+                files = fileUpdateInfoService.getAllFiles();
             } else {
-                // 按文件名模糊查询
-                page = fileUpdateInfoRepository.findByFileNameContaining(fileName, pageable);
+                files = fileUpdateInfoService.getFilesByFileNameContaining(fileName);
             }
 
-            // 将 Page 转换为 CommonPage
             CommonPage<FileUpdateInfo> commonPage = new CommonPage<>(
-                    page.getContent(), // 数据
-                    page.getTotalElements(), // 总记录数
-                    size, // 每页大小
-                    current // 当前页码
+                    files.subList((current - 1) * size, Math.min(current * size, files.size())),
+                    files.size(),
+                    size,
+                    current
             );
             return ApiResult.success(commonPage);
         } catch (Exception e) {
@@ -91,18 +72,12 @@ public class FileUpdateController {
         }
     }
 
-    // 新增删除接口
     @DeleteMapping("/deleteById")
     @ApiOperation(value = "删除文件信息", notes = "根据文件 ID 删除指定文件信息")
     public ApiResult<String> deleteFileById(@RequestParam Long id) {
         try {
-            Optional<FileUpdateInfo> fileUpdateInfo = fileUpdateInfoRepository.findById(id);
-            if (fileUpdateInfo.isPresent()) {
-                fileUpdateInfoRepository.deleteById(id);
-                return ApiResult.success("文件信息删除成功");
-            } else {
-                return ApiResult.error("文件信息未找到");
-            }
+            fileUpdateInfoService.deleteFileById(id);
+            return ApiResult.success("文件信息删除成功");
         } catch (Exception e) {
             return ApiResult.error("删除文件信息失败: " + e.getMessage());
         }

+ 1 - 3
base-modules/service-file/src/main/java/com/ruoyi/file/controller/FilesController.java

@@ -1,9 +1,8 @@
 package com.ruoyi.file.controller;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.file.service.FileUploadResponse;
-import com.ruoyi.file.service.FilesUpload;
+import com.ruoyi.file.domain.FilesUpload;
 import com.ruoyi.file.service.FilesService;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
@@ -11,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
 
 

+ 16 - 0
base-modules/service-file/src/main/java/com/ruoyi/file/domain/FileUpdateInfo.java

@@ -0,0 +1,16 @@
+package com.ruoyi.file.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("file_update_info")
+public class FileUpdateInfo {
+    private Long id;
+    private String fileName;
+    private String filePath;
+    private String fileMd5;
+    private String remoteMd5;
+    private java.util.Date updateTime;
+    private String updateStatus;
+}

+ 1 - 1
base-modules/service-file/src/main/java/com/ruoyi/file/service/FilesUpload.java → base-modules/service-file/src/main/java/com/ruoyi/file/domain/FilesUpload.java

@@ -1,4 +1,4 @@
-package com.ruoyi.file.service;
+package com.ruoyi.file.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;

+ 9 - 0
base-modules/service-file/src/main/java/com/ruoyi/file/mapper/FileUpdateInfoMapper.java

@@ -0,0 +1,9 @@
+package com.ruoyi.file.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.file.domain.FileUpdateInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface FileUpdateInfoMapper extends BaseMapper<FileUpdateInfo> {
+}

+ 1 - 1
base-modules/service-file/src/main/java/com/ruoyi/file/mapper/FilesMapper.java

@@ -1,7 +1,7 @@
 package com.ruoyi.file.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.file.service.FilesUpload;
+import com.ruoyi.file.domain.FilesUpload;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper

+ 0 - 87
base-modules/service-file/src/main/java/com/ruoyi/file/model/FileUpdateInfo.java

@@ -1,87 +0,0 @@
-package com.ruoyi.file.model;
-
-import javax.persistence.*;
-
-@Entity
-@Table(name = "file_update_info")
-public class FileUpdateInfo {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    @Column(name = "file_name", nullable = false) // 新增字段
-    private String fileName;
-
-    @Column(name = "file_path", nullable = false)
-    private String filePath;
-
-    @Column(name = "file_md5", nullable = false)
-    private String fileMd5;
-
-    @Column(name = "remote_md5", nullable = true)
-    private String remoteMd5;
-
-    @Column(name = "update_time", nullable = false)
-    private java.util.Date updateTime;
-
-    @Column(name = "update_status", nullable = false)
-    private String updateStatus;
-
-    // Getters and Setters
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getFileName() { // 新增 Getter
-        return fileName;
-    }
-
-    public void setFileName(String fileName) { // 新增 Setter
-        this.fileName = fileName;
-    }
-
-    public String getFilePath() {
-        return filePath;
-    }
-
-    public void setFilePath(String filePath) {
-        this.filePath = filePath;
-    }
-
-    public String getFileMd5() {
-        return fileMd5;
-    }
-
-    public void setFileMd5(String fileMd5) {
-        this.fileMd5 = fileMd5;
-    }
-
-    public String getRemoteMd5() {
-        return remoteMd5;
-    }
-
-    public void setRemoteMd5(String remoteMd5) {
-        this.remoteMd5 = remoteMd5;
-    }
-
-    public java.util.Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(java.util.Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public String getUpdateStatus() {
-        return updateStatus;
-    }
-
-    public void setUpdateStatus(String updateStatus) {
-        this.updateStatus = updateStatus;
-    }
-}

+ 0 - 13
base-modules/service-file/src/main/java/com/ruoyi/file/repository/FileUpdateInfoRepository.java

@@ -1,13 +0,0 @@
-package com.ruoyi.file.repository;
-
-import com.ruoyi.file.model.FileUpdateInfo;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface FileUpdateInfoRepository extends JpaRepository<FileUpdateInfo, Long> {
-
-    Page<FileUpdateInfo> findByFileNameContaining(String fileName, Pageable pageable);
-}

+ 21 - 0
base-modules/service-file/src/main/java/com/ruoyi/file/service/FileUpdateInfoService.java

@@ -0,0 +1,21 @@
+package com.ruoyi.file.service;
+
+import com.ruoyi.file.domain.FileUpdateInfo;
+
+import java.util.List;
+
+public interface FileUpdateInfoService {
+    void addFileToDatabase(FileUpdateInfo fileUpdateInfo) throws Exception;
+
+    boolean checkFileUpdate(Long id) throws Exception;
+
+    void performFileUpdate(Long id) throws Exception;
+
+    List<FileUpdateInfo> getAllFiles() throws Exception;
+
+    List<FileUpdateInfo> getFilesByFileNameContaining(String fileName) throws Exception;
+
+    FileUpdateInfo getFileById(Long id) throws Exception;
+
+    void deleteFileById(Long id) throws Exception;
+}

+ 0 - 9
base-modules/service-file/src/main/java/com/ruoyi/file/service/FileUpdateRequest.java

@@ -1,9 +0,0 @@
-package com.ruoyi.file.service;
-
-import lombok.Data;
-
-@Data
-public class FileUpdateRequest {
-    private String fileName;
-    private String filePath;
-}

+ 1 - 2
base-modules/service-file/src/main/java/com/ruoyi/file/service/FilesService.java

@@ -1,11 +1,10 @@
 package com.ruoyi.file.service;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.file.domain.FilesUpload;
 import com.usky.common.core.bean.CommonPage;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
 
 public interface FilesService extends IService<FilesUpload> {

+ 48 - 31
base-modules/service-file/src/main/java/com/ruoyi/file/service/FileUpdateService.java → base-modules/service-file/src/main/java/com/ruoyi/file/service/impl/FileUpdateInfoServiceImpl.java

@@ -1,9 +1,11 @@
-package com.ruoyi.file.service;
+package com.ruoyi.file.service.impl;
 
-import com.ruoyi.file.model.FileUpdateInfo;
-import com.ruoyi.file.repository.FileUpdateInfoRepository;
+import com.ruoyi.file.domain.FileUpdateInfo;
+import com.ruoyi.file.mapper.FileUpdateInfoMapper;
+import com.ruoyi.file.service.FileUpdateInfoService;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.*;
@@ -14,70 +16,66 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 @Service
-public class FileUpdateService {
+public class FileUpdateInfoServiceImpl implements FileUpdateInfoService {
 
     @Autowired
-    private FileUpdateInfoRepository fileUpdateInfoRepository;
+    private FileUpdateInfoMapper fileUpdateInfoMapper;
 
-    public void addFileToDatabase(FileUpdateRequest request) throws Exception {
-        String fileName = request.getFileName();
-        String filePath = request.getFilePath();
+    @Value("${file.remote-url}")
+    private String remoteUrlBase;
 
+    @Override
+    public void addFileToDatabase(FileUpdateInfo fileUpdateInfo) throws Exception {
+        String filePath = fileUpdateInfo.getFilePath();
         File file = new File(filePath);
         if (!file.exists()) {
             throw new FileNotFoundException("文件不存在:" + filePath);
         }
 
         String fileMd5 = DigestUtils.md5Hex(new FileInputStream(file));
-        FileUpdateInfo fileUpdateInfo = new FileUpdateInfo();
-        fileUpdateInfo.setFileName(fileName);
-        fileUpdateInfo.setFilePath(filePath);
         fileUpdateInfo.setFileMd5(fileMd5);
         fileUpdateInfo.setUpdateTime(new Date());
         fileUpdateInfo.setUpdateStatus("待检查文件版本");
-        fileUpdateInfoRepository.save(fileUpdateInfo);
+        fileUpdateInfoMapper.insert(fileUpdateInfo);
     }
 
-    // 检查文件是否需要更新
+    @Override
     public boolean checkFileUpdate(Long id) throws Exception {
-        FileUpdateInfo fileUpdateInfo = fileUpdateInfoRepository.findById(id).orElse(null);
+        FileUpdateInfo fileUpdateInfo = fileUpdateInfoMapper.selectById(id);
         if (fileUpdateInfo == null) {
             throw new FileNotFoundException("文件信息未找到:id=" + id);
         }
 
         String localFilePath = fileUpdateInfo.getFilePath();
         String localFileMd5 = fileUpdateInfo.getFileMd5();
-        String fileName = fileUpdateInfo.getFileName(); // 获取文件名
-        String remoteFileMd5 = getRemoteFileMd5(fileName); // 获取远程文件的 MD5 值
+        String fileName = fileUpdateInfo.getFileName();
+        String remoteFileMd5 = getRemoteFileMd5(fileName);
 
         boolean isUpdateRequired = !localFileMd5.equals(remoteFileMd5);
-        fileUpdateInfo.setRemoteMd5(remoteFileMd5); // 更新远程文件的 MD5 值
+        fileUpdateInfo.setRemoteMd5(remoteFileMd5);
         fileUpdateInfo.setUpdateTime(new Date());
         fileUpdateInfo.setUpdateStatus(isUpdateRequired ? "待更新" : "无需更新");
-        fileUpdateInfoRepository.save(fileUpdateInfo);
+        fileUpdateInfoMapper.updateById(fileUpdateInfo);
 
         return isUpdateRequired;
     }
 
-    // 执行文件更新
+    @Override
     public void performFileUpdate(Long id) throws Exception {
-        FileUpdateInfo fileUpdateInfo = fileUpdateInfoRepository.findById(id).orElse(null);
+        FileUpdateInfo fileUpdateInfo = fileUpdateInfoMapper.selectById(id);
         if (fileUpdateInfo == null) {
             throw new FileNotFoundException("文件信息未找到:id=" + id);
         }
 
         String localFilePath = fileUpdateInfo.getFilePath();
-        String fileName = fileUpdateInfo.getFileName(); // 获取文件名
-        String remoteUrl = "https://file.usky.cn/uskycloud/" + fileName; // 替换为实际的远程文件 URL
+        String fileName = fileUpdateInfo.getFileName();
+        String remoteUrl = remoteUrlBase + fileName;
 
         try {
-            // 检查并创建备份目录
             String backupDirPath = localFilePath + "-backup";
             File backupDir = new File(backupDirPath);
             if (!backupDir.exists()) {
@@ -87,7 +85,6 @@ public class FileUpdateService {
                 }
             }
 
-            // 为旧文件添加时间戳并移动到备份目录
             File originalFile = new File(localFilePath);
             if (originalFile.exists()) {
                 String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
@@ -96,15 +93,13 @@ public class FileUpdateService {
                 System.out.println("旧文件已备份到: " + backupFilePath);
             }
 
-            // 下载远程文件
             downloadFileFromRemote(remoteUrl, localFilePath);
 
-            // 更新数据库中的文件信息
             String newFileMd5 = DigestUtils.md5Hex(new FileInputStream(localFilePath));
             fileUpdateInfo.setFileMd5(newFileMd5);
             fileUpdateInfo.setUpdateTime(new Date());
             fileUpdateInfo.setUpdateStatus("已更新");
-            fileUpdateInfoRepository.save(fileUpdateInfo);
+            fileUpdateInfoMapper.updateById(fileUpdateInfo);
         } catch (FileNotFoundException e) {
             throw new Exception("文件未找到: " + localFilePath + ",原因: " + e.getMessage(), e);
         } catch (IOException e) {
@@ -126,9 +121,8 @@ public class FileUpdateService {
         }
     }
 
-
     private String getRemoteFileMd5(String fileName) throws Exception {
-        String remoteUrl = "https://file.usky.cn/uskycloud/" + fileName;
+        String remoteUrl = remoteUrlBase + fileName;
         System.out.println("远程文件 URL: " + remoteUrl);
         URL url = new URL(remoteUrl);
         HttpURLConnection connection = (HttpURLConnection) url.openConnection();
@@ -137,4 +131,27 @@ public class FileUpdateService {
             return DigestUtils.md5Hex(in);
         }
     }
+
+    @Override
+    public List<FileUpdateInfo> getAllFiles() {
+        return fileUpdateInfoMapper.selectList(null);
+    }
+
+    @Override
+    public List<FileUpdateInfo> getFilesByFileNameContaining(String fileName) {
+        return fileUpdateInfoMapper.selectList(
+                new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<FileUpdateInfo>()
+                        .like("file_name", fileName)
+        );
+    }
+
+    @Override
+    public FileUpdateInfo getFileById(Long id) {
+        return fileUpdateInfoMapper.selectById(id);
+    }
+
+    @Override
+    public void deleteFileById(Long id) {
+        fileUpdateInfoMapper.deleteById(id);
+    }
 }

+ 4 - 5
base-modules/service-file/src/main/java/com/ruoyi/file/service/FilesServiceImpl.java → base-modules/service-file/src/main/java/com/ruoyi/file/service/impl/FilesServiceImpl.java

@@ -1,21 +1,20 @@
-package com.ruoyi.file.service;
+package com.ruoyi.file.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.file.mapper.FilesMapper;
+import com.ruoyi.file.service.FileUploadResponse;
+import com.ruoyi.file.service.FilesService;
+import com.ruoyi.file.domain.FilesUpload;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.security.utils.SecurityUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.net.URLEncoder;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;