Kaynağa Gözat

功能:拆分文件服务starter,按文件服务类型拆分

lijie 3 yıl önce
ebeveyn
işleme
c467c0134d

+ 3 - 3
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalRelationClient.java

@@ -118,13 +118,13 @@ public interface DigitalRelationClient {
      * @param projectId: 项目ID
      * @param appId: 应用ID
      * @param userId: 用户ID
-     * @param ids: 关系id集合
+     * @param criteria: 关系id集合
      * @return void
      */
     @PostMapping("delete")
-    CommonResult<Void> delete(@RequestParam("groupCode") String groupCode,
+    CommonResult<List<ObjectRelation>> delete(@RequestParam("groupCode") String groupCode,
                               @RequestParam("projectId") String projectId,
                               @RequestParam("appId") String appId,
                               @RequestParam("userId") String userId,
-                              @RequestBody List<String> ids);
+                              @RequestBody Object criteria);
 }

+ 29 - 4
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalRelationFacade.java

@@ -1,6 +1,7 @@
 package com.persagy.dmp.digital.client;
 
 import cn.hutool.extra.spring.SpringUtil;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
@@ -120,11 +121,35 @@ public class DigitalRelationFacade {
      * @param projectId: 项目ID
      * @param appId: 应用ID
      * @param userId: 用户ID
-     * @param ids: 对象关系id数组
+     * @param ids: 关系对象id
      * @return 对象关系数组
      */
-    public static void delete(String groupCode, String projectId, String appId,
-                                                             String userId, List<String> ids) {
-        client.delete(groupCode, projectId, appId, userId, ids);
+    public static CommonResult<List<ObjectRelation>> delete(String groupCode,
+                                                            String projectId,
+                                                            String appId,
+                                                            String userId,
+                                                            List<String> ids) {
+        QueryCriteria queryCriteria = new QueryCriteria();
+        ObjectMapper mapper = SpringUtil.getBean(ObjectMapper.class);
+        ObjectNode criteria = mapper.createObjectNode();
+        criteria.putPOJO(ObjectRelation.PROP_ID,ids);
+        queryCriteria.setCriteria(criteria);
+        return client.delete(groupCode, projectId, appId, userId, queryCriteria);
+    }
+    /**
+     * 删除物理世界对象关系-批量删除
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param criteria: 查询条件
+     * @return 对象关系数组
+     */
+    public static CommonResult<List<ObjectRelation>> deleteByCriteria(String groupCode,
+                                                                      String projectId,
+                                                                      String appId,
+                                                                      String userId,
+                                                                      Object criteria) {
+        return client.delete(groupCode, projectId, appId, userId, criteria);
     }
 }

+ 43 - 0
dmp-comp/dmp-file-hdfs-starter/pom.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>dmp-comp</artifactId>
+        <groupId>com.persagy</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>dmp-file-hdfs-starter</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>jdk.tools</groupId>
+            <artifactId>jdk.tools</artifactId>
+            <version>1.8</version>
+            <scope>system</scope>
+            <systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>log4j-over-slf4j</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-common</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.hadoop</groupId>
+            <artifactId>hadoop-hdfs</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>dmp-file-starter</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+    </dependencies>
+
+</project>

dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/storage/config/HdfsConfig.java → dmp-comp/dmp-file-hdfs-starter/src/main/java/com/persagy/dmp/storage/config/HdfsConfig.java


+ 39 - 0
dmp-comp/dmp-file-hdfs-starter/src/main/java/com/persagy/dmp/storage/service/impl/HdfsExceptionHandler.java

@@ -0,0 +1,39 @@
+package com.persagy.dmp.storage.service.impl;
+
+import com.persagy.dmp.common.exception.BusinessException;
+import jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.IOException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * MinIO异常处理
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+@Slf4j
+public class HdfsExceptionHandler {
+
+    /**
+     * Minio异常处理
+     * @param e 异常
+     */
+    public static void handleException(Exception e) {
+        log.error(e.getMessage(), e);
+        if(e instanceof InvalidKeyException) {
+            throw new BusinessException("文件服务器-密钥有误");
+        }
+        if(e instanceof NoSuchAlgorithmException) {
+            throw new BusinessException("文件服务器密钥有误");
+        }
+        if(e instanceof InternalException) {
+            throw new BusinessException("文件服务器-内部错误。");
+        }
+        if(e instanceof IOException) {
+            throw new BusinessException("文件服务器-连接异常。");
+        }
+        throw new BusinessException(e.getMessage(), e);
+    }
+}

+ 5 - 5
dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/storage/service/impl/HdfsStorageServiceImpl.java

@@ -52,7 +52,7 @@ public class HdfsStorageServiceImpl implements IFileStorageService {
                 IoUtil.copy(inputStream, outputStream);
             }
         } catch (IOException e) {
-            MinioExceptionHandler.handleException(e);
+            HdfsExceptionHandler.handleException(e);
         }
     }
 
