浏览代码

更新消费端 国际服

wuweihao 2 年之前
父节点
当前提交
242c47c8e5
共有 76 个文件被更改,包括 6941 次插入1190 次删除
  1. 29 0
      720yun_fd_consumer/gis_consumer/pom.xml
  2. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/ConsumerApplication.java
  3. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/CmdConstant.java
  4. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/ConfigConstant.java
  5. 0 2
      720yun_fd_consumer/src/main/java/com/gis/constant/RabbitConfig.java
  6. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/controller/TestController.java
  7. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/BaseEntity.java
  8. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/FodderEntity.java
  9. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/exception/BaseRuntimeException.java
  10. 0 1
      720yun_fd_consumer/src/main/java/com/gis/listener/Fd720Listener.java
  11. 0 5
      720yun_fd_consumer/src/main/java/com/gis/listener/Fd720Listener_2.java
  12. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/mapper/FodderMapper.java
  13. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/mapper/IBaseMapper.java
  14. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/service/FodderService.java
  15. 22 5
      720yun_fd_consumer/src/main/java/com/gis/service/impl/FodderServiceImpl.java
  16. 0 2
      720yun_fd_consumer/src/main/java/com/gis/util/AliyunOssUtil.java
  17. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/CmdUtils.java
  18. 2 2
      720yun_fd_consumer/src/main/java/com/gis/util/FileUtils.java
  19. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/RandomUtils.java
  20. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/Result.java
  21. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/StreamGobbler.java
  22. 0 0
      720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/StreamGobblerLine.java
  23. 0 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-dev.properties
  24. 0 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-loc.properties
  25. 77 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-locSitAws.properties
  26. 0 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-pro.properties
  27. 0 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-sit.properties
  28. 75 0
      720yun_fd_consumer/gis_consumer/src/main/resources/application-sitAws.properties
  29. 1 1
      720yun_fd_consumer/src/main/resources/application.properties
  30. 0 0
      720yun_fd_consumer/gis_consumer/src/main/resources/logback-spring.xml
  31. 197 0
      720yun_fd_consumer/gis_oss/pom.xml
  32. 47 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/CmdConstant.java
  33. 121 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/CmdUtils.java
  34. 79 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/StreamGobblerLine.java
  35. 37 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/constant/StorageType.java
  36. 250 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/AliYunOssUtil.java
  37. 166 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/AwsOssUtil.java
  38. 1267 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java
  39. 138 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java
  40. 1244 0
      720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java
  41. 18 14
      720yun_fd_consumer/pom.xml
  42. 0 4
      720yun_fd_consumer/src/main/resources/static/ossupload.sh
  43. 0 11
      720yun_fd_consumer/src/main/resources/static/shutdown.sh
  44. 0 5
      720yun_fd_consumer/src/main/resources/static/start.sh
  45. 0 19
      720yun_fd_consumer/src/test/java/com/gis/server/impl/SceneServiceImplTest.java
  46. 123 0
      720yun_fd_manage/gis_application/src/main/resources/application-locSitAws.properties
  47. 2 1
      720yun_fd_manage/gis_application/src/main/resources/application.properties
  48. 0 56
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/SceneEntity.java
  49. 0 49
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/tree/CatalogTree.java
  50. 0 27
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/CatalogSceneVo.java
  51. 0 29
      720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkInfoVo.java
  52. 0 65
      720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java
  53. 76 0
      720yun_fd_manage/gis_oss/pom.xml
  54. 37 0
      720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/constant/StorageType.java
  55. 7 51
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/AliyunOssUtil.java
  56. 161 0
      720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/AwsOssUtil.java
  57. 1254 0
      720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java
  58. 10 50
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/FileUtils.java
  59. 177 0
      720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java
  60. 7 17
      720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/QrCodeUtils.java
  61. 1244 0
      720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java
  62. 5 0
      720yun_fd_manage/gis_service/pom.xml
  63. 0 54
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/SceneService.java
  64. 3 0
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/TestService.java
  65. 8 7
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/FodderServiceImpl.java
  66. 0 290
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java
  67. 25 3
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java
  68. 13 14
      720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java
  69. 0 50
      720yun_fd_manage/gis_service/src/main/java/com/gis/tree/CatalogTree.java
  70. 0 130
      720yun_fd_manage/gis_service/src/main/java/com/gis/tree/CatalogTreeUtil.java
  71. 0 77
      720yun_fd_manage/gis_service/src/main/java/com/gis/tree/SceneTree.java
  72. 0 93
      720yun_fd_manage/gis_service/src/main/java/com/gis/tree/SceneTreeUtil.java
  73. 0 19
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/FodderController.java
  74. 12 17
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/TestController.java
  75. 0 4
      720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WebController.java
  76. 7 16
      720yun_fd_manage/pom.xml

+ 29 - 0
720yun_fd_consumer/gis_consumer/pom.xml

@@ -0,0 +1,29 @@
+<?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>720yun_fd_consumer</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>gis_consumer</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_oss</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+
+
+
+
+    </dependencies>
+
+
+</project>

720yun_fd_consumer/src/main/java/com/gis/ConsumerApplication.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/ConsumerApplication.java


720yun_fd_consumer/src/main/java/com/gis/constant/CmdConstant.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/CmdConstant.java


720yun_fd_consumer/src/main/java/com/gis/constant/ConfigConstant.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/constant/ConfigConstant.java


+ 0 - 2
720yun_fd_consumer/src/main/java/com/gis/constant/RabbitConfig.java

