yonghuifan 1 سال پیش
والد
کامیت
ba14055737

+ 1 - 0
src/main/java/com/dragon/tj/portal/common/enums/log/ModuleEnum.java

@@ -27,6 +27,7 @@ public enum ModuleEnum {
 
     FILE_UPLOAD("5001", "文件上传"),
     FILE_QUERY("5002", "文件查询"),
+    FILE_DELETE("5003", "文件删除"),
 
     ISSUE_ADD("6001", "问题添加"),
     ISSUE_DELETE("6002", "问题删除"),

+ 10 - 0
src/main/java/com/dragon/tj/portal/controller/FileManageController.java

@@ -79,4 +79,14 @@ public class FileManageController {
                 .contentType(MediaType.parseMediaType("application/octet-stream"))
                 .body(new InputStreamResource(inputStream));
     }
+
+    /*
+     * 软件删除
+     * */
+    @SysLog(value = "软件删除", module = ModuleEnum.FILE_DELETE)
+    @GetMapping("/delete/{id}")
+    public R delete(@PathVariable("id") Integer id){
+
+        return R.ok(fileManageService.delete(id));
+    }
 }

+ 2 - 0
src/main/java/com/dragon/tj/portal/service/FileManageService.java

@@ -17,4 +17,6 @@ public interface FileManageService {
     List<FileInfo> top(String type, Integer num);
 
     void fileLog(String uri,String ip);
+
+    boolean delete(Integer id);
 }

+ 28 - 0
src/main/java/com/dragon/tj/portal/service/impl/FileManageServiceImpl.java

@@ -18,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
@@ -158,4 +160,30 @@ public class FileManageServiceImpl implements FileManageService {
         sysLogServices.save(sysLog);
 
     }
+
+    @Transactional
+    @Override
+    public boolean delete(Integer id) {
+        //删除磁盘文件
+        FileInfo fileInfo = fileManageMapper.selectById(id);
+        //DB删除
+        try {
+            int i = fileManageMapper.deleteById(fileInfo);
+            boolean b = false;
+            if (i==1) {
+                String path = localPath + fileInfo.getUrl().replaceFirst("/file/","");
+                b = Files.deleteIfExists(Paths.get(path));
+                if (!b){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                }
+            }
+
+            return b;
+        } catch (IOException e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return false;
+        }
+
+    }
 }