@@ -75,7 +75,7 @@ public class HdfsStorageServiceImpl implements IFileStorageService {
             }
             return fs.open(filePath);
         } catch (IOException e) {
-            MinioExceptionHandler.handleException(e);
+            HdfsExceptionHandler.handleException(e);
         }
         return null;
     }
@@ -105,7 +105,7 @@ public class HdfsStorageServiceImpl implements IFileStorageService {
             Path filePath = getFilePath(bucketName,fileName);
             return fs.exists(filePath);
         } catch (IOException e) {
-            MinioExceptionHandler.handleException(e);
+            HdfsExceptionHandler.handleException(e);
         }
         return false;
     }
@@ -131,7 +131,7 @@ public class HdfsStorageServiceImpl implements IFileStorageService {
             // 非递归删除
             fs.delete(filePath,false);
         } catch (IOException e) {
-            MinioExceptionHandler.handleException(e);
+            HdfsExceptionHandler.handleException(e);
         }
     }
     /**
@@ -152,7 +152,7 @@ public class HdfsStorageServiceImpl implements IFileStorageService {
             // 递归删除
             fs.delete(filePath,true);
         } catch (IOException e) {
-            MinioExceptionHandler.handleException(e);
+            HdfsExceptionHandler.handleException(e);
         }
     }
     /***

+ 1 - 0
dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/storage/config/MinioConfig.java

@@ -34,6 +34,7 @@ public class MinioConfig {
     public MinioClient minioClient() {
         return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).region(minioRegion).build();
     }
+
     @Bean
     @ConditionalOnProperty(value = "persagy.common.file.storage", havingValue = "0")
     public IFileStorageService minioStorageServiceImpl() {

+ 1 - 0
dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/storage/service/impl/MinioExceptionHandler.java

@@ -2,6 +2,7 @@ package com.persagy.dmp.storage.service.impl;
 
 import com.persagy.dmp.common.exception.BusinessException;
 import io.minio.errors.*;
+import jdk.nashorn.internal.runtime.regexp.joni.exception.InternalException;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.IOException;

dmp-comp/dmp-file-starter/src/main/java/com/persagy/dmp/storage/service/impl/MinioStorageServiceImpl.java → dmp-comp/dmp-file-minio-starter/src/main/java/com/persagy/dmp/storage/service/impl/MinioStorageServiceImpl.java


+ 74 - 48
dmp-comp/dmp-file-starter/pom.xml

@@ -12,75 +12,101 @@
     <version>1.0.0</version>
 
     <dependencies>
-        <!-- MinIO -->
-        <dependency>
-            <groupId>io.minio</groupId>
-            <artifactId>minio</artifactId>
-            <version>8.3.0</version>
-        </dependency>
         <!-- fm 工具包 -->
         <dependency>
             <groupId>com.persagy</groupId>
             <artifactId>dmp-common</artifactId>
-            <version>1.0.0</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-openfeign-core</artifactId>
-            <version>2.1.5.RELEASE</version>
         </dependency>
         <dependency>
             <groupId>io.github.openfeign</groupId>
             <artifactId>feign-core</artifactId>
-            <version>10.4.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-common</artifactId>
-            <version>2.5.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs</artifactId>
-            <version>2.5.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
-            <version>1.7.32</version>
         </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-annotation</artifactId>
-            <version>3.3.1</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-extension</artifactId>
-            <version>3.3.1</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>jdk.tools</groupId>
-            <artifactId>jdk.tools</artifactId>
-            <version>1.8</version>
-            <scope>system</scope>
-            <systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
         </dependency>
     </dependencies>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>jdk.tools</groupId>
+                <artifactId>jdk.tools</artifactId>
+                <version>1.8</version>
+                <scope>system</scope>
+                <systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
+            </dependency>
+            <!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>log4j-over-slf4j</artifactId>
+                <version>1.7.32</version>
+            </dependency>
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-annotation</artifactId>
+                <version>3.3.1</version>
+                <scope>compile</scope>
+            </dependency>
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-extension</artifactId>
+                <version>3.3.1</version>
+                <scope>compile</scope>
+            </dependency>
+            <!-- MinIO -->
+            <dependency>
+                <groupId>io.minio</groupId>
+                <artifactId>minio</artifactId>
+                <version>8.3.0</version>
+            </dependency>
+            <!-- fm 工具包 -->
+            <dependency>
+                <groupId>com.persagy</groupId>
+                <artifactId>dmp-common</artifactId>
+                <version>1.0.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-openfeign-core</artifactId>
+                <version>2.1.5.RELEASE</version>
+            </dependency>
+            <dependency>
+                <groupId>io.github.openfeign</groupId>
+                <artifactId>feign-core</artifactId>
+                <version>10.4.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.hadoop</groupId>
+                <artifactId>hadoop-common</artifactId>
+                <version>2.5.1</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.slf4j</groupId>
+                        <artifactId>slf4j-log4j12</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.hadoop</groupId>
+                <artifactId>hadoop-hdfs</artifactId>
+                <version>2.5.1</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.slf4j</groupId>
+                        <artifactId>slf4j-log4j12</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
 </project>