@@ -27,8 +27,6 @@ public class RabbitConfig {
     @Value("${spring.rabbitmq.password}")
     private String password;
 
-//    @Value("${rabbitmq.queue}")
-//    private String queue;
 
 
 

720yun_fd_consumer/src/main/java/com/gis/controller/TestController.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/controller/TestController.java


720yun_fd_consumer/src/main/java/com/gis/entity/BaseEntity.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/BaseEntity.java


720yun_fd_consumer/src/main/java/com/gis/entity/FodderEntity.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/FodderEntity.java


720yun_fd_consumer/src/main/java/com/gis/exception/BaseRuntimeException.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/exception/BaseRuntimeException.java


+ 0 - 1
720yun_fd_consumer/src/main/java/com/gis/listener/Fd720Listener.java

@@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 
-
 /**
  * Created by owen on 2021/1/12 0012 10:05
  */

+ 0 - 5
720yun_fd_consumer/src/main/java/com/gis/listener/Fd720Listener_2.java

@@ -1,10 +1,6 @@
 package com.gis.listener;
 
-import com.gis.constant.CmdConstant;
 import com.gis.constant.RabbitConfig;
-import com.gis.entity.FodderEntity;
-import com.gis.exception.BaseRuntimeException;
-import com.gis.mapper.FodderMapper;
 import com.gis.service.FodderService;
 import lombok.extern.slf4j.Slf4j;
 import org.slf4j.MDC;
@@ -14,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 
-
 /**
  * Created by owen on 2021/12/24 0012 10:05
  *

720yun_fd_consumer/src/main/java/com/gis/mapper/FodderMapper.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/mapper/FodderMapper.java


720yun_fd_consumer/src/main/java/com/gis/mapper/IBaseMapper.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/mapper/IBaseMapper.java


720yun_fd_consumer/src/main/java/com/gis/service/FodderService.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/service/FodderService.java


+ 22 - 5
720yun_fd_consumer/src/main/java/com/gis/service/impl/FodderServiceImpl.java

@@ -7,6 +7,7 @@ import com.gis.constant.ConfigConstant;
 import com.gis.entity.FodderEntity;
 import com.gis.exception.BaseRuntimeException;
 import com.gis.mapper.FodderMapper;
+import com.gis.oss.util.FileAndOssUtil;
 import com.gis.service.FodderService;
 import com.gis.util.CmdUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -14,7 +15,6 @@ import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.Date;
@@ -33,6 +33,9 @@ public class FodderServiceImpl implements FodderService {
     @Autowired
     FodderMapper fodderMapper;
 
+    @Autowired
+    FileAndOssUtil fileAndOssUtil;
+
     // 获取切图后的tour.xml
     private String getTourXmlScene(String code) {
         log.info("处理tour.xml");
@@ -55,12 +58,26 @@ public class FodderServiceImpl implements FodderService {
     }
 
     // 上传切图到oss
+//    private void uploadOss(String sceneCode) {
+//        String cmd = CmdConstant.OSSUTIL_UPLOAD_DIR;
+//        cmd = cmd.replaceAll("@sceneCode", sceneCode);
+//        log.info("ossCmd: " + cmd);
+//        long start = System.currentTimeMillis();
+//        CmdUtils.callshell(cmd);
+//        long end = System.currentTimeMillis();
+//        log.info("切图上传完成, 耗时:{} s" , (end-start)/1000 );
+//    }
+
+
     private void uploadOss(String sceneCode) {
-        String cmd = CmdConstant.OSSUTIL_UPLOAD_DIR;
-        cmd = cmd.replaceAll("@sceneCode", sceneCode);
-        log.info("ossCmd: " + cmd);
+//        String cmd = CmdConstant.OSSUTIL_UPLOAD_DIR;
+//        cmd = cmd.replaceAll("@sceneCode", sceneCode);
+//        log.info("ossCmd: " + cmd);
         long start = System.currentTimeMillis();
-        CmdUtils.callshell(cmd);
+        //   /mnt/720yun_fd_manage_data/@sceneCode 720yun_fd_manage/@sceneCode"
+        String filePath = "/mnt/720yun_fd_manage_data/" + sceneCode;
+        String ossKey = "720yun_fd_manage/" + sceneCode;
+        fileAndOssUtil.uploadBySh(filePath, ossKey);
         long end = System.currentTimeMillis();
         log.info("切图上传完成, 耗时:{} s" , (end-start)/1000 );
     }

+ 0 - 2
720yun_fd_consumer/src/main/java/com/gis/util/AliyunOssUtil.java

@@ -4,7 +4,6 @@ import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.OSSObject;
 import com.aliyun.oss.model.OSSObjectSummary;
 import com.aliyun.oss.model.ObjectListing;
-import com.aliyun.oss.model.PutObjectResult;
 import com.gis.constant.ConfigConstant;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,7 +14,6 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 

720yun_fd_consumer/src/main/java/com/gis/util/CmdUtils.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/CmdUtils.java


+ 2 - 2
720yun_fd_consumer/src/main/java/com/gis/util/FileUtils.java

@@ -1,7 +1,6 @@
 package com.gis.util;
 
 import cn.hutool.core.io.FileUtil;
-import lombok.extern.log4j.Log4j2;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
@@ -9,7 +8,8 @@ import org.springframework.stereotype.Component;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Created by owen on 2020/5/12 0012 17:21

720yun_fd_consumer/src/main/java/com/gis/util/RandomUtils.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/RandomUtils.java


720yun_fd_consumer/src/main/java/com/gis/util/Result.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/Result.java


720yun_fd_consumer/src/main/java/com/gis/util/StreamGobbler.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/StreamGobbler.java


720yun_fd_consumer/src/main/java/com/gis/util/StreamGobblerLine.java → 720yun_fd_consumer/gis_consumer/src/main/java/com/gis/util/StreamGobblerLine.java


720yun_fd_consumer/src/main/resources/application-dev.properties → 720yun_fd_consumer/gis_consumer/src/main/resources/application-dev.properties


720yun_fd_consumer/src/main/resources/application-loc.properties → 720yun_fd_consumer/gis_consumer/src/main/resources/application-loc.properties


+ 77 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-locSitAws.properties

@@ -0,0 +1,77 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+#spring.datasource.druid.username=root
+#spring.datasource.druid.password=4dkk2020test%
+
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://8.135.106.227:3306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+spring.datasource.druid.password=4dkk2021testproject%
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+#rabbit MQ\uFFFD\uFFFD\u023A
+spring.rabbitmq.address=127.0.0.1:5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=4dagecui2019$
+spring.rabbitmq.virtual-host=/
+spring.rabbitmq.connection-timeout=15000
+# confirm\u0123\u02BD
+spring.rabbitmq.publisher-confirms=true
+# return\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.publisher-returns=true
+# \uFFFD\uFFFDreturn\uFFFD\uFFFD\uFFFD\u01BD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.template.mandatory=true
+
+
+# oss info
+#oss.point=http://oss-cn-shenzhen.aliyuncs.com
+oss.point=http://oss-cn-shenzhen-internal.aliyuncs.com
+oss.key=LTAIUrvuHqj8pvry
+oss.secrecy=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
+
+
+# oss-base
+oss.type=aws
+oss.bucket=test-4dkankan
+oss.file.path=${project.name}/
+oss.domain=https://testeurs3.4dkankan.com/
+
+
+#log
+logging.path=/root/data/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=info
+
+
+# \uFFFD\u03F4\uFFFD\uFFFD\u013C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD
+# \uFFFD\uFFFD\uFFFD\u0631\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD
+server.file.path=/mnt/720yun_fd_manage_data/
+
+
+
+

720yun_fd_consumer/src/main/resources/application-pro.properties → 720yun_fd_consumer/gis_consumer/src/main/resources/application-pro.properties


720yun_fd_consumer/src/main/resources/application-sit.properties → 720yun_fd_consumer/gis_consumer/src/main/resources/application-sit.properties


+ 75 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-sitAws.properties

@@ -0,0 +1,75 @@
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+
+
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/720yun_fd_manage?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+spring.datasource.druid.password=4dkk2020test%
+
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+#rabbit MQ\uFFFD\uFFFD\u023A
+spring.rabbitmq.address=127.0.0.1:5672
+spring.rabbitmq.username=admin
+spring.rabbitmq.password=123456
+spring.rabbitmq.virtual-host=/
+spring.rabbitmq.connection-timeout=15000
+# confirm\u0123\u02BD
+spring.rabbitmq.publisher-confirms=true
+# return\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.publisher-returns=true
+# \uFFFD\uFFFDreturn\uFFFD\uFFFD\uFFFD\u01BD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.template.mandatory=true
+
+
+# oss info
+#oss.point=http://oss-cn-shenzhen.aliyuncs.com
+oss.point=http://oss-cn-shenzhen-internal.aliyuncs.com
+oss.key=LTAIUrvuHqj8pvry
+oss.secrecy=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
+
+
+# oss-base
+oss.type=aws
+oss.bucket=test-4dkankan
+oss.file.path=${project.name}/
+oss.domain=https://testeurs3.4dkankan.com/
+
+
+#log
+logging.path=/root/data/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=info
+
+
+# \uFFFD\u03F4\uFFFD\uFFFD\u013C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD
+# \uFFFD\uFFFD\uFFFD\u0631\uFFFD\uFFFD\uFFFD\u00B7\uFFFD\uFFFD
+server.file.path=/mnt/720yun_fd_manage_data/
+
+
+
+

+ 1 - 1
720yun_fd_consumer/src/main/resources/application.properties

@@ -1,5 +1,5 @@
 server.port=8002
-spring.profiles.active=dev
+spring.profiles.active=locSitAws
 
 
 # \uFFFD\uFFFD\u013F\uFFFD\uFFFD\uFFFD\uFFFD

720yun_fd_consumer/src/main/resources/logback-spring.xml → 720yun_fd_consumer/gis_consumer/src/main/resources/logback-spring.xml


+ 197 - 0
720yun_fd_consumer/gis_oss/pom.xml

@@ -0,0 +1,197 @@
+<?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>720yun_fd_consumer</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>gis_oss</artifactId>
+    <packaging>jar</packaging>
+
+
+    <dependencies>
+
+
+        <!--AliYun sdk-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+            <version>1.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>2.5.0</version>
+        </dependency>
+
+
+        <!--七牛云oss info-->
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>happy-dns-java</artifactId>
+            <version>0.1.6</version>
+            <scope>compile</scope>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+            <version>7.10.0</version>
+        </dependency>
+
+
+        <!--aws s3 -->
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk</artifactId>
+            <version>1.11.327</version>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.4</version>
+            <scope>compile</scope>
+        </dependency>
+
+
+
+        <!--springboot-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- JPA -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!--springboot中的redis依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+
+        <!-- lombok -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <!-- fastjson -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+
+        <!-- mysql -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!--阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+
+
+        <!-- knife4j aip 包-->
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-spring-boot-starter</artifactId>
+        </dependency>
+
+        <!-- 工具类 -->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+
+
+
+
+
+
+        <!-- jwt -->
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+        </dependency>
+
+        <!--&lt;!&ndash;AliYun sdk&ndash;&gt;-->
+        <!--<dependency>-->
+            <!--<groupId>com.aliyun</groupId>-->
+            <!--<artifactId>aliyun-java-sdk-core</artifactId>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>com.aliyun</groupId>-->
+            <!--<artifactId>aliyun-java-sdk-dysmsapi</artifactId>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>com.aliyun.oss</groupId>-->
+            <!--<artifactId>aliyun-sdk-oss</artifactId>-->
+        <!--</dependency>-->
+
+
+        <!--tk.mybatis 依赖-->
+        <dependency>
+            <groupId>tk.mybatis</groupId>
+            <artifactId>mapper-spring-boot-starter</artifactId>
+        </dependency>
+
+
+        <!--分页插件-->
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+
+
+        <!--rabbit MQ-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+
+
+
+    </dependencies>
+
+
+</project>

+ 47 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/CmdConstant.java

@@ -0,0 +1,47 @@
+package com.gis.oss.command;
+
+
+/**
+ * Created by owen on 2020/12/31 0031 14:22
+ *
+ */
+public class CmdConstant {
+
+
+    /**
+     * krpano 全景矢量切图
+     *
+     * yes y | 出现提醒,强制执行
+     * */
+    public final static String PANO_KRPANO = "krpanotools makepano -config=templates/vtour-multires.config ";
+
+    /**
+     * ossUtil上传目录
+     * ./ossutil cp -r localfolder/ oss://examplebucket/desfolder/
+     * opt/ossutil/ossutil64 cp -r /root/owen/720yun/vtour/ oss://oss-xiaoan/720yun_fd_manage/
+     *
+     */
+//    public final static String OSSUTIL_UPLOAD_DIR = "/opt/ossutil/ossutil64 cp -r /mnt/720yun_fd_manage_data/@sceneCode oss://oss-xiaoan/720yun_fd_manage/@sceneCode";
+
+    /**
+     * 用脚本的好处会自动结束线程, java直接跑命令容易出问题
+     * 调用oss上传目录脚本
+     * bash /opt/ossutil/ossupload.sh @dir @ossDir
+     *  bash /opt/ossutil/ossupload.sh /mnt/720yun_fd_manage_data/fd720_1A4Tba8mA 720yun_fd_manage/fd720_1A4Tba8mA
+     */
+//    public final static String OSSUTIL_UPLOAD_DIR = "bash /opt/ossutil/ossupload.sh /mnt/720yun_fd_manage_data/@sceneCode 720yun_fd_manage/@sceneCode";
+//    public final static String OSSUTIL_UPLOAD_DIR = "bash /root/user/java/720yun_fd_consumer_8002/ossupload.sh /mnt/720yun_fd_manage_data/@sceneCode 720yun_fd_manage/@sceneCode";
+    public final static String OSSUTIL_UPLOAD_DIR = "bash /mnt/720yun_fd_manage_data/baseData/ossupload.sh /mnt/720yun_fd_manage_data/@sceneCode 720yun_fd_manage/@sceneCode";
+
+    /**
+     * s3 上传脚本
+     * 参数1:bucket
+     * 参数2:源路径
+     * 参数3:目标路径
+     * 参数4:aws|oss|load
+     * 参数5:file|folder  文件或目录
+     *
+     *  sudo bash /opt/ossutil/fyun-upload.sh test-4dkankan /root/data test_2/data aws folder
+     */
+    public final static String UPLOAD_DIR = "sudo bash /opt/ossutil/fyun-upload.sh %s %s %s %s folder";
+}

+ 121 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/CmdUtils.java

@@ -0,0 +1,121 @@
+package com.gis.oss.command;
+
+import cn.hutool.core.util.RuntimeUtil;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+/**
+ * Created by owen on 2021/1/4 0004 14:53
+ */
+@Slf4j
+public class CmdUtils {
+
+
+    /**
+     * 调用算法 xx.sh 脚本
+     * @param command
+     */
+    public static void callShell(String command){
+        log.info("cmd: {}", command);
+        try {
+            String[] cmd = new String[]{"/bin/sh", "-c", command};
+            Process process = Runtime.getRuntime().exec(cmd);
+            StreamGobblerLine errorGobbler = new StreamGobblerLine(process.getErrorStream(), "ERROR");
+            errorGobbler.start();
+            StreamGobblerLine outGobbler = new StreamGobblerLine(process.getInputStream(), "STDOUT");
+            outGobbler.start();
+            process.waitFor();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+
+    /**
+     * 命令运行结果 1:失败, 0:成功
+     * @return
+     * @throws IOException
+     * @throws InterruptedException
+     */
+    public static int cmdPano(String command) throws IOException, InterruptedException {
+        log.info("cmd: {}", command);
+//        String[] cmd = new String[]{"/bin/sh", "-c", command};
+//        Process exec = Runtime.getRuntime().exec(cmd);
+
+        // 使用 bin/sh 这个方法会报错
+        Process exec = RuntimeUtil.exec(command);
+
+        BufferedReader br = new BufferedReader(new InputStreamReader(exec.getInputStream()));
+        BufferedReader errorBuf = new BufferedReader(new InputStreamReader(exec.getErrorStream()));
+
+        String errorLine;
+        while ((errorLine = errorBuf.readLine()) != null) {
+            log.error("errorLine: {}", errorLine);
+        }
+
+        // success ,没有获取到信息
+        String line;
+        int i = 1;
+        while ((line = br.readLine()) != null) {
+
+            // 查看执行日志
+            if (i % 200 == 0) {
+                log.info("line, i=" + i +", " +line);
+            }
+
+            if (line.contains("done.")) {
+                log.info("line: {}", line);
+            }
+            i++;
+        }
+        log.info("执行总行数:" +i);
+
+        // 结束命令行
+        int isCmd = exec.waitFor();
+
+        // 关闭流
+        br.close();
+        errorBuf.close();
+
+        return isCmd;
+
+    }
+
+
+
+
+    public static void callLine(String command){
+        callLine(command, null);
+
+    }
+
+    /**
+     *
+     * @param command 命令
+     * @param lineSize 日志输出行数 ,可以为null
+     */
+    public static void callLine(String command, Integer lineSize){
+        log.info("cmd: " + command);
+        try {
+            Process process = Runtime.getRuntime().exec(command);
+            log.info("开始运行");
+            StreamGobblerLine errorGobbler = new StreamGobblerLine(process.getErrorStream(), "ERROR");
+            errorGobbler.start();
+            // 200行打印一次日志
+            StreamGobblerLine outGobbler = new StreamGobblerLine(process.getInputStream(), "STDOUT", lineSize);
+            outGobbler.start();
+            process.waitFor();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+
+
+
+}

+ 79 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/command/StreamGobblerLine.java

@@ -0,0 +1,79 @@
+package com.gis.oss.command;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.*;
+
+@Slf4j
+public class StreamGobblerLine extends Thread {
+
+	InputStream is;
+    String type;
+    OutputStream os;
+    Integer lineSize;  // 多少行打印日志一次
+
+    public StreamGobblerLine(InputStream is, String type) {
+        this(is, type, null, null);
+    }
+
+    public StreamGobblerLine(InputStream is, String type, Integer lineSize) {
+        this(is, type, null, lineSize);
+    }
+
+    StreamGobblerLine(InputStream is, String type, OutputStream redirect, Integer lineSize) {
+        this.is = is;  
+        this.type = type;  
+        this.os = redirect;
+        this.lineSize = lineSize;
+    }  
+
+    public void run() {
+        log.info("run StreamGobblerLine");
+
+        InputStreamReader isr = null;  
+        BufferedReader br = null;  
+        PrintWriter pw = null;  
+        try {  
+            if (os != null)  
+                pw = new PrintWriter(os);  
+
+            isr = new InputStreamReader(is);  
+            br = new BufferedReader(isr);  
+            String line=null;
+            int i = 1;
+            while ( (line = br.readLine()) != null) {
+                if (lineSize != null) {
+                    if (i % lineSize == 0) {
+                        log.info(type + "," + i +" : >" + line);
+                    }
+                } else {
+                    log.info(type + ","  + i +" : >" + line);
+                }
+                i++;
+
+            }
+
+            if (pw != null)  
+                pw.flush();  
+        } catch (IOException ioe) {  
+            ioe.printStackTrace();    
+        } finally{  
+            try {  
+            	if(pw!=null)
+            	{
+            		 pw.close();  
+            	}
+            	if(br!=null)
+            	{
+            		br.close();  
+            	}
+            	if(isr!=null)
+            	{
+            		isr.close();  
+            	}
+            } catch (IOException e) {  
+                e.printStackTrace();  
+            }  
+        }  
+    }  
+}

+ 37 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/constant/StorageType.java

@@ -0,0 +1,37 @@
+package com.gis.oss.constant;
+
+public enum StorageType {
+
+    OSS("oss", "阿里云"),
+    AWS("aws", "亚马逊"),
+    LOCAL("local", "本地");
+
+    private String code;
+    private String message;
+
+    private StorageType(String code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public String code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+    public static StorageType get(String code){
+        StorageType[] values = StorageType.values();
+        String enumValue = null;
+        for(StorageType eachValue : values){
+            enumValue = eachValue.code();
+            if(enumValue.equals(code)){
+                return eachValue;
+            }
+        }
+        return null;
+    }
+
+}

+ 250 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/AliYunOssUtil.java

@@ -0,0 +1,250 @@
+package com.gis.oss.util;
+
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.model.*;
+import com.gis.oss.command.CmdConstant;
+import com.gis.oss.command.CmdUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 阿里云oss工具类
+ */
+@Slf4j
+@Component
+public class AliYunOssUtil {
+
+//    @Autowired
+//    ConfigConstant configConstant;
+
+    @Value("${oss.key}")
+    public  String ossKey;
+
+    @Value("${oss.secrecy}")
+    public  String ossSecrecy;
+
+    @Value("${oss.bucket}")
+    public  String ossBucket;
+
+    @Value("${oss.point}")
+    public  String ossPoint;
+
+
+    // 加载对象
+    private OSSClient init(){
+//        return new OSSClient(configConstant.ossPoint, configConstant.ossKey, configConstant.ossSecrecy);
+        return new OSSClient(ossPoint, ossKey, ossSecrecy);
+    }
+
+
+
+    public  void delete(String key) throws IOException {
+        OSSClient ossClient = init();
+        try {
+
+            // 2019-2-28 启动aliyun oss 空间
+            ossClient.deleteObject(ossBucket, key);
+            ossClient.deleteObject(ossBucket, key);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    //上传的数据是byte[],key是上传后的文件名
+    public void upload(byte[] data, String key) throws IOException {
+        OSSClient ossClient = init();
+        try {
+            // 2019-2-28 启动aliyun oss 空间
+            ossClient.putObject(ossBucket, key, new ByteArrayInputStream(data));
+        } catch (Exception e) {
+            log.error(e.toString() + key);
+        }
+    }
+
+    /**
+     *
+     * @param data
+     * @param key
+     * @param contentType : 不设置,默认浏览器打开图片
+     * application/octet-stream 使用cdn后会自动下载
+     * @throws IOException
+     */
+    public void upload(byte[] data, String key, String contentType) throws IOException {
+        OSSClient ossClient = init();
+
+        // 创建上传文件的元信息,可以通过文件元信息设置HTTP header。
+        ObjectMetadata meta = new ObjectMetadata();
+        meta.setContentType(contentType);
+
+        try {
+            // 2019-2-28 启动aliyun oss 空间
+            ossClient.putObject(ossBucket, key, new ByteArrayInputStream(data), meta);
+        } catch (Exception e) {
+            log.error(e.toString() + key);
+        }
+    }
+
+
+    public void upload(String filePath, String key) {
+        OSSClient ossClient = init();
+        try {
+            File file = new File(filePath);
+            if (!file.exists()) {
+                log.error("要上传的文件不存在:" + filePath);
+            }
+            ossClient.putObject(ossBucket, key, new File(filePath));
+
+        } catch (Exception e) {
+            log.error(e.toString() + filePath);
+        }
+    }
+
+    public  void upload2(String filePath, String key) {
+        OSSClient ossClient = init();
+        try {
+
+            // 2019-2-28 启动aliyun oss 空间
+            ossClient.putObject(ossBucket, key, new File(filePath));
+        } catch (Exception e) {
+            log.error(e.toString() + filePath);
+        }
+    }
+
+
+    /**
+     * 上传的数据是文件夹,参数是文件夹路径,key是上传后的文件名
+     *
+     * @param filepaths key : 原文件路径
+     *                  value: oss路径, oss会自动创建目录
+     */
+    public  void uploadMulFiles(Map<String, String> filepaths) {
+        if (filepaths == null) {
+            return;
+        }
+        log.info("开始批量上传到阿里云:" + new Date().toString());
+        if (filepaths.size() > 50) {
+            for (String filePath : filepaths.keySet()) {
+                upload2(filePath, filepaths.get(filePath));
+            }
+        } else {
+            for (String filePath : filepaths.keySet()) {
+                log.info("文件:" + filePath + "到阿里云:" + filepaths.get(filePath));
+                upload(filePath, filepaths.get(filePath));
+            }
+        }
+        log.info("批量上传阿里云完毕:" + new Date().toString());
+    }
+
+
+    /**
+     * 可以删除目录
+     *
+     * @param prefix 图片路径
+     * @return
+     */
+    public  int deleteFile(String prefix) {
+        OSSClient ossClient = init();
+        ObjectListing objectListing = ossClient.listObjects(ossBucket, prefix);
+        List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
+        try {
+            for (OSSObjectSummary s : sums) {
+                delete(s.getKey());
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return sums.size();
+    }
+
+    public  void main(String[] args) throws IOException {
+
+        HashMap<String, String> map = new HashMap<>();
+//		map.put("F:\\test\\aa.jpg", "kanfang/test/aa.jpg");
+        map.put("F:\\test\\oss\\floor.json", "kanfang/test/faa.json");
+        uploadMulFiles(map);
+
+
+    }
+
+
+
+
+
+
+    /**
+     * 通过文件名判断并获取OSS服务文件上传时文件的contentType
+     *
+     * @param fileName 文件名
+     * @return 文件的contentType
+     */
+    private static String getContentType(String fileName) {
+        log.info("getContentType:" + fileName);
+        // 文件的后缀名
+        String fileExtension = fileName.substring(fileName.lastIndexOf("."));
+        if (".bmp".equalsIgnoreCase(fileExtension)) {
+            return "image/bmp";
+        }
+        if (".gif".equalsIgnoreCase(fileExtension)) {
+            return "image/gif";
+        }
+        if (".jpeg".equalsIgnoreCase(fileExtension) || ".jpg".equalsIgnoreCase(fileExtension)
+                || ".png".equalsIgnoreCase(fileExtension)) {
+            return "image/jpeg";
+        }
+        if (".html".equalsIgnoreCase(fileExtension)) {
+            return "text/html";
+        }
+        if (".txt".equalsIgnoreCase(fileExtension)) {
+            return "text/plain";
+        }
+        if (".vsd".equalsIgnoreCase(fileExtension)) {
+            return "application/vnd.visio";
+        }
+        if (".ppt".equalsIgnoreCase(fileExtension) || "pptx".equalsIgnoreCase(fileExtension)) {
+            return "application/vnd.ms-powerpoint";
+        }
+        if (".doc".equalsIgnoreCase(fileExtension) || "docx".equalsIgnoreCase(fileExtension)) {
+            return "application/msword";
+        }
+        if (".xml".equalsIgnoreCase(fileExtension)) {
+            return "text/xml";
+        }
+        if (".pdf".equalsIgnoreCase(fileExtension)) {
+            return "application/pdf";
+        }
+        // 默认返回类型
+        return "image/jpeg";
+    }
+
+    /**
+     * 以流下载图片
+     *
+     * @param
+     * @return
+     * @Title: getInputStreamByFileUrl
+     * @Description: 根据文件路径获取InputStream流
+     * @return: InputStream
+     */
+    public  InputStream getInputStreamByFileUrl(String filePath) {
+        // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
+        OSSClient ossClient = init();
+        OSSObject ossObject = ossClient.getObject(ossBucket, filePath);
+        return ossObject.getObjectContent();
+    }
+
+
+    public void uploadBySh(String filePath, String key) {
+        String cmd = String.format(CmdConstant.UPLOAD_DIR, ossBucket, filePath, key , "oss");
+        CmdUtils.callShell(cmd);
+    }
+}

+ 166 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/AwsOssUtil.java

@@ -0,0 +1,166 @@
+package com.gis.oss.util;
+
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.regions.Regions;
+import com.amazonaws.services.s3.AmazonS3;
+import com.amazonaws.services.s3.AmazonS3ClientBuilder;
+import com.amazonaws.services.s3.model.CannedAccessControlList;
+import com.amazonaws.services.s3.model.DeleteObjectsRequest;
+import com.amazonaws.services.s3.model.PutObjectRequest;
+import com.amazonaws.services.s3.model.S3ObjectSummary;
+import com.gis.oss.command.CmdConstant;
+import com.gis.oss.command.CmdUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * aws-s3工具类
+ */
+@Slf4j
+@Component
+public class AwsOssUtil {
+
+
+//    @Value("${oss.key:AKIAWCV5QFZ3ZNELKYUY}")
+    private static String s3key="AKIAWCV5QFZ3ZNELKYUY";
+
+//    @Value("${oss.secrecy:epS5ghyR4LJ7rxk/qJO9ZYh6m9Oz6g5haKDu4yws}")
+    private static String s3secrecy="epS5ghyR4LJ7rxk/qJO9ZYh6m9Oz6g5haKDu4yws";
+
+    @Value("${oss.bucket}")
+    private String bucket;
+
+    public void uploadAws(String filePath, String key1){
+        uploadAwsWithHeaders(filePath,key1,null);
+    }
+
+    public void uploadAws(byte[] data,String objectName){
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try {
+            com.amazonaws.services.s3.model.ObjectMetadata metadata = new com.amazonaws.services.s3.model.ObjectMetadata();
+            s3.putObject(this.bucket, objectName, new ByteArrayInputStream(data), metadata);
+        }catch (Exception e){
+            log.error("s3上传文件失败", e);
+        }finally {
+            if(s3 != null){
+                s3.shutdown();
+            }
+        }
+    }
+
+    public void uploadAwsWithHeaders(String filePath, String key1,Map<String,String> headers){
+        try{
+            uploadS3File(filePath, key1);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * s3上传文件
+     * @param filePath
+     * @param key1
+     * @throws IOException
+     */
+    private void uploadS3File(String filePath, String key1) throws Exception {
+        /**
+         * 创建s3对象
+         */
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try{
+            File file = new File(filePath);
+            if(!file.exists()){
+                log.info("要上传s3的文件不存在");
+                return;
+            }
+
+            // 设置文件并设置公读
+            com.amazonaws.services.s3.model.ObjectMetadata metadata = new com.amazonaws.services.s3.model.ObjectMetadata();
+            if(filePath.contains(".jpg")){
+                metadata.setContentType("image/jpeg");
+            }
+            if(filePath.contains(".png")){
+                metadata.setContentType("image/png");
+            }
+//            PutObjectRequest request = new PutObjectRequest(s3bucket, key1, file);
+            PutObjectRequest request = new PutObjectRequest(bucket, key1, file);
+            request.withCannedAcl(CannedAccessControlList.PublicRead);
+            request.withMetadata(metadata);
+
+            // 上传文件
+            com.amazonaws.services.s3.model.PutObjectResult putObjectResult = s3.putObject(request);
+            if (StringUtils.isNotEmpty(putObjectResult.getETag())) {
+                log.info("s3上传文件成功:" + key1);
+            }
+        }catch (Exception e){
+            throw e;
+        }finally {
+            s3.shutdown();
+        }
+
+    }
+
+    private void deleteAwsFile(String prefix){
+
+        int maxKeys = 200;
+        String nextMaker = null;
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try {
+            com.amazonaws.services.s3.model.ListObjectsRequest listObjectsRequest = new com.amazonaws.services.s3.model.ListObjectsRequest();
+            listObjectsRequest.setBucketName(this.bucket);
+            listObjectsRequest.setPrefix(prefix);
+            listObjectsRequest.setMaxKeys(maxKeys);
+
+            com.amazonaws.services.s3.model.ObjectListing objectListing;
+            do{
+                listObjectsRequest.setMarker(nextMaker);
+                objectListing = s3.listObjects(listObjectsRequest);
+                List<S3ObjectSummary> objectSummaries = objectListing.getObjectSummaries();
+                List<DeleteObjectsRequest.KeyVersion> keys =objectSummaries.stream().map(summary->new DeleteObjectsRequest.KeyVersion(summary.getKey())).collect(Collectors.toList());
+
+                com.amazonaws.services.s3.model.DeleteObjectsRequest multiObjectDeleteRequest =
+                        new com.amazonaws.services.s3.model.DeleteObjectsRequest(this.bucket)
+                                .withKeys(keys)
+                                .withQuiet(false);
+                com.amazonaws.services.s3.model.DeleteObjectsResult delObjRes = s3.deleteObjects(multiObjectDeleteRequest);
+                int successfulDeletes = delObjRes.getDeletedObjects().size();
+                log.info("删除aws文件成功,删除文件数;{}", successfulDeletes);
+                nextMaker = objectListing.getNextMarker();
+            }while (objectListing.isTruncated());
+        }catch (Exception e){
+            log.error("删除was文件失败,path="+prefix, e);
+        }finally {
+            if(s3 != null){
+                s3.shutdown();
+            }
+        }
+    }
+
+
+    public void uploadBySh(String filePath, String key) {
+        String cmd = String.format(CmdConstant.UPLOAD_DIR, bucket, filePath, key , "aws");
+        CmdUtils.callShell(cmd);
+    }
+}

文件差异内容过多而无法显示
+ 1267 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java


+ 138 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java

@@ -0,0 +1,138 @@
+package com.gis.oss.util;
+
+import com.qiniu.common.QiniuException;
+import com.qiniu.http.Response;
+import com.qiniu.storage.BucketManager;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.Region;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.storage.model.FileInfo;
+import com.qiniu.util.Auth;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+
+import java.util.Map;
+
+/**
+ * 七牛云oss上传工具
+ */
+@Slf4j
+public class QiNiuOssUtil {
+
+    private static String ACCESS_KEY = "dlPPwgZky_F-iP8CbSbJpiAtAcqw3BYwb9rdHMrS";
+    private static String SECRET_KEY = "YEtkLKDsImXB-8m1CT1zV_YwCwwGvrUvo2ktj9KZ";
+
+    // 大场景 super 华南区域
+    private static String bucketName = "super";
+
+
+    //构造一个带指定 Region 对象的配置类, Region.region2(): 华南区域
+//    private static Configuration cfg = new Configuration(Region.region2());
+//    private static Configuration cfg = new Configuration(Zone.autoZone());
+    private static Configuration cfg = new Configuration(Region.huanan());
+
+    // 华北
+//    private static String bucketName = "model3d";
+//    private static Configuration cfg = new Configuration(Zone.autoZone());
+
+    //...其他参数参考类注释
+    private static UploadManager uploadManager = new UploadManager(cfg);
+
+    private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
+//    private static  String upToken = auth.uploadToken(bucketName);
+
+
+
+    /**
+     * localFilePath: 本地文件路径
+     * ossFilePath: ossw文件存放路径, 注意前面不要用"/" ,data/aa.jpg
+     */
+    public static void upload(String localFilePath, String ossFilePath) throws QiniuException {
+        // 覆盖需要把ossKey放到uploadToken里
+        String upToken = auth.uploadToken(bucketName, ossFilePath);
+        Response response = uploadManager.put(localFilePath, ossFilePath, upToken);
+        if (response.statusCode!=200){
+            String errorMsg = response.toString();
+            log.error("七牛云响应值:{}", errorMsg);
+//            BaseRuntimeException.isTrue(true, null, "七牛云返回上传失败: " + errorMsg);
+        }
+    }
+
+
+    public static void main(String[] args) throws QiniuException {
+        String localFilePath = "F:\\test\\ngin\\11.txt";
+        String ossFilePath = "data/owen/11.txt";
+        upload(localFilePath, ossFilePath);
+        System.out.println("11111");
+
+//        getInfo(ossFilePath);
+    }
+
+
+    /**
+     * 批量上传
+     * key: localFilePath
+     * value: ossFilePath
+     */
+    public static void uploads(Map<String, String> param) {
+        log.info("开始批量上传到七牛云");
+        String upToken = auth.uploadToken(bucketName);
+        param.forEach((key, val)->{
+            try {
+                uploadManager.put(key, val, upToken);
+            } catch (QiniuException e) {
+                e.printStackTrace();
+            }
+        });
+        log.info("完成批量上传到七牛云");
+    }
+
+
+
+    /**
+     * by owen 2022-5-13
+     * @param key :文件路径
+     * 第一级目录不能带/ 例如: owen/aa.jpg
+     * 不支持删除目录, 删除目录使用脚本
+     */
+    public static void delete(String key){
+        BucketManager bucketManager = new BucketManager(auth, cfg);
+        try {
+            bucketManager.delete(bucketName, key);
+        } catch (QiniuException ex) {
+            //如果遇到异常,说明删除失败
+            log.error(ex.response.toString());
+        }
+    }
+
+
+
+
+    @Test
+    public void testDelete(){
+        delete("owen/a");
+    }
+
+
+    /**
+     * 获取文件信息
+     * @param key
+     */
+    public static void getInfo(String key){
+
+        BucketManager bucketManager = new BucketManager(auth, cfg);
+        try {
+            FileInfo fileInfo = bucketManager.stat(bucketName, key);
+            System.out.println(fileInfo.hash);
+            System.out.println(fileInfo.fsize);
+            System.out.println(fileInfo.mimeType);
+            System.out.println(fileInfo.putTime);
+        } catch (QiniuException ex) {
+            System.err.println(ex.response.toString());
+        }
+    }
+
+
+
+
+}

文件差异内容过多而无法显示
+ 1244 - 0
720yun_fd_consumer/gis_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java


+ 18 - 14
720yun_fd_consumer/pom.xml

@@ -6,9 +6,12 @@
 
     <groupId>com.gis</groupId>
     <artifactId>720yun_fd_consumer</artifactId>
-    <!--<packaging>war</packaging>-->
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
     <version>1.0.0</version>
+    <modules>
+        <module>gis_consumer</module>
+        <module>gis_oss</module>
+    </modules>
 
     <parent>
         <groupId>org.springframework.boot</groupId>
@@ -44,7 +47,8 @@
     </properties>
 
 
-
+    <!--dependencyManagement用于管理依赖版本号, 必须写版本号,不然依赖不上-->
+    <dependencyManagement>
         <dependencies>
 
             <!-- springboot -->
@@ -203,17 +207,17 @@
 
 
         </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-        <finalName>720yun_fd_consumer</finalName>
-    </build>
+    </dependencyManagement>
+
+    <!--<build>-->
+        <!--<plugins>-->
+            <!--<plugin>-->
+                <!--<groupId>org.springframework.boot</groupId>-->
+                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
+            <!--</plugin>-->
+        <!--</plugins>-->
+        <!--<finalName>720yun_fd_consumer</finalName>-->
+    <!--</build>-->
 
 
 </project>

+ 0 - 4
720yun_fd_consumer/src/main/resources/static/ossupload.sh

@@ -1,4 +0,0 @@
-#!/bin/bash
-directory=$1
-fileurl=$2
-/opt/ossutil/ossutil64 cp \-rf $directory oss://oss-xiaoan/$fileurl  

+ 0 - 11
720yun_fd_consumer/src/main/resources/static/shutdown.sh

@@ -1,11 +0,0 @@
-#!/bin/bash
-RESOURCE_NAME=720yun_fd_consumer.jar
-   tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
-
-if [ ${tpid} ]; then
-echo 'Kill Process!'
-kill -9 $tpid
-else
-echo 'Stop Success!'
-fi
-

+ 0 - 5
720yun_fd_consumer/src/main/resources/static/start.sh

@@ -1,5 +0,0 @@
-#!/bin/sh
-RESOURCE_NAME=720yun_fd_consumer.jar
-rm -f tpid
-nohup java -jar ./$RESOURCE_NAME --spring.profiles.active=sit --server.port=8002 & echo $! > tpid
-echo Start Success!

+ 0 - 19
720yun_fd_consumer/src/test/java/com/gis/server/impl/SceneServiceImplTest.java

@@ -1,19 +0,0 @@
-package com.gis.server.impl;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Created by owen on 2021/1/12 0012 11:53
- */
-public class SceneServiceImplTest {
-
-    @Test
-    public void getBaseMapper() {
-    }
-
-    @Test
-    public void cmdPano() {
-    }
-}

+ 123 - 0
720yun_fd_manage/gis_application/src/main/resources/application-locSitAws.properties

@@ -0,0 +1,123 @@
+
+
+#DB
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#spring.datasource.druid.url=jdbc:mysql://127.0.0.1:13306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+#spring.datasource.druid.username=root
+#spring.datasource.druid.password=JK20220120%JIK
+
+#spring.datasource.druid.url=jdbc:mysql://120.25.146.52:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+#spring.datasource.druid.username=root
+#spring.datasource.druid.password=4dkk2020test%
+
+#spring.datasource.druid.url=jdbc:mysql://8.129.209.131:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
+#spring.datasource.druid.username=root
+#spring.datasource.druid.password=4dkk2020cuikuan%
+
+
+spring.datasource.druid.username=root
+spring.datasource.druid.url=jdbc:mysql://8.135.106.227:3306/${project.name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+spring.datasource.druid.password=4dkk2021testproject%
+
+# \u521D\u59CB\u8FDE\u63A5\u6570
+spring.datasource.druid.initial-size=5
+# \u6700\u5C0F\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.min-idle=10
+# \u6700\u5927\u8FDE\u63A5\u6C60\u6570\u91CF
+spring.datasource.druid.max-active=20
+# \u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
+spring.datasource.druid.max-wait=60000
+# \u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.time-between-eviction-runs-millis=60000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.min-evictable-idle-time-millis=30000
+# \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5927\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
+spring.datasource.druid.max-evictable-idle-time-millis=90000
+# \u914D\u7F6E\u68C0\u6D4B\u8FDE\u63A5\u662F\u5426\u6709\u6548
+spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.test-on-borrow=false
+spring.datasource.druid.test-on-return=false
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+
+
+
+# v4-sit-4dkankan
+spring.redis.host=127.0.0.1
+spring.redis.password=
+
+spring.redis.port=6379
+spring.redis.database=0
+# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4 \u5355\u4F4D ms\uFF08\u6BEB\u79D2\uFF09
+spring.redis.timeout=3000ms
+# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F8\u3002
+spring.redis.jedis.pool.max-idle=8
+#\u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u9ED8\u8BA4\u503C\u4E5F\u662F0\u3002
+spring.redis.jedis.pool.min-idle=0
+# \u5982\u679C\u8D4B\u503C\u4E3A-1\uFF0C\u5219\u8868\u793A\u4E0D\u9650\u5236\uFF1B\u5982\u679Cpool\u5DF2\u7ECF\u5206\u914D\u4E86maxActive\u4E2Ajedis\u5B9E\u4F8B\uFF0C\u5219\u6B64\u65F6pool\u7684\u72B6\u6001\u4E3Aexhausted(\u8017\u5C3D)\u3002
+spring.redis.jedis.pool.max-active=8
+# \u7B49\u5F85\u53EF\u7528\u8FDE\u63A5\u7684\u6700\u5927\u65F6\u95F4\uFF0C\u5355\u4F4D\u6BEB\u79D2\uFF0C\u9ED8\u8BA4\u503C\u4E3A-1\uFF0C\u8868\u793A\u6C38\u4E0D\u8D85\u65F6\u3002\u5982\u679C\u8D85\u8FC7\u7B49\u5F85\u65F6\u95F4\uFF0C\u5219\u76F4\u63A5\u629B\u51FAJedisConnectionException
+spring.redis.jedis.pool.max-wait=-1ms
+
+#rabbit MQ
+spring.rabbitmq.address=127.0.0.1:5672
+spring.rabbitmq.username=admin
+spring.rabbitmq.password=123456
+spring.rabbitmq.virtual-host=/
+spring.rabbitmq.connection-timeout=15000
+# confirm\u0123\u02BD
+spring.rabbitmq.publisher-confirms=true
+# return\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.publisher-returns=true
+# \uFFFD\uFFFDreturn\uFFFD\uFFFD\uFFFD\u01BD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+spring.rabbitmq.template.mandatory=true
+
+
+# oss info
+#oss.point=http://oss-cn-shenzhen.aliyuncs.com
+# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04BB\uFFFD\u38EC\u05BB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u06B0\uFFFD\uFFFD\uFFFD\uFFFD\u01B5\u0137\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFDoss\uFFFD\uFFFD\uFFFD\uFFFD\u0427\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0637\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00F2\uFFFD\uFFFD\uFFFD
+oss.point=http://oss-cn-shenzhen-internal.aliyuncs.com
+oss.key=LTAIUrvuHqj8pvry
+oss.secrecy=JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4
+
+
+# oss-base
+oss.type=aws
+oss.bucket=test-4dkankan
+oss.file.path=${project.name}/
+oss.domain=https://testeurs3.4dkankan.com/
+
+
+
+
+
+# swagger2 \u8BBE\u7F6E\u5168\u5C40\u5B57\u4F53\u683C\u5F0F\u4E3Autf-8
+swagger.package=com.gis.web.controller
+swagger.title=\u5168\u666F\u770B\u770B-sitAws
+swagger.description=${swagger.title}
+swagger.version=1.0
+
+#log
+logging.path=E:/log/${project.name}_log
+logging.config=classpath:logback-spring.xml
+logging.level.com.gis=debug
+
+# \u670D\u52A1\u5668\u6587\u4EF6\u5B58\u50A8\u5730\u5740
+server.file.path=E:/data/${project.name}_data/
+server.domain=
+
+domain.4dkk=https://test.4dkankan.com
+#domain.4dkk=https://v4-uat.4dkankan.com
+
+# \u6307\u5B9Atomcat\u6587\u4EF6\u4E0A\u4F20\u7684\u4E34\u65F6\u76EE\u5F55,\u4E0A\u4F20\u5B8C\u4F1A\u628A\u6587\u4EF6\u5220\u9664\uFF0C\u4F46\u8FD9\u4E2A\u65B9\u6CD5\u4E0D\u4F1A\u4E3B\u52A8\u521B\u5EFA\u76EE\u5F55, \u9ED8\u8BA4\u5728/tmp/tomcat.XXX, \u8FD9\u4E2A\u76EE\u5F55\u4F1A\u5728\u6E05\u695Atmp\u6587\u4EF6\u65F6\u5220\u9664\uFF0C\u5BFC\u81F4\u51FA\u9519
+#spring.servlet.multipart.location=/mnt
+
+
+# 2021-3-9 POST\u8BF7\u6C42\u9ED8\u8BA4\u6700\u59272M\uFF0C -1\uFF1A\u4E0D\u9650\u5236
+server.tomcat.max-http-post-size=20
+
+
+
+

+ 2 - 1
720yun_fd_manage/gis_application/src/main/resources/application.properties

@@ -1,7 +1,8 @@
 server.port=8001
 server.servlet.context-path=/qjkankan
 
-spring.profiles.active=locPro
+#spring.profiles.active=locPro
+spring.profiles.active=locSitAws
 
 
 # \uFFFD\uFFFD\u013F\uFFFD\uFFFD\uFFFD\uFFFD

+ 0 - 56
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/SceneEntity.java

@@ -1,56 +0,0 @@
-package com.gis.domain.entity;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-import java.io.Serializable;
-
-@Data
-@Entity
-@Table(name = "tb_scene")
-public class SceneEntity extends BaseEntity implements Serializable {
-
-    private static final long serialVersionUID = -8093446477843493946L;
-
-
-    @ApiModelProperty(value = "场景码")
-    private String sceneCode;
-
-    @ApiModelProperty(value = "场景名称")
-    private String sceneTitle;
-
-//    @ApiModelProperty(value = "场景url")
-//    private String webSite;
-
-//    @ApiModelProperty(value = "简介")
-//    private String description;
-
-    @ApiModelProperty(value = "封面图")
-    private String icon;
-
-    @ApiModelProperty(value = "someData")
-    private String someData;
-
-    @ApiModelProperty(value = "排序(序号小排前面)")
-    private Integer sort;
-
-    @ApiModelProperty(value =  "初始视觉")
-    private String initVisual;
-
-    @ApiModelProperty(value = "类型:pano/4dkk")
-    private String type;
-
-    @ApiModelProperty(value = "目录分组Id")
-    private Long catalogId;
-
-    @ApiModelProperty(value = "作品Id")
-    private Long workId;
-
-    @ApiModelProperty(value =  "热点关联场景, 场景码,允许多个以逗号隔开")
-    private String useHots;
-
-
-
-}

+ 0 - 49
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/tree/CatalogTree.java

@@ -1,49 +0,0 @@
-package com.gis.domain.tree;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import com.gis.domain.vo.CatalogSceneVo;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-
-@Data
-public class CatalogTree implements Serializable {
-
-
-    private static final long serialVersionUID = 5299557851133375944L;
-    private Long id;
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-    @JSONField(serialize = false)
-    @ApiModelProperty(value = "创建人")
-    private String userId;
-
-    @ApiModelProperty(value = "排序(序号小排前面)")
-    private Integer sort;
-
-    @JSONField(serialize = false)
-    @ApiModelProperty(value = "目录层级,最大二级")
-    private Integer level;
-
-    @ApiModelProperty(value = "父目录Id")
-    private Long parentId;
-
-
-    /** 默认给空数组*/
-
-    private List<CatalogTree> children = new ArrayList<>();
-
-    /** 场景实体*/
-//    private List<SceneEntity> scenes;
-    @JSONField(serialize = false)
-    private List<CatalogSceneVo> scenes;
-
-
-//    @JSONField(serialize = false)
-//    private boolean checked = false;
-}

+ 0 - 27
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/CatalogSceneVo.java

@@ -1,27 +0,0 @@
-package com.gis.domain.vo;
-
-import com.gis.domain.entity.SceneEntity;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by owen on 2021/3/29 0029 14:58
- *
- * 展示页,需要目录
- */
-@Data
-public class CatalogSceneVo extends SceneEntity {
-
-
-    @ApiModelProperty(value = "目录名称")
-    private String CatalogName;
-
-    @ApiModelProperty(value = "目录Id")
-    private Long CatalogId;
-
-    @ApiModelProperty(value = "父目录Id")
-    private Long parentId;
-
-    @ApiModelProperty(value = "父目录名称")
-    private String parentName;
-}

+ 0 - 29
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/vo/WorkInfoVo.java

@@ -1,29 +0,0 @@
-package com.gis.domain.vo;
-
-import com.gis.domain.entity.CatalogEntity;
-import com.gis.domain.entity.SceneEntity;
-import com.gis.domain.entity.WorkEntity;
-import com.gis.domain.tree.CatalogTree;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * Created by owen on 2021/3/29 0029 14:58
- *
- * 展示页,需要目录
- */
-@Data
-public class WorkInfoVo extends WorkEntity {
-
-    @ApiModelProperty(value = "分类信息ROOT")
-    private List<CatalogEntity> catalogRoot;
-
-    @ApiModelProperty(value = "分类信息")
-    private List<CatalogEntity> catalogs;
-
-    @ApiModelProperty(value = "场景")
-    private List<SceneEntity> scenes;
-
-}

+ 0 - 65
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/SceneMapper.java

@@ -1,65 +0,0 @@
-package com.gis.mapper;
-
-
-import com.gis.domain.entity.SceneEntity;
-import com.gis.domain.vo.CatalogSceneVo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-
-@Component
-@Mapper
-public interface SceneMapper extends IBaseMapper<SceneEntity, Long> {
-
-
-    @Select("select * from tb_scene where is_delete = 0 and scene_code = #{sceneCode}")
-    List<SceneEntity> findBySceneCode(String sceneCode);
-
-
-    @Update("UPDATE tb_scene SET sort=#{sort} where id = #{id}")
-    void setSortById(String id, String sort);
-
-
-    /**
-     * for update 锁表更新完,才能进行更新,需要开启事务
-     * 并发量大作会出现脏数据
-     *
-     * @param id
-     * @return
-     */
-    @Select("select * from tb_scene where is_delete = 0 and id = #{id} for update")
-    SceneEntity findByIdForUpdate(Long id);
-
-    @Select("select * from tb_scene where is_delete = 0 and catalog_id = #{catalogId}")
-    List<SceneEntity> findByCatalogId(Long catalogId);
-
-
-    @Select("select * from tb_scene where is_delete = 0 and work_id = #{workId}")
-    List<SceneEntity> findByWorkId(String workId);
-
-    @Select("select scene_code from tb_scene where is_delete = 0 and work_id = #{workId} AND type = #{type}")
-    List<String> strFindByWorkId(String workId, String type);
-
-    @Update("UPDATE tb_scene SET catalog_id = #{newCatalogId} where is_delete = 0 and catalog_id = #{oldCatalogId}")
-    void setCatalogByCatalogId(Long newCatalogId, Long oldCatalogId);
-
-    @Update("UPDATE tb_scene SET is_delete = 1 where is_delete = 0 and catalog_id = #{id}")
-    void setDeleteByCatalogId(Long id);
-
-    @Update("UPDATE tb_scene SET is_delete = 1 where is_delete = 0 and work_id = #{workId}")
-    void setDeleteByWorkId(String workId);
-
-    @Select("select a.*, b.id as catalogId, b.name as catalogName, c.id as parentId, c.name as parentName " +
-            "from tb_scene a left join tb_catalog b on b.id = a.catalog_id left join tb_catalog c on c.id = b.parent_id " +
-            "where a.is_delete = 0 and a.id = #{sceneId}")
-    CatalogSceneVo findVoById(Long sceneId);
-
-    @Select("select a.*, b.id as catalogId, b.name as catalogName, c.id as parentId, c.name as parentName " +
-            "from tb_scene a left join tb_catalog b on b.id = a.catalog_id left join tb_catalog c on c.id = b.parent_id " +
-            "where a.is_delete = 0 and a.catalog_id = #{catalogId}")
-    List<CatalogSceneVo> findVoByCatalogId(Long catalogId);
-}

+ 76 - 0
720yun_fd_manage/gis_oss/pom.xml

@@ -0,0 +1,76 @@
+<?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>720yun_fd_manage</artifactId>
+        <groupId>com.gis</groupId>
+        <version>1.0.0</version>
+    </parent>
+
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>gis_oss</artifactId>
+    <packaging>jar</packaging>
+
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_common</artifactId>
+        </dependency>
+
+        <!--AliYun sdk-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.0.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+            <version>1.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>2.5.0</version>
+        </dependency>
+
+
+        <!--七牛云oss info-->
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>happy-dns-java</artifactId>
+            <version>0.1.6</version>
+            <scope>compile</scope>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+            <version>7.10.0</version>
+        </dependency>
+
+
+        <!--aws s3 -->
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk</artifactId>
+            <version>1.11.327</version>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.4</version>
+            <scope>compile</scope>
+        </dependency>
+
+
+    </dependencies>
+
+
+</project>

+ 37 - 0
720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/constant/StorageType.java

@@ -0,0 +1,37 @@
+package com.gis.oss.constant;
+
+public enum StorageType {
+
+    OSS("oss", "阿里云"),
+    AWS("aws", "亚马逊"),
+    LOCAL("local", "本地");
+
+    private String code;
+    private String message;
+
+    private StorageType(String code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public String code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+    public static StorageType get(String code){
+        StorageType[] values = StorageType.values();
+        String enumValue = null;
+        for(StorageType eachValue : values){
+            enumValue = eachValue.code();
+            if(enumValue.equals(code)){
+                return eachValue;
+            }
+        }
+        return null;
+    }
+
+}

+ 7 - 51
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/AliyunOssUtil.java

@@ -1,4 +1,4 @@
-package com.gis.common.util;
+package com.gis.oss.util;
 
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.*;
@@ -7,7 +7,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -18,7 +21,7 @@ import java.util.Map;
  */
 @Slf4j
 @Component
-public class AliyunOssUtil {
+public class AliYunOssUtil {
 
     @Autowired
     ConfigConstant configConstant;
@@ -155,49 +158,13 @@ public class AliyunOssUtil {
         map.put("F:\\test\\oss\\floor.json", "kanfang/test/faa.json");
         uploadMulFiles(map);
 
-//		deleteFile("kanfang/test/aa.jpg");
 
     }
 
-    /**
-     * 上传目录到oss
-     * @param dirPath 目录地址
-     * @param sceneCode 场景码
-     * @param ossBasePath oss基础地址
-     * @throws IOException
-     */
-    public  void uploadDir(String dirPath, String sceneCode, String ossBasePath) throws IOException {
-        Map map = FileUtils.eachFile(dirPath, sceneCode, ossBasePath);
-        uploadMulFiles(map);
-        log.info("oss上传完成");
-    }
 
 
-    public  String upload5(String filePath, String key) {
-        OSSClient ossClient = init();
-        PutObjectResult result = null;
-        try {
-            File file = new File(filePath);
-            if (!file.exists()) {
-                log.error("要上传的文件不存在:" + filePath);
-            }
 
 
-            result = ossClient.putObject(configConstant.ossBucket, key, new File(filePath));
-
-        } catch (Exception e) {
-            log.error(e.toString() + filePath);
-        }
-
-        log.info(" getETag : " + result.getETag());
-        log.info("1 : " + result.toString());
-        log.info("2 : " + result.getRequestId());
-        log.info("3 : " + result.getClientCRC());
-        log.info("4 : " + result.getResponse());
-        log.info("5 : " + result.getServerCRC());
-        return result.getETag();
-    }
-
 
     /**
      * 通过文件名判断并获取OSS服务文件上传时文件的contentType
@@ -262,17 +229,6 @@ public class AliyunOssUtil {
 
 
 
-    /**
-     * 生成图片
-     * @param inputFilePath
-     * @param savePath
-     */
-//	public static void writeFile(String inputFilePath, String savePath){
-//		try {
-//			FileUtils.bigFileWrite(getInputStreamByFileUrl(inputFilePath), savePath);
-//		} catch (IOException e) {
-//			e.printStackTrace();
-//		}
-//	}
+
 
 }

+ 161 - 0
720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/AwsOssUtil.java

@@ -0,0 +1,161 @@
+package com.gis.oss.util;
+
+import com.amazonaws.auth.AWSStaticCredentialsProvider;
+import com.amazonaws.auth.BasicAWSCredentials;
+import com.amazonaws.regions.Regions;
+import com.amazonaws.services.s3.AmazonS3;
+import com.amazonaws.services.s3.AmazonS3ClientBuilder;
+import com.amazonaws.services.s3.model.CannedAccessControlList;
+import com.amazonaws.services.s3.model.DeleteObjectsRequest;
+import com.amazonaws.services.s3.model.PutObjectRequest;
+import com.amazonaws.services.s3.model.S3ObjectSummary;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * aws-s3工具类
+ */
+@Slf4j
+@Component
+public class AwsOssUtil {
+
+
+//    @Value("${oss.key:AKIAWCV5QFZ3ZNELKYUY}")
+    private static String s3key="AKIAWCV5QFZ3ZNELKYUY";
+
+//    @Value("${oss.secrecy:epS5ghyR4LJ7rxk/qJO9ZYh6m9Oz6g5haKDu4yws}")
+    private static String s3secrecy="epS5ghyR4LJ7rxk/qJO9ZYh6m9Oz6g5haKDu4yws";
+
+    @Value("${oss.bucket}")
+    private String bucket;
+
+    public void uploadAws(String filePath, String key1){
+        uploadAwsWithHeaders(filePath,key1,null);
+    }
+
+    public void uploadAws(byte[] data,String objectName){
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try {
+            com.amazonaws.services.s3.model.ObjectMetadata metadata = new com.amazonaws.services.s3.model.ObjectMetadata();
+            s3.putObject(this.bucket, objectName, new ByteArrayInputStream(data), metadata);
+        }catch (Exception e){
+            log.error("s3上传文件失败", e);
+        }finally {
+            if(s3 != null){
+                s3.shutdown();
+            }
+        }
+    }
+
+    public void uploadAwsWithHeaders(String filePath, String key1,Map<String,String> headers){
+        try{
+            uploadS3File(filePath, key1);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * s3上传文件
+     * @param filePath
+     * @param key1
+     * @throws IOException
+     */
+    private void uploadS3File(String filePath, String key1) throws Exception {
+        /**
+         * 创建s3对象
+         */
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try{
+            File file = new File(filePath);
+            if(!file.exists()){
+                log.info("要上传s3的文件不存在");
+                return;
+            }
+
+            // 设置文件并设置公读
+            com.amazonaws.services.s3.model.ObjectMetadata metadata = new com.amazonaws.services.s3.model.ObjectMetadata();
+            if(filePath.contains(".jpg")){
+                metadata.setContentType("image/jpeg");
+            }
+            if(filePath.contains(".png")){
+                metadata.setContentType("image/png");
+            }
+//            PutObjectRequest request = new PutObjectRequest(s3bucket, key1, file);
+            PutObjectRequest request = new PutObjectRequest(bucket, key1, file);
+            request.withCannedAcl(CannedAccessControlList.PublicRead);
+            request.withMetadata(metadata);
+
+            // 上传文件
+            com.amazonaws.services.s3.model.PutObjectResult putObjectResult = s3.putObject(request);
+            if (StringUtils.isNotEmpty(putObjectResult.getETag())) {
+                log.info("s3上传文件成功:" + key1);
+            }
+        }catch (Exception e){
+            throw e;
+        }finally {
+            s3.shutdown();
+        }
+
+    }
+
+    private void deleteAwsFile(String prefix){
+
+        int maxKeys = 200;
+        String nextMaker = null;
+        BasicAWSCredentials awsCreds = new BasicAWSCredentials(s3key, s3secrecy);
+        AmazonS3 s3 = AmazonS3ClientBuilder.standard()
+                .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
+                .withRegion(Regions.EU_WEST_2)
+                .build();
+        try {
+            com.amazonaws.services.s3.model.ListObjectsRequest listObjectsRequest = new com.amazonaws.services.s3.model.ListObjectsRequest();
+            listObjectsRequest.setBucketName(this.bucket);
+            listObjectsRequest.setPrefix(prefix);
+            listObjectsRequest.setMaxKeys(maxKeys);
+
+            com.amazonaws.services.s3.model.ObjectListing objectListing;
+            do{
+                listObjectsRequest.setMarker(nextMaker);
+                objectListing = s3.listObjects(listObjectsRequest);
+                List<S3ObjectSummary> objectSummaries = objectListing.getObjectSummaries();
+                List<DeleteObjectsRequest.KeyVersion> keys =objectSummaries.stream().map(summary->new DeleteObjectsRequest.KeyVersion(summary.getKey())).collect(Collectors.toList());
+
+                com.amazonaws.services.s3.model.DeleteObjectsRequest multiObjectDeleteRequest =
+                        new com.amazonaws.services.s3.model.DeleteObjectsRequest(this.bucket)
+                                .withKeys(keys)
+                                .withQuiet(false);
+                com.amazonaws.services.s3.model.DeleteObjectsResult delObjRes = s3.deleteObjects(multiObjectDeleteRequest);
+                int successfulDeletes = delObjRes.getDeletedObjects().size();
+                log.info("删除aws文件成功,删除文件数;{}", successfulDeletes);
+                nextMaker = objectListing.getNextMarker();
+            }while (objectListing.isTruncated());
+        }catch (Exception e){
+            log.error("删除was文件失败,path="+prefix, e);
+        }finally {
+            if(s3 != null){
+                s3.shutdown();
+            }
+        }
+    }
+
+
+
+}

文件差异内容过多而无法显示
+ 1254 - 0
720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/FileAndOssUtil.java


+ 10 - 50
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/FileUtils.java

@@ -1,13 +1,12 @@
-package com.gis.common.util;
+package com.gis.oss.util;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.img.Img;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.URLUtil;
 import com.gis.common.constant.ConfigConstant;
-import lombok.extern.log4j.Log4j2;
+import com.gis.common.util.ImageUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
@@ -35,7 +34,7 @@ public class FileUtils {
 
 
     @Autowired
-    AliyunOssUtil aliyunOssUtil;
+    FileAndOssUtil fileAndOssUtil;
 
     @Autowired
     ConfigConstant configConstant;
@@ -214,7 +213,7 @@ public class FileUtils {
 
         // 上传oss
         String ossPath = ossBasePath + dirType + newName;
-        aliyunOssUtil.upload(savePath, ossPath);
+        fileAndOssUtil.upload(savePath, ossPath);
 
         String ossUrl = ossDomain + ossPath + "?d=" + System.currentTimeMillis();
         log.info("ossUrl: {}", ossUrl);
@@ -261,7 +260,7 @@ public class FileUtils {
         // 上传oss
         String ossPath = ossBasePath + dirType + newName;
         try {
-            aliyunOssUtil.upload(file.getBytes(), ossPath);
+            fileAndOssUtil.upload(file.getBytes(), ossPath);
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -274,46 +273,7 @@ public class FileUtils {
     }
 
 
-    public Object renameUploadOssByeByType(MultipartFile file, String ossBasePath, String ossDomain, String type)  {
 
-        if (file == null) {
-            log.error("文件不能为空");
-            return null;
-        }
-
-        long size = file.getSize();
-        log.info("文件大小:" + size );
-        log.info("文件大小:" + (size/1000) + "kb");
-
-
-        String time = DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS");
-
-        String fileName = file.getOriginalFilename();
-        log.info("上传的文件名:" + fileName);
-
-        String fileType = getFileType(fileName);
-        String dirType = "image/";
-        if (fileType.equals("doc")) {
-            dirType = "doc/";
-        }
-
-        String suffix = StringUtils.substringAfterLast(fileName, ".");
-        String newName = time  + "."  +suffix;
-
-        // 上传oss
-        String ossPath = ossBasePath + dirType + newName;
-        try {
-            aliyunOssUtil.upload(file.getBytes(), ossPath, type);
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-        String ossUrl = ossDomain + ossPath;
-        log.info("ossUrl: {}", ossUrl);
-
-        return ossUrl;
-
-    }
 
 
     /**
@@ -353,7 +313,7 @@ public class FileUtils {
             ossPath = ossBasePath + newName;
         }
         try {
-            aliyunOssUtil.upload(file.getBytes(), ossPath);
+            fileAndOssUtil.upload(file.getBytes(), ossPath);
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -414,7 +374,7 @@ public class FileUtils {
         // 上传oss
         String ossPath = ossBasePath + dirType + newName;
 //        AliyunOssUtil.upload(savePath, ossPath);
-        aliyunOssUtil.upload(savePath, ossPath);
+        fileAndOssUtil.upload(savePath, ossPath);
         String ossUrl = ossDomain + ossPath;
         log.info("ossUrl: {}", ossUrl);
         result.put("ossUrl", ossUrl);
@@ -454,7 +414,7 @@ public class FileUtils {
                 // 上传oss
                 String ossPath = ossBasePath + imgName;
                 log.info("ossPath: " + ossPath);
-                aliyunOssUtil.upload(saveCompressImgPath, ossPath);
+                fileAndOssUtil.upload(saveCompressImgPath, ossPath);
                 ossUrl = ossDomain + ossPath;
                 log.info("图片上传成功: " + ossUrl);
             } else {
@@ -490,7 +450,7 @@ public class FileUtils {
                 // 上传oss
                 String ossPath = ossBasePath + fileName;
                 log.info("ossPath: " + ossPath);
-                aliyunOssUtil.upload(saveCompressImgPath, ossPath);
+                fileAndOssUtil.upload(saveCompressImgPath, ossPath);
                 ossUrl = ossDomain + ossPath;
                 log.info("图片上传成功: " + ossUrl);
             } else {
@@ -768,7 +728,7 @@ public class FileUtils {
             // 上传oss
             String ossPath = ossBasePath + imgName;
             log.info("ossPath: " + ossPath);
-            aliyunOssUtil.upload(saveCompressImgPath, ossPath);
+            fileAndOssUtil.upload(saveCompressImgPath, ossPath);
             ossUrl = ossDomain + ossPath;
             log.info("图片上传成功: " + ossUrl);
         } else {

+ 177 - 0
720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/QiNiuOssUtil.java

@@ -0,0 +1,177 @@
+package com.gis.oss.util;
+
+import com.gis.common.exception.BaseRuntimeException;
+import com.qiniu.common.QiniuException;
+import com.qiniu.http.Response;
+import com.qiniu.storage.BucketManager;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.Region;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.storage.model.FileInfo;
+import com.qiniu.util.Auth;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+
+import java.util.Map;
+
+/**
+ * 七牛云oss上传工具
+ */
+@Slf4j
+public class QiNiuOssUtil {
+
+    private static String ACCESS_KEY = "dlPPwgZky_F-iP8CbSbJpiAtAcqw3BYwb9rdHMrS";
+    private static String SECRET_KEY = "YEtkLKDsImXB-8m1CT1zV_YwCwwGvrUvo2ktj9KZ";
+
+    // 大场景 super 华南区域
+    private static String bucketName = "super";
+
+
+    //构造一个带指定 Region 对象的配置类, Region.region2(): 华南区域
+//    private static Configuration cfg = new Configuration(Region.region2());
+//    private static Configuration cfg = new Configuration(Zone.autoZone());
+    private static Configuration cfg = new Configuration(Region.huanan());
+
+    // 华北
+//    private static String bucketName = "model3d";
+//    private static Configuration cfg = new Configuration(Zone.autoZone());
+
+    //...其他参数参考类注释
+    private static UploadManager uploadManager = new UploadManager(cfg);
+
+    private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
+//    private static  String upToken = auth.uploadToken(bucketName);
+
+
+
+    /**
+     * localFilePath: 本地文件路径
+     * ossFilePath: ossw文件存放路径, 注意前面不要用"/" ,data/aa.jpg
+     */
+    public static void upload(String localFilePath, String ossFilePath) throws QiniuException {
+        // 覆盖需要把ossKey放到uploadToken里
+        String upToken = auth.uploadToken(bucketName, ossFilePath);
+        Response response = uploadManager.put(localFilePath, ossFilePath, upToken);
+        if (response.statusCode!=200){
+            String errorMsg = response.toString();
+            log.error("七牛云响应值:{}", errorMsg);
+            BaseRuntimeException.isTrue(true, null, "七牛云返回上传失败: " + errorMsg);
+        }
+    }
+
+
+    public static void main(String[] args) throws QiniuException {
+        String localFilePath = "F:\\test\\ngin\\11.txt";
+        String ossFilePath = "data/owen/11.txt";
+        upload(localFilePath, ossFilePath);
+        System.out.println("11111");
+
+//        getInfo(ossFilePath);
+    }
+
+
+    /**
+     * 批量上传
+     * key: localFilePath
+     * value: ossFilePath
+     */
+    public static void uploads(Map<String, String> param) {
+        log.info("开始批量上传到七牛云");
+        String upToken = auth.uploadToken(bucketName);
+        param.forEach((key, val)->{
+            try {
+                uploadManager.put(key, val, upToken);
+            } catch (QiniuException e) {
+                e.printStackTrace();
+            }
+        });
+        log.info("完成批量上传到七牛云");
+    }
+
+
+
+    /**
+     * by owen 2022-5-13
+     * @param key :文件路径
+     * 第一级目录不能带/ 例如: owen/aa.jpg
+     * 不支持删除目录, 删除目录使用脚本
+     */
+    public static void delete(String key){
+        BucketManager bucketManager = new BucketManager(auth, cfg);
+        try {
+            bucketManager.delete(bucketName, key);
+        } catch (QiniuException ex) {
+            //如果遇到异常,说明删除失败
+            log.error(ex.response.toString());
+        }
+    }
+
+
+
+
+    @Test
+    public void testDelete(){
+        delete("owen/a");
+    }
+
+
+    /**
+     * 获取文件信息
+     * @param key
+     */
+    public static void getInfo(String key){
+
+        BucketManager bucketManager = new BucketManager(auth, cfg);
+        try {
+            FileInfo fileInfo = bucketManager.stat(bucketName, key);
+            System.out.println(fileInfo.hash);
+            System.out.println(fileInfo.fsize);
+            System.out.println(fileInfo.mimeType);
+            System.out.println(fileInfo.putTime);
+        } catch (QiniuException ex) {
+            System.err.println(ex.response.toString());
+        }
+    }
+
+
+//    /**
+//     * 测试demo
+//     */
+//    @Test
+//    public void test() {
+//        //构造一个带指定 Region 对象的配置类
+//        Configuration cfg = new Configuration();
+//        //...其他参数参考类注释
+//
+//        UploadManager uploadManager = new UploadManager(cfg);
+//        //...生成上传凭证,然后准备上传
+//
+//        //如果是Windows情况下,格式是 D:\\qiniu\\test.png
+//        String localFilePath = "F:\\test\\22.jpg";
+//        //默认不指定key的情况下,以文件内容的hash值作为文件名
+//        Date date = new Date();
+//        String key = "data_" + date + ".jpg";
+//
+//        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
+//        String upToken = auth.uploadToken(bucketName);
+//
+//        try {
+//            Response response = uploadManager.put(localFilePath, key, upToken);
+//            //解析上传成功的结果
+//            DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
+//            System.out.println(response.bodyString());
+//            System.out.println(putRet.key);
+//            System.out.println(putRet.hash);
+//        } catch (QiniuException ex) {
+//            Response r = ex.response;
+//            System.err.println(r.toString());
+//            try {
+//                System.err.println(r.bodyString());
+//            } catch (QiniuException ex2) {
+//                //ignore
+//            }
+//        }
+//
+//    }
+
+}

+ 7 - 17
720yun_fd_manage/gis_common/src/main/java/com/gis/common/util/QrCodeUtils.java

@@ -1,10 +1,10 @@
-package com.gis.common.util;
+package com.gis.oss.util;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
 import cn.hutool.extra.qrcode.QrConfig;
-import lombok.extern.log4j.Log4j2;
+import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -18,11 +18,12 @@ import java.util.Date;
  * 二维码
  */
 @Component
-@Log4j2
+@Slf4j
 public class QrCodeUtils {
 
     @Autowired
-    AliyunOssUtil aliyunOssUtil;
+    FileAndOssUtil fileAndOssUtil;
+
 
     @Test
     public void test(){
@@ -57,8 +58,6 @@ public class QrCodeUtils {
      */
     public String generateLogoQrCode(String url, String serverBasePath, String ossBasePath, String ossDomain, String id){
         // 保存地址
-//        String time = DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS") + ".jpg";
-//        String dirType = "qrCode/";
         String savePath = serverBasePath + id;
 
         String logoPath = serverBasePath + "img/kankan_icon.png";
@@ -80,12 +79,11 @@ public class QrCodeUtils {
 
         // 二维码上传oss
         String ossPath = ossBasePath + id + "/qrCode.jpg";
-        aliyunOssUtil.upload(savePath, ossPath);
+        fileAndOssUtil.upload(savePath, ossPath);
         String ossUrl = ossDomain + ossPath;
         log.info("ossUrl: {}", ossUrl);
 
         // 删除服务器临时文件
-//        FileUtil.del(savePath);
 
         return ossUrl;
     }
@@ -106,14 +104,6 @@ public class QrCodeUtils {
 
         String savePath = serverBasePath + id;
 
-//        String logoPath = serverBasePath + "img/kankan_icon.png";
-//        if (!FileUtil.isFile(logoPath)) {
-//            InputStream resource = FileUtils.getResource("img/kankan_icon.png");
-//            FileUtil.writeFromStream(resource, logoPath);
-//            log.info("logo写入完成");
-//        }
-//        log.info("logoPath: {}", logoPath);
-
         // 创建目录
         if (!FileUtil.isDirectory(savePath)) {
             FileUtil.mkdir(savePath);
@@ -125,7 +115,7 @@ public class QrCodeUtils {
 
         // 二维码上传oss
         String ossPath = ossBasePath + id + "/qrCode.jpg";
-        aliyunOssUtil.upload(savePath, ossPath);
+        fileAndOssUtil.upload(savePath, ossPath);
         String ossUrl = ossDomain + ossPath;
         log.info("ossUrl: {}", ossUrl);
 

文件差异内容过多而无法显示
+ 1244 - 0
720yun_fd_manage/gis_oss/src/main/java/com/gis/oss/util/UploadToOssUtil.java


+ 5 - 0
720yun_fd_manage/gis_service/pom.xml

@@ -17,6 +17,11 @@
             <groupId>com.gis</groupId>
             <artifactId>gis_mapper</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.gis</groupId>
+            <artifactId>gis_oss</artifactId>
+        </dependency>
     </dependencies>
 
 

+ 0 - 54
720yun_fd_manage/gis_service/src/main/java/com/gis/service/SceneService.java

@@ -1,54 +0,0 @@
-package com.gis.service;
-
-
-import com.gis.common.util.Result;
-import com.gis.domain.dto.*;
-import com.gis.domain.entity.SceneEntity;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:14
- */
-public interface SceneService extends IBaseService<SceneEntity, Long> {
-
-
-
-
-    Result upload(MultipartFile file);
-
-    Result editXml(XmlDataDto param);
-
-    List<SceneEntity> findBySceneCode(String sceneCode);
-
-    Result editSomeData(EditSomeDataDto param);
-
-
-
-    Result setSort(Map<String, String> param);
-
-
-    List<SceneEntity> findByCatalogId(Long catalogId);
-
-    Result select4dkk(PageDto param, String workId);
-
-
-
-
-    SceneEntity findByIdForUpdate(Long id);
-
-
-
-
-    List<String> strFindByWorkId(String workId, String type);
-
-    Result saveUseHots(UseHotsDto param);
-
-    List<SceneEntity> findByWorkId(String workId);
-
-
-    Result editEntity(BaseDto param);
-}

+ 3 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/TestService.java

@@ -2,6 +2,7 @@ package com.gis.service;
 
 
 import com.gis.common.util.Result;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -17,4 +18,6 @@ public interface TestService  {
     Result updatePanoTourXml(String all);
 
     Result updateDbFodderTourXml(String isAll);
+
+    Result awsUpload(MultipartFile file);
 }

+ 8 - 7
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/FodderServiceImpl.java

@@ -15,8 +15,9 @@ import com.gis.domain.entity.FodderEntity;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.mapper.FodderMapper;
 import com.gis.mapper.IBaseMapper;
+import com.gis.oss.util.FileAndOssUtil;
+import com.gis.oss.util.FileUtils;
 import com.gis.service.FodderService;
-import com.gis.service.SceneService;
 import com.gis.service.WorkService;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
@@ -44,8 +45,6 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
     @Autowired
     private FodderMapper entityMapper;
 
-    @Autowired
-    SceneService sceneService;
 
     @Autowired
     RabbitTemplate rabbitTemplate;
@@ -60,10 +59,10 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
     FileUtils fileUtils;
 
     @Autowired
-    AliyunOssUtil aliyunOssUtil;
+    WorkService workService;
 
     @Autowired
-    WorkService workService;
+    FileAndOssUtil fileAndOssUtil;
 
     // 用户最大空间3G
     static int MAX_SIZE = 1024 * 1024 * 3;
@@ -182,7 +181,8 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
 
                 }
                 // 普通素材直接上传oss, 服务器不保留文件
-                aliyunOssUtil.upload(file.getBytes(), ossPath);
+//                aliyunOssUtil.upload(file.getBytes(), ossPath);
+                fileAndOssUtil.upload(file.getBytes(), ossPath);
 
 
             }
@@ -256,7 +256,8 @@ public class FodderServiceImpl extends IBaseServiceImpl<FodderEntity, Long> impl
             // 上传oss
             String ossPath = ossBasePath + imgName;
             log.info("ossPath: " + ossPath);
-            aliyunOssUtil.upload(saveCompressImgPath, ossPath);
+//            aliyunOssUtil.upload(saveCompressImgPath, ossPath);
+            fileAndOssUtil.upload(serverBasePath, ossPath);
             ossUrl = ossDomain + ossPath;
             log.info("图片上传成功: " + ossUrl);
         } else {

+ 0 - 290
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/SceneServiceImpl.java

@@ -1,290 +0,0 @@
-package com.gis.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.gis.common.constant.ConfigConstant;
-import com.gis.common.constant.ErrorEnum;
-import com.gis.common.util.*;
-import com.gis.domain.dto.*;
-import com.gis.domain.entity.SceneEntity;
-import com.gis.domain.vo.ProSceneVo;
-import com.gis.mapper.IBaseMapper;
-import com.gis.mapper.SceneMapper;
-import com.gis.service.SceneService;
-import com.gis.service.WorkService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.http.HttpResponse;
-import org.apache.http.util.EntityUtils;
-import org.junit.Test;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.*;
-
-
-/**
- * Created by owen on 2020/3/11 0011 16:16
- */
-@Slf4j
-@Service
-public class SceneServiceImpl extends IBaseServiceImpl<SceneEntity, Long> implements SceneService {
-
-    @Autowired
-    private SceneMapper entityMapper;
-
-    @Autowired
-    WorkService workService;
-
-
-
-    @Autowired
-    ConfigConstant configConstant;
-
-    @Autowired
-    FileUtils fileUtils;
-
-    @Override
-    public IBaseMapper<SceneEntity, Long> getBaseMapper() {
-        return this.entityMapper;
-    }
-
-    @Override
-    public List<SceneEntity> findByCatalogId(Long catalogId) {
-        return entityMapper.findByCatalogId(catalogId);
-    }
-
-    @Override
-    public Result select4dkk(PageDto param, String workId) {
-        startPage(param);
-
-        // String url = "https://test.4dkankan.com/api/user/scene/list";
-        String url = configConstant.domain4dKK + "/api/user/scene/list";
-        JSONObject reqParam = new JSONObject();
-        reqParam.put("pageNum", param.getPageNum().toString());
-        reqParam.put("pageSize", param.getPageSize().toString());
-        reqParam.put("searchKey", param.getSearchKey());
-        // type=11, 计算成功的场景
-        reqParam.put("type", "11");
-
-        HashMap<String, String> headers = new HashMap<>();
-        String token = getToken();
-        if (StringUtils.isBlank(token)) {
-            return Result.failure("token无空");
-        }
-        headers.put("token", token);
-        String restResult = null;
-        JSONObject reJson = null;
-        try {
-            HttpResponse httpResponse = HttpUtils.doPost(url, headers, reqParam);
-            restResult = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
-            log.debug("四维看看返回值: " + restResult);
-
-
-            reJson = JSONObject.parseObject(restResult);
-            int code = reJson.getInteger("code");
-            log.info("resultCode: {}", code);
-
-            if (code == 3004) {
-                String msg = reJson.getString("msg");
-                log.info("获取四维看看列表失败,{}", msg);
-//                return Result.failure(5001, msg);
-                return Result.failure(ErrorEnum.FAILURE_API_3201.code(), msg);
-            }
-
-            if (code != 0) {
-                String msg = reJson.getString("msg");
-                log.info("获取四维看看列表失败,{}", msg);
-                return Result.failure(ErrorEnum.FAILURE_API_3201.code(),msg);
-            }
-
-            JSONObject dataJson = reJson.getJSONObject("data");
-            JSONArray list = dataJson.getJSONArray("list");
-
-
-            // 作品场景查重
-            List<String> useScenes = this.strFindByWorkId(workId, "4dkk");
-
-            List<ProSceneVo> result = new ArrayList<>();
-            if (list.size() > 0) {
-                for (Object entity : list) {
-                    JSONObject proJson = JSONObject.parseObject(entity.toString());
-                    ProSceneVo pro = new ProSceneVo();
-                    pro.setNum(proJson.getString("num"));
-                    pro.setSceneName(proJson.getString("sceneName"));
-                    pro.setThumb(proJson.getString("thumb"));
-                    pro.setStatus(proJson.getInteger("status"));
-                    pro.setCreateTime(proJson.getString("createTime"));
-
-                    if (useScenes.contains(pro.getNum())) {
-                        pro.setIsUse(1);
-                    }
-                    result.add(pro);
-                }
-            }
-            dataJson.put("list", result);
-
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return Result.success(reJson);
-
-
-    }
-
-
-
-
-    @Override
-    public List<String> strFindByWorkId(String workId, String type) {
-        return entityMapper.strFindByWorkId(workId, type);
-    }
-
-
-    @Override
-    public SceneEntity findByIdForUpdate(Long id) {
-        return entityMapper.findByIdForUpdate(id);
-    }
-
-
-    @Override
-    public Result setSort(Map<String, String> param) {
-        log.info("sort size: " + param.size());
-        int n = 1;
-        for (Map.Entry<String, String> m : param.entrySet()) {
-            String id = m.getKey();
-
-            String sort = m.getValue();
-            log.info("id: " + id);
-            log.info("sort: " + sort);
-            entityMapper.setSortById(id, sort);
-            n++;
-        }
-
-        return Result.success();
-    }
-
-
-    @Override
-    public void startPage(PageDto param) {
-        super.startPage(param);
-    }
-
-
-
-    @Override
-    public Result upload(MultipartFile file) {
-
-        // 检查非法文件上传
-        boolean checkFile = FileUtils.checkFile(file);
-        if (!checkFile) {
-            return Result.failure("上传文件格式有误, 请重新上传");
-        }
-        return Result.success(fileUtils.renameUploadOss(file, configConstant.serverBasePath, configConstant.ossBasePath, configConstant.ossDomain));
-    }
-
-    @Override
-    public Result editXml(XmlDataDto param) {
-        Long id = param.getId();
-        SceneEntity entity = entityMapper.findByIdForUpdate(id);
-        if (entity == null) {
-            log.error("对象不存在,id : " + id);
-            return Result.failure("场景码不存在");
-        }
-
-        // 保存初始视觉
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("hlookat", param.getHlookat());
-        jsonObject.put("vlookat", param.getVlookat());
-
-        entity.setInitVisual(jsonObject.toJSONString());
-        entity.setUpdateTime(new Date());
-        this.update(entity);
-
-        return Result.success();
-    }
-
-
-
-    @Test
-    public void test() {
-        String a = "/home/data/cms_pano_fcb_data/p19/fcb_px2rJW96F/fcb_px2rJW96F.jpg";
-        String s = StringUtils.substringBeforeLast(a, "/");
-        System.out.println(s);
-    }
-
-    @Override
-    public List<SceneEntity> findBySceneCode(String sceneCode) {
-        return entityMapper.findBySceneCode(sceneCode);
-    }
-
-
-    @Override
-    public Result editSomeData(EditSomeDataDto param) {
-        Long id = param.getId();
-        SceneEntity entity = this.findById(id);
-
-        if (entity == null) {
-            log.error("场景不存在, id: " + id);
-            return Result.failure("场景不存在");
-        }
-        BeanUtils.copyProperties(param, entity);
-        entity.setUpdateTime(new Date());
-        this.update(entity);
-        log.info("更新场景完成");
-        return Result.success();
-    }
-
-
-    @Test
-    public void tess() {
-        String a = "/home/data/cms_pano_fcb_data/fcb_pano1348947775971389440/pano.jpg";
-        String s = StringUtils.substringBeforeLast(a, "/");
-        System.out.println(s);
-    }
-
-
-    @Override
-    public Result saveUseHots(UseHotsDto param) {
-        Long id = param.getId();
-        SceneEntity entity = this.findById(id);
-        if (entity == null) {
-            log.info("对象不存在:" + id);
-            return Result.failure("对象不存在");
-
-        }
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("data", param.getSceneCodes());
-        entity.setUseHots(jsonObject.toJSONString());
-        entity.setUpdateTime(new Date());
-        this.update(entity);
-        return Result.success();
-    }
-
-    @Override
-    public List<SceneEntity> findByWorkId(String workId) {
-        return entityMapper.findByWorkId(workId);
-    }
-
-
-    @Override
-    public Result editEntity(BaseDto param) {
-        Long id = param.getId();
-        SceneEntity entity = findById(id);
-        if (entity == null) {
-            log.error("对象不存在: " + id);
-            Result.failure("对象不存在");
-        }
-
-        entity.setSceneTitle(param.getName());
-        entity.setUpdateTime(new Date());
-        this.update(entity);
-
-        return Result.success();
-    }
-
-
-}

+ 25 - 3
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/TestServiceImpl.java

@@ -9,11 +9,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.ErrorEnum;
 import com.gis.common.exception.BaseRuntimeException;
-import com.gis.common.util.AliyunOssUtil;
-import com.gis.common.util.FileUtils;
 import com.gis.common.util.Result;
 import com.gis.domain.entity.FodderEntity;
 import com.gis.domain.entity.WorkEntity;
+import com.gis.oss.util.AliYunOssUtil;
+import com.gis.oss.util.FileAndOssUtil;
+import com.gis.oss.util.FileUtils;
 import com.gis.service.FodderService;
 import com.gis.service.TestService;
 import com.gis.service.WorkService;
@@ -23,8 +24,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.*;
 
 
@@ -46,7 +49,7 @@ public class TestServiceImpl implements TestService {
     FileUtils fileUtils;
 
     @Autowired
-    AliyunOssUtil aliyunOssUtil;
+    AliYunOssUtil aliyunOssUtil;
 
     @Autowired
     WorkService workService;
@@ -54,6 +57,9 @@ public class TestServiceImpl implements TestService {
     @Autowired
     FodderService fodderService;
 
+    @Autowired
+    FileAndOssUtil fileAndOssUtil;
+
 
 
 
@@ -166,6 +172,22 @@ public class TestServiceImpl implements TestService {
         return Result.success("共更新了:" + i);
     }
 
+    @Override
+    public Result awsUpload(MultipartFile file) {
+
+
+        try {
+            String ossPath = "test_2/" + file.getOriginalFilename();
+            log.info("aws保存地址: {}", ossPath);
+            fileAndOssUtil.upload(file.getBytes(), ossPath);
+            Object domain = "testeurs3.4dkankan.com/" + ossPath;
+            return Result.success(domain);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return Result.success();
+    }
+
 
     /**
      * 2022-10-21

+ 13 - 14
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -16,8 +16,10 @@ import com.gis.domain.dto.WorkDto;
 import com.gis.domain.entity.FodderEntity;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.mapper.*;
+import com.gis.oss.util.FileAndOssUtil;
+import com.gis.oss.util.FileUtils;
+import com.gis.oss.util.QrCodeUtils;
 import com.gis.service.FodderService;
-import com.gis.service.SceneService;
 import com.gis.service.WorkService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -59,15 +61,6 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
 
 
     @Autowired
-    SceneMapper sceneMapper;
-
-    @Autowired
-    SceneService sceneService;
-
-    @Autowired
-    AliyunOssUtil aliyunOssUtil;
-
-    @Autowired
     FileUtils fileUtils;
 
     @Autowired
@@ -76,6 +69,9 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
     @Autowired
     FodderService fodderService;
 
+    @Autowired
+    FileAndOssUtil fileAndOssUtil;
+
 
 
 
@@ -166,7 +162,9 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         String ossKeyPath = configConstant.ossBasePath + id + "/someData.json";
 
         try {
-            aliyunOssUtil.upload(jsonObject.toJSONString().getBytes(), ossKeyPath);
+//            aliyunOssUtil.upload(jsonObject.toJSONString().getBytes(), ossKeyPath);
+            fileAndOssUtil.upload(jsonObject.toJSONString().getBytes(), ossKeyPath);
+
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -340,7 +338,8 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         BaseRuntimeException.isTrue(!FileUtil.isFile(tourPath), ErrorEnum.FAILURE_CODE_3103.code(), "服务器tour.xml文件不存在");
 
         String ossKeyPath = configConstant.ossBasePath + id + "/tour.xml";
-        aliyunOssUtil.upload(tourPath, ossKeyPath);
+//        aliyunOssUtil.upload(tourPath, ossKeyPath);
+        fileAndOssUtil.upload(tourPath, ossKeyPath);
         log.info("tour.xml上传完成 : {}", ossKeyPath);
         DateUtils.spendTime(startTime, "tour上传oss");
     }
@@ -473,7 +472,8 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         }
         DateUtils.spendTime(startTime, "someData写入服务器");
         String ossKeyPath = configConstant.ossBasePath + baseSomeDataPath;
-        aliyunOssUtil.upload(saveSomeDataPath, ossKeyPath);
+//        aliyunOssUtil.upload(saveSomeDataPath, ossKeyPath);
+        fileAndOssUtil.upload(saveSomeDataPath, ossKeyPath);
         log.info("someData.json 上传完成 : {}", ossKeyPath);
         String ossUrl = configConstant.ossDomain + ossKeyPath;
         log.info("ossUrl: {}", ossUrl);
@@ -519,7 +519,6 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
             if (code == 3004) {
                 String msg = reJson.getString("msg");
                 log.info("获取四维看看列表失败,{}", msg);
-//                return Result.failure(5001, msg);
                 return Result.failure(ErrorEnum.FAILURE_API_3201.code(), msg);
             }
 

+ 0 - 50
720yun_fd_manage/gis_service/src/main/java/com/gis/tree/CatalogTree.java

@@ -1,50 +0,0 @@
-//package com.gis.tree;
-//
-//import com.alibaba.fastjson.annotation.JSONField;
-//import com.gis.domain.entity.SceneEntity;
-//import com.gis.domain.vo.CatalogSceneVo;
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.Data;
-//
-//import java.io.Serializable;
-//import java.util.ArrayList;
-//import java.util.List;
-//
-//@Data
-//public class CatalogTree implements Serializable {
-//
-//
-//    private static final long serialVersionUID = 5299557851133375944L;
-//    private Long id;
-//
-//    @ApiModelProperty(value = "名称")
-//    private String name;
-//
-//    @JSONField(serialize = false)
-//    @ApiModelProperty(value = "创建人")
-//    private String userId;
-//
-//    @ApiModelProperty(value = "排序(序号小排前面)")
-//    private Integer sort;
-//
-//    @JSONField(serialize = false)
-//    @ApiModelProperty(value = "目录层级,最大二级")
-//    private Integer level;
-//
-//    @ApiModelProperty(value = "父目录Id")
-//    private Long parentId;
-//
-//
-//    /** 默认给空数组*/
-//
-//    private List<CatalogTree> children = new ArrayList<>();
-//
-//    /** 场景实体*/
-////    private List<SceneEntity> scenes;
-//    @JSONField(serialize = false)
-//    private List<CatalogSceneVo> scenes;
-//
-//
-////    @JSONField(serialize = false)
-////    private boolean checked = false;
-//}

+ 0 - 130
720yun_fd_manage/gis_service/src/main/java/com/gis/tree/CatalogTreeUtil.java

@@ -1,130 +0,0 @@
-package com.gis.tree;
-
-
-import com.gis.domain.entity.CatalogEntity;
-import com.gis.domain.tree.CatalogTree;
-import com.gis.domain.vo.CatalogSceneVo;
-import com.gis.mapper.SceneMapper;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class CatalogTreeUtil {
-
-    private List<CatalogTree> resultNodes = new ArrayList<>();//树形结构排序之后list内容
-
-    private List<CatalogTree> nodes = new ArrayList<>();
-
-    public CatalogTreeUtil() {
-    }
-
-
-    public CatalogTreeUtil(List<CatalogEntity> nodesList) {//通过构造函数初始化
-        for (CatalogEntity n : nodesList) {
-            CatalogTree tree = new CatalogTree();
-            Long id = n.getId();
-            tree.setId(id);
-            tree.setName(n.getName());
-//            List<SceneEntity> sceneList = sceneMapper.findByCatalogId(id);
-//            List<CatalogSceneVo> sceneList = sceneMapper.findVoByCatalogId(id);
-
-//            tree.setScenes(sceneList);
-
-            if (n.getParentId() != null) {
-                tree.setParentId(n.getParentId());
-            }
-            nodes.add(tree);
-        }
-    }
-
-    //传入list参数
-    public CatalogTreeUtil(List<CatalogEntity> nodesList, SceneMapper sceneMapper) {//通过构造函数初始化
-        for (CatalogEntity n : nodesList) {
-            CatalogTree tree = new CatalogTree();
-            Long id = n.getId();
-            tree.setId(id);
-            tree.setName(n.getName());
-//            List<SceneEntity> sceneList = sceneMapper.findByCatalogId(id);
-            List<CatalogSceneVo> sceneList = sceneMapper.findVoByCatalogId(id);
-
-            tree.setScenes(sceneList);
-
-            if (n.getParentId() != null) {
-                tree.setParentId(n.getParentId());
-            }
-            nodes.add(tree);
-        }
-    }
-
-
-    /**
-     * @param node
-     * @return 返回
-     */
-    private List<CatalogTree> getChildren(CatalogTree node) {
-        List<CatalogTree> children = new ArrayList<>();
-        Long id = node.getId();
-        for (CatalogTree child : nodes) {
-            if (id.equals(child.getParentId())) {//如果id等于父id
-                children.add(child);//将该节点加入循环列表中
-            }
-        }
-        return children;
-    }
-
-
-
-    /**
-     * 构建树形结构list
-     *
-     * @return 返回树形结构List列表
-     */
-    public List<CatalogTree> buildTree() {
-        for (CatalogTree node : nodes) {
-            Long id = node.getParentId();
-            if (id == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
-                resultNodes.add(node);//添加一级节点
-                build(node, node.getLevel());//递归获取二级、三级、。。。节点
-            }
-        }
-        return resultNodes;
-    }
-
-    /**
-     * 递归循环子节点
-     *
-     * @param node 当前节点
-     */
-    private void build(CatalogTree node, Integer level) {
-        List<CatalogTree> children = getChildren(node);
-        if (!children.isEmpty()) {//如果存在子节点
-            node.setChildren(children);
-//        	level++;
-            for (CatalogTree child : children) {//将子节点遍历加入返回值中
-//        		child.setLevel(level);
-                build(child, child.getLevel());
-            }
-        }
-    }
-
-
-
-    public List<CatalogTree> buildTree(List<CatalogEntity> all, List<CatalogEntity> in) {
-        for (CatalogEntity n : all) {
-            CatalogTree tree = new CatalogTree();
-            tree.setId(n.getId());
-            tree.setName(n.getName());
-            for (CatalogEntity nin : in) {
-                if (nin.getId().equals(n.getId())) {
-//                    tree.setChecked(true);
-                }
-            }
-            if (n.getParentId() != null) {
-                tree.setParentId(n.getParentId());
-            }
-            nodes.add(tree);
-        }
-        return buildTree();
-    }
-
-}

+ 0 - 77
720yun_fd_manage/gis_service/src/main/java/com/gis/tree/SceneTree.java

@@ -1,77 +0,0 @@
-package com.gis.tree;
-
-import com.alibaba.fastjson.annotation.JSONField;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
-
-@Data
-public class SceneTree implements Serializable {
-
-    private static final long serialVersionUID = -8093446477843493946L;
-
-    private String id;
-
-    @ApiModelProperty(value = "场景码")
-    private String sceneCode;
-
-    @ApiModelProperty(value = "存放地址")
-    private String path;
-
-    @ApiModelProperty(value = "场景名称")
-    private String sceneTitle;
-
-    @ApiModelProperty(value = "场景url")
-    private String webSite;
-
-    @ApiModelProperty(value = "简介")
-    private String description;
-
-    @ApiModelProperty(value = "oss存放地址")
-    private String ossPath;
-
-    @ApiModelProperty(value = "封面图")
-    private String icon;
-
-    @ApiModelProperty(value = "文件名")
-    private String fileName;
-
-    @ApiModelProperty(value = "someData")
-    private String someData;
-
-    @ApiModelProperty(value = "初始场景,0:否, 1:是(排第一)")
-    private Integer isIndex;
-
-    @ApiModelProperty(value = "排序(序号小排前面)")
-    private Integer sort;
-
-    @ApiModelProperty(value =  "初始视觉")
-    private String initVisual;
-
-    @ApiModelProperty(value = "访问量")
-    private Integer visit;
-
-    @ApiModelProperty(value = "是否添加到720, 0:否, 1:是")
-    private Integer isShow;
-
-    @ApiModelProperty(value = "父目录Id")
-    private String parentId;
-
-    @ApiModelProperty(value = "分组Id")
-    private String catalogId;
-
-    @ApiModelProperty(value = "类型")
-    private String type;
-
-    private List<SceneTree> children;
-
-
-    @JSONField(serialize = false)
-    @ApiModelProperty(value = "目录层级,最大二级")
-    private Integer level;
-
-//    @JSONField(serialize = false)
-//    private boolean checked = false;
-}

+ 0 - 93
720yun_fd_manage/gis_service/src/main/java/com/gis/tree/SceneTreeUtil.java

@@ -1,93 +0,0 @@
-package com.gis.tree;
-
-
-import com.gis.domain.vo.CatalogSceneTree;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class SceneTreeUtil {
-
-    private List<CatalogSceneTree> resultNodes = new ArrayList<>();//树形结构排序之后list内容
-
-    private List<CatalogSceneTree> nodes = new ArrayList<>();
-
-    public SceneTreeUtil() {
-    }
-
-    //传入list参数
-
-    public SceneTreeUtil(List<CatalogSceneTree> nodesList) {//通过构造函数初始化
-        for (CatalogSceneTree n : nodesList) {
-            CatalogSceneTree tree = new CatalogSceneTree();
-            tree.setId(n.getId());
-            tree.setName(n.getName());
-            tree.setWorkId(n.getWorkId());
-            tree.setSceneTitle(n.getSceneTitle());
-            tree.setSceneCode(n.getSceneCode());
-            tree.setCatalogId(n.getCatalogId());
-
-
-            if (n.getParentId() != null) {
-                tree.setParentId(n.getParentId());
-            }
-            nodes.add(tree);
-        }
-    }
-
-
-    /**
-     * @param node
-     * @return 返回
-     */
-    private List<CatalogSceneTree> getChildren(CatalogSceneTree node) {
-        List<CatalogSceneTree> children = new ArrayList<>();
-        Long id = node.getId();
-        for (CatalogSceneTree child : nodes) {
-            if (id.equals(child.getParentId())) {//如果id等于父id
-                children.add(child);//将该节点加入循环列表中
-            }
-        }
-        return children;
-    }
-
-
-
-
-    /**
-     * 构建树形结构list
-     *
-     * @return 返回树形结构List列表
-     */
-    public List<CatalogSceneTree> buildTree() {
-        for (CatalogSceneTree node : nodes) {
-            Long id = node.getParentId();
-            if (id == null) {//通过循环一级节点 就可以通过递归获取二级以下节点
-                resultNodes.add(node);//添加一级节点
-                build(node, node.getLevel());//递归获取二级、三级、。。。节点
-            }
-        }
-        return resultNodes;
-    }
-
-    /**
-     * 递归循环子节点
-     *
-     * @param node 当前节点
-     */
-    private void build(CatalogSceneTree node, Integer level) {
-        List<CatalogSceneTree> children = getChildren(node);
-        if (!children.isEmpty()) {//如果存在子节点
-            node.setChildren(children);
-//        	level++;
-            for (CatalogSceneTree child : children) {//将子节点遍历加入返回值中
-//        		child.getLevel(level);
-                build(child, child.getLevel());
-            }
-        }
-    }
-
-
-
-
-}

+ 0 - 19
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/FodderController.java

@@ -2,31 +2,20 @@ package com.gis.web.controller;
 
 
 import com.gis.common.constant.ErrorEnum;
-import com.gis.common.constant.MsgCode;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.*;
-import com.gis.domain.entity.CatalogEntity;
 import com.gis.domain.entity.FodderEntity;
-import com.gis.domain.entity.SceneEntity;
-import com.gis.domain.entity.WorkEntity;
 import com.gis.service.FodderService;
-import com.gis.service.SceneService;
 import com.gis.service.WorkService;
-import com.gis.web.aop.WebControllerLog;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.log4j.Log4j2;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
 import java.util.Date;
-import java.util.List;
 
 
 /**
@@ -110,14 +99,6 @@ public class FodderController extends BaseController {
     }
 
 
-    /**
-     * 2021-04-13 可能不使用
-     * */
-//    @ApiOperation(value = "选择全景图", position = 1)
-//    @PostMapping("select/pano/{workId}")
-//    public Result selectFodderPano(@RequestBody PageDto param, @PathVariable String workId) {
-//        return fodderService.selectFodderPano(param, workId);
-//    }
 
     @ApiOperation(value = "检查状态", notes = "ids , 多个id用',' 隔开")
     @GetMapping("checkStatus/{ids}")

+ 12 - 17
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/TestController.java

@@ -1,17 +1,11 @@
 package com.gis.web.controller;
 
 import cn.hutool.core.io.FileUtil;
-import com.gis.common.constant.CmdConstant;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.config.RabbitConfig;
-import com.gis.common.exception.BaseRuntimeException;
-import com.gis.common.util.AliyunOssUtil;
-import com.gis.common.util.CmdUtils;
-import com.gis.common.util.FileUtils;
 import com.gis.common.util.Result;
-import com.gis.domain.entity.SceneEntity;
-import com.gis.mapper.SceneMapper;
-import com.gis.service.SceneService;
+import com.gis.oss.util.AliYunOssUtil;
+import com.gis.oss.util.FileUtils;
 import com.gis.service.TestService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -23,22 +17,18 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.List;
-import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 /**
  * Created by owen on 2021/1/14 0014 19:02
  * 这个类header 不能有token, 否则webLogAspect会报错
  */
-@ApiIgnore
+//@ApiIgnore
 @Slf4j
 @Api(tags = "测试")
 @RestController
@@ -55,8 +45,6 @@ public class TestController extends BaseController {
     FileUtils fileUtils;
 
 
-    @Autowired
-    SceneMapper sceneMapper;
 
     @Autowired
     private RedisTemplate<String, String> redisTemplate;
@@ -65,7 +53,7 @@ public class TestController extends BaseController {
     TestService testService;
 
     @Autowired
-    AliyunOssUtil aliyunOssUtil;
+    AliYunOssUtil aliyunOssUtil;
 
 
 
@@ -213,7 +201,7 @@ public class TestController extends BaseController {
     @PostMapping("uploadOssByeByType")
     @ApiOperation(value = "文件上传oss-字节上传设置类型上传")
     public Result uploadOssByeByType(MultipartFile file){
-        return Result.success(fileUtils.renameUploadOssByeByType(file, configConstant.ossBasePath, configConstant.ossDomain, "application/octet-stream"));
+        return Result.success();
     }
 
 
@@ -261,6 +249,13 @@ public class TestController extends BaseController {
     }
 
 
+    @ApiOperation(value = "aws-上传")
+    @PostMapping("/awsUpload")
+    public Result awsUpload(MultipartFile file)  {
+        return testService.awsUpload(file);
+    }
+
+
 
 
 

+ 0 - 4
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WebController.java

@@ -10,7 +10,6 @@ import com.gis.common.util.Result;
 import com.gis.domain.dto.WorkPwdDto;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.service.FodderService;
-import com.gis.service.SceneService;
 import com.gis.service.WorkService;
 import com.github.pagehelper.PageHelper;
 import io.swagger.annotations.Api;
@@ -42,9 +41,6 @@ public class WebController extends BaseController {
     @Autowired
     WorkService workService;
 
-//    @Autowired
-//    SceneService sceneService;
-
     @Autowired
     FodderService fodderService;
 

+ 7 - 16
720yun_fd_manage/pom.xml

@@ -24,6 +24,7 @@
         <module>gis_service</module>
         <module>gis_mapper</module>
         <module>gis_application</module>
+        <module>gis_oss</module>
     </modules>
 
     <properties>
@@ -65,22 +66,6 @@
 
         <dependencies>
 
-            <!-- spring-cloud-->
-            <!--<dependency>-->
-                <!--<groupId>org.springframework.cloud</groupId>-->
-                <!--<artifactId>spring-cloud-dependencies</artifactId>-->
-                <!--<version>Greenwich.SR2</version>-->
-                <!--<type>pom</type>-->
-                <!--<scope>import</scope>-->
-            <!--</dependency>-->
-            <!--<dependency>-->
-                <!--<groupId>org.springframework.cloud</groupId>-->
-                <!--<artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
-                <!--<version>0.9.0.RELEASE</version>-->
-                <!--<type>pom</type>-->
-                <!--<scope>import</scope>-->
-            <!--</dependency>-->
-
 
             <!--模块版本管理-->
 
@@ -120,6 +105,12 @@
                 <version>${gis.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>com.gis</groupId>
+                <artifactId>gis_oss</artifactId>
+                <version>${gis.version}</version>
+            </dependency>
+
 
             <!-- springboot -->
             <dependency>