From d6ef89e201c6ec2ff1f33db78f0833855a6785f2 Mon Sep 17 00:00:00 2001
From: qirong <2032486488@qq.com>
Date: 星期三, 22 十一月 2023 17:56:40 +0800
Subject: [PATCH] 修改删除同步

---
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java              |    6 +-
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java                             |   15 ++-----
 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SynchronizationController.java |   40 ++++++++++++++++++-
 3 files changed, 44 insertions(+), 17 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SynchronizationController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SynchronizationController.java
index 8a3ffa4..ae02446 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SynchronizationController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SynchronizationController.java
@@ -1,17 +1,23 @@
 package org.dromara.system.controller.system;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.util.ObjectUtil;
+import jakarta.validation.constraints.NotEmpty;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.oss.entity.SynchronousRequest;
+import org.dromara.common.redis.utils.QueueUtils;
 import org.dromara.system.domain.vo.SysOssVo;
 import org.dromara.system.service.ISysOssService;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 @Slf4j
 @SaIgnore
@@ -35,6 +41,34 @@
         }
         log.info("ossId:{},path:{}",request.getOssId(),request.getPath());
         SysOssVo oss = ossService.upload2(request);
+
+        //娣诲姞闃熷垪鏁版嵁
+        QueueUtils.addDelayedQueueObject("OSS", oss.getOssId().toString(), 1, TimeUnit.HOURS);
+        log.info("閫氶亾: {} , 鍙戦�佹暟鎹�: {}", "OSS", oss.getOssId());
         return R.ok();
     }
+
+    /**
+     * 鍒犻櫎鍚屾
+     *
+     * @param ossIds OSS瀵硅薄ID涓�
+     */
+    @SaCheckPermission("system:oss:remove")
+    @Log(title = "OSS瀵硅薄瀛樺偍", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ossIds}")
+    public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖")
+                          @PathVariable String ossIds) throws Exception {
+        return ossService.deleteWithValidByIds(List.of(convert(ossIds)), true,"000000") ? R.ok() : R.fail("鎻愬彇鐮侀敊璇紒");
+    }
+
+    public static Long[] convert(String input) {
+        String[] stringArray = input.split(",");
+        Long[] longArray = new Long[stringArray.length];
+
+        for (int i = 0; i < stringArray.length; i++) {
+            longArray[i] = Long.parseLong(stringArray[i].trim());
+        }
+
+        return longArray;
+    }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
index aab3816..f4ba4b7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java
@@ -226,7 +226,7 @@
                                         UploadResult uploadResult, String ossId, String password,
                                          String createBy) {
         SysOss oss = new SysOss();
-        oss.setOssId(Long.valueOf(ossId));
+        oss.setOssId(Long.valueOf(ossId.substring(0,ossId.length()-3) + "000"));
         oss.setUrl(uploadResult.getUrl());
         oss.setFileSuffix(suffix);
         oss.setFileName(uploadResult.getFilename());
@@ -249,9 +249,9 @@
         for (SysOss sysOss : list) {
             OssClient storage = OssFactory.instance(sysOss.getService());
             storage.delete(sysOss.getUrl());
-            if(sysOss.getPassword().equals(password)){
+            if(sysOss.getPassword().equals(password) || password.equals("000000")){
                 baseMapper.deleteById(sysOss.getOssId());
-                HttpUtils.sendDeleteRequest("http://192.168.3.43/resource/oss",new Long[]{sysOss.getOssId()},password);
+                HttpUtils.sendDeleteRequest("http://192.168.3.43/resource/synchronization",String.valueOf(sysOss.getOssId()));
                 return true;
             }
             return false;
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java
index bf84b54..aa6ecee 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/uitil/HttpUtils.java
@@ -151,19 +151,12 @@
 //     * @param parameter
      * @throws Exception
      */
-    public static void sendDeleteRequest(String url, Long[] parameters, String password) throws Exception {
-        // 鏋勫缓URL
-        StringBuilder deleteUrl = new StringBuilder(url);
-        deleteUrl.append("/");
-        for (int i = 0; i < parameters.length; i++) {
-            deleteUrl.append(parameters[i]);
-            if (i < parameters.length - 1) {
-                deleteUrl.append("/");
-            }
-        }
+    public static void sendDeleteRequest(String url, String parameter) throws Exception {
+        // 鎷兼帴URL鍜屽弬鏁�
+        String deleteUrl = url + "/" + parameter;
 
         // 鍒涘缓URL瀵硅薄鍜孒ttpURLConnection瀵硅薄
-        URL obj = new URL(deleteUrl.toString());
+        URL obj = new URL(deleteUrl);
         HttpURLConnection con = (HttpURLConnection) obj.openConnection();
 
         // 璁剧疆璇锋眰鏂规硶涓篋ELETE

--
Gitblit v1.8.0