dengsixing 1 年之前
父節點
當前提交
56fd15f4fc
共有 27 個文件被更改,包括 578 次插入1419 次删除
  1. 42 14
      pom.xml
  2. 2 4
      src/main/java/com/fdkankan/scene/controller/SceneController.java
  3. 65 0
      src/main/java/com/fdkankan/scene/entity/Scene.java
  4. 50 0
      src/main/java/com/fdkankan/scene/entity/SceneFileMapping.java
  5. 185 0
      src/main/java/com/fdkankan/scene/generator/MappingGeneratorOracle.java
  6. 16 0
      src/main/java/com/fdkankan/scene/mapper/SceneFileMappingMapper.java
  7. 16 0
      src/main/java/com/fdkankan/scene/mapper/SceneMapper.java
  8. 1 3
      src/main/java/com/fdkankan/scene/service/ISceneService.java
  9. 16 0
      src/main/java/com/fdkankan/scene/service/SceneFileMappingService.java
  10. 16 0
      src/main/java/com/fdkankan/scene/service/SceneService.java
  11. 4 4
      src/main/java/com/fdkankan/scene/service/impl/SceneCleanOrigServiceImpl.java
  12. 50 21
      src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java
  13. 20 0
      src/main/java/com/fdkankan/scene/service/impl/SceneFileMappingServiceImpl.java
  14. 1 1
      src/main/java/com/fdkankan/scene/service/impl/SceneMarkShapeServiceImpl.java
  15. 3 3
      src/main/java/com/fdkankan/scene/service/impl/ScenePlusServiceImpl.java
  16. 6 6
      src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  17. 14 163
      src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java
  18. 3 0
      src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java
  19. 24 41
      src/main/resources/application-test.yml
  20. 0 16
      src/main/resources/key/private_pkcs8.pem
  21. 0 6
      src/main/resources/key/public.pem
  22. 1 3
      src/main/resources/logback-spring.xml
  23. 19 0
      src/main/resources/mapper/scene/SceneFileMappingMapper.xml
  24. 24 0
      src/main/resources/mapper/scene/SceneMapper.xml
  25. 0 9
      src/main/resources/static/apppro.html
  26. 二進制
      src/main/resources/static/img/logo.jpg
  27. 0 1125
      src/main/resources/static/txt/SensitiveWord.txt

+ 42 - 14
pom.xml

@@ -56,6 +56,38 @@
             <version>3.0.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
+                    <groupId>org.bytedeco</groupId>
+                    <artifactId>javacv</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.bytedeco</groupId>
+                    <artifactId>javacpp</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.bytedeco</groupId>
+                    <artifactId>javacv-platform</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>joinery</groupId>
+                    <artifactId>jave</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.aliyun</groupId>
+                    <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.aliyun</groupId>
+                    <artifactId>aliyun-java-sdk-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.poi</groupId>
+                    <artifactId>poi</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.poi</groupId>
+                    <artifactId>poi-ooxml</artifactId>
+                </exclusion>
+                <exclusion>
                     <groupId>org.springframework</groupId>
                     <artifactId>spring-web</artifactId>
                 </exclusion>
@@ -161,32 +193,28 @@
         </dependency>
 
         <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.25</version>
-            <scope>runtime</scope>
+            <groupId>com.oracle</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.3</version>
         </dependency>
-
+        <!--mybatis-plus整合依赖-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
-            <scope>compile</scope>
-            <version>3.4.3.4</version>
+            <version>3.0.5</version>
         </dependency>
 
-        <!--mybatis-plus代码生成器-->
+        <!-- mybatis-plus逆向工程依赖 -->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>
-            <scope>compile</scope>
-            <version>3.5.1</version>
+            <version>3.2.0</version>
         </dependency>
 
-        <!--velocity模板-->
+        <!-- freemarker 说明:mybatis-plus逆向工程需要freemarker模板引擎 -->
         <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity-engine-core</artifactId>
-            <version>2.3</version>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
         </dependency>
 
 <!--        <dependency>-->

+ 2 - 4
src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -4,12 +4,10 @@ package com.fdkankan.scene.controller;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.SceneInfoReqType;
 import com.fdkankan.common.exception.BusinessException;
-import com.fdkankan.scene.annotation.CheckPermit;
-import com.fdkankan.scene.service.ISceneService;
+import com.fdkankan.scene.service.ISceneCustomService;
 import com.fdkankan.web.response.ResultData;
 import com.fdkankan.scene.service.ISceneEditInfoService;
 import com.fdkankan.scene.service.IScenePlusService;
-import com.fdkankan.scene.vo.BaseSceneParamVO;
 import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
 import com.fdkankan.scene.vo.SceneInfoParamVO;
 import com.fdkankan.scene.vo.SceneInfoVO;
@@ -36,7 +34,7 @@ public class SceneController extends BaseController {
     @Autowired
     private IScenePlusService scenePlusService;
     @Autowired
-    private ISceneService sceneService;
+    private ISceneCustomService sceneService;
 
     /**
      * <p>

+ 65 - 0
src/main/java/com/fdkankan/scene/entity/Scene.java

@@ -0,0 +1,65 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("T_SCENE")
+public class Scene extends Model<Scene> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "ID", type = IdType.AUTO)
+    private String id;
+
+    @TableField("TITLE")
+    private String title;
+
+    @TableField("DESCRIPTION")
+    private String description;
+
+    @TableField("NUM")
+    private String num;
+
+    @TableField("FLOORLOGOSIZE")
+    private String floorlogosize;
+
+    @TableField("SCENEKIND")
+    private String scenekind;
+
+    @TableField("SCENERESOLUTION")
+    private String sceneresolution;
+
+    @TableField("SCENEFROM")
+    private String scenefrom;
+
+    @TableField("MODELKIND")
+    private String modelkind;
+
+    @TableField("FLOORPLANANGLE")
+    private String floorplanangle;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 50 - 0
src/main/java/com/fdkankan/scene/entity/SceneFileMapping.java

@@ -0,0 +1,50 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("T_SCENE_FILE_MAPPING")
+public class SceneFileMapping extends Model<SceneFileMapping> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "ID", type = IdType.AUTO)
+    private String id;
+
+    @TableField("NUM")
+    private String num;
+
+    @TableField("FILEID")
+    private String fileid;
+
+    @TableField("KEY")
+    private String key;
+
+    @TableField("URL")
+    private String url;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 185 - 0
src/main/java/com/fdkankan/scene/generator/MappingGeneratorOracle.java

@@ -0,0 +1,185 @@
+package com.fdkankan.scene.generator;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+/**
+ * 代码生成器
+ *
+ * <p>
+ * 根据数据库中的表生成:数据库表映射对象、Mapper 接口、Mapper XML 文件(含基础的 ResultMap 和字段代码片段)、 Service
+ * 接口、Service 接口实现累、基础的 Controller 类。
+ * </p>
+ * <p>
+ * 如果数据库设计符合规范,并且代码没有特殊要求。设置好表名前缀(无则忽略)、表字段前缀(无则忽略)后, 直接修改输出的路径、JDBC
+ * Url、数据库的账户和密码即可直接生成代码。
+ * </p>
+ * <p>
+ * 生成后将 Mapper 中的 xml 包中的 XML 文件移动到 resource 下即可,XML 存放文件夹名为 Mapper
+ * 接口包名(全包名)的同名文件夹<br/>
+ * 如 Mapper 接口包名为:com.example.mapper,那么在 resource 下新建同名文件夹:com.example.mapper,将
+ * xml 文件移动到该文件夹下即可。
+ * </p>
+ *
+ * @author wayne
+ * @since 2020-01-08 23:00
+ */
+public class MappingGeneratorOracle {
+
+	/**
+	 * 生成代码输出路径,<strong>路径必须是绝对路径,不需要包含包名</strong>
+	 */
+	private static final String OUTPUT_DIR = ".\\src\\main\\java\\com\\fdkankan\\scene\\generator";
+	/**
+	 * 生成代码输出的包名
+	 * <p>
+	 * 总包名,后续生成的 Mapper,Service 等将在该包下生成子包
+	 * </p>
+	 */
+	private static final String PACKAGE = "com.fdkankan.scene";
+	/**
+	 * JDBC URL 说明: url地址前需要加上@,否则会报错
+	 */
+
+	private static final String JDBC_URL = "jdbc:oracle:thin:@//8.135.106.227:1521/helowin";
+	/**
+	 * 数据库账户
+	 */
+	private static final String DB_USERNAME = "FDKK";
+	/**
+	 * 数据库账户密码
+	 */
+	private static final String DB_PASSWORD = "qawsed@123.";
+
+	/**
+	 * 执行即可生成代码 需要添加 freemarker 依赖 <dependency> <groupId>org.freemarker</groupId>
+	 * <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency>
+	 */
+	// 不要在src/main/java里面使用main方法,否则springboot项目某人为main方法的类就是启动类
+//	public static void main(String[] args) {
+//		autoGenerator().execute();
+//	}
+
+	public static AutoGenerator autoGenerator() {
+		AutoGenerator autoGenerator = new AutoGenerator();
+		autoGenerator.setGlobalConfig(globalConfig());
+		autoGenerator.setDataSource(oracleDataSourceConfig());
+		autoGenerator.setStrategy(strategyConfig());
+		autoGenerator.setPackageInfo(packageConfig());
+		autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
+		return autoGenerator;
+	}
+
+	public static void main(String[] args) {
+		autoGenerator().execute();
+	}
+
+	/**
+	 * 全局配置
+	 *
+	 * @return {@link GlobalConfig}
+	 */
+	private static GlobalConfig globalConfig() {
+		GlobalConfig globalConfig = new GlobalConfig();
+		globalConfig.setAuthor("dsx");
+		// 设置代码输出位置,需要绝对路径
+		globalConfig.setOutputDir(OUTPUT_DIR);
+		// 覆盖已有的代码
+		globalConfig.setFileOverride(false);
+		// 基本表的 ResultMap
+		globalConfig.setBaseResultMap(true);
+		// 基本表字段片段
+		globalConfig.setBaseColumnList(true);
+		// 开启基于 Model 操作数据库
+		globalConfig.setActiveRecord(true);
+		// 设置 ID 类型
+		globalConfig.setIdType(IdType.AUTO);
+//		// 生成基本 Swagger2 文档
+//		globalConfig.setSwagger2(true);
+		// 开启二级缓存
+//		globalConfig.setEnableCache(true);
+		// 设置生成的对象名称规则,%s 表示当前的 Entity
+		// 数据库表映射对象名称规则
+		globalConfig.setEntityName("%s");
+		// 也可以使用下面这种就是末尾会以DO结尾
+//		globalConfig.setEntityName("%sDO");
+		// Mapper 接口名称规则
+		globalConfig.setMapperName("%sMapper");
+		// Mapper XML 文件名称规则
+		globalConfig.setXmlName("%sMapper");
+		// Controller 生成规则
+		globalConfig.setControllerName("%sController");
+		// Service 接口生成名称规则
+		globalConfig.setServiceName("%sService");
+		// Service 实现类生成名称规则
+		globalConfig.setServiceImplName("%sServiceImpl");
+		return globalConfig;
+	}
+
+	/**
+	 * 生成策略配置
+	 *
+	 * @return StrategyConfig
+	 */
+	private static StrategyConfig strategyConfig() {
+		StrategyConfig strategyConfig = new StrategyConfig();
+		strategyConfig.setCapitalMode(false);
+		strategyConfig.setEntityLombokModel(true);
+		strategyConfig.setRestControllerStyle(true);
+		strategyConfig.setNaming(NamingStrategy.underline_to_camel);
+		strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
+		// TODO 填写表前缀、表字段前缀,生成代码时去除字段前缀
+		strategyConfig.setTablePrefix("t_");
+		strategyConfig.setFieldPrefix("a_", "c_", "e_", "f_", "p_", "r_", "t_", "tf_");
+		return strategyConfig;
+	}
+
+	/**
+	 * MySQL 数据源配置
+	 *
+	 * @return DataSourceConfig
+	 */
+	private static DataSourceConfig oracleDataSourceConfig() {
+		DataSourceConfig dataSourceConfig = new DataSourceConfig();
+		dataSourceConfig.setDbType(DbType.ORACLE);
+		dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
+		dataSourceConfig.setDriverName("oracle.jdbc.driver.OracleDriver");
+		dataSourceConfig.setUrl(JDBC_URL);
+		dataSourceConfig.setUsername(DB_USERNAME);
+		dataSourceConfig.setPassword(DB_PASSWORD);
+		return dataSourceConfig;
+	}
+
+	/**
+	 * 包相关配置信息
+	 * <p>
+	 * 配置生成代码的包信息,如生成的 Mapper 包,Service 包等
+	 * </p>
+	 */
+	private static PackageConfig packageConfig() {
+		PackageConfig packageConfig = new PackageConfig();
+		// 设置父包
+		packageConfig.setParent(PACKAGE);
+		// TODO 设置生成代码的包
+		// Controller 包
+		packageConfig.setController("controller");
+		// 数据库表映射对象包
+		packageConfig.setEntity("entity");
+		// Mapper 接口包,含 XML 文件
+		packageConfig.setMapper("mapper");
+		// Service 接口包
+		packageConfig.setService("service");
+		// Service 接口实现类包
+		packageConfig.setServiceImpl("service.impl");
+		return packageConfig;
+	}
+}
+

+ 16 - 0
src/main/java/com/fdkankan/scene/mapper/SceneFileMappingMapper.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneFileMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+public interface SceneFileMappingMapper extends BaseMapper<SceneFileMapping> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/scene/mapper/SceneMapper.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.Scene;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+public interface SceneMapper extends BaseMapper<Scene> {
+
+}

+ 1 - 3
src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -1,11 +1,9 @@
 package com.fdkankan.scene.service;
 
-import com.fdkankan.scene.bean.BodySegmentStatusBean;
 import com.fdkankan.web.response.ResultData;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
-public interface ISceneService {
+public interface ISceneCustomService {
 
     ResultData uploadBodySegment(MultipartFile file,Integer rotate) throws Exception;
 

+ 16 - 0
src/main/java/com/fdkankan/scene/service/SceneFileMappingService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneFileMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+public interface SceneFileMappingService extends IService<SceneFileMapping> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/scene/service/SceneService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.Scene;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+public interface SceneService extends IService<Scene> {
+
+}

+ 4 - 4
src/main/java/com/fdkankan/scene/service/impl/SceneCleanOrigServiceImpl.java

@@ -43,15 +43,15 @@ import java.util.stream.Collectors;
 @Service
 public class SceneCleanOrigServiceImpl extends ServiceImpl<ISceneCleanOrigMapper, SceneCleanOrig> implements ISceneCleanOrigService {
 
-    @Value("${scene.cleanOrig.month}")
+    @Value("${scene.cleanOrig.month:#{null}}")
     private Integer cleanOrigMonth;
-    @Value("${scene.coldStorage.month}")
+    @Value("${scene.coldStorage.month:#{null}}")
     private Integer coldStorageMonth;
-    @Value("${scene.cleanDeleted.month}")
+    @Value("${scene.cleanDeleted.month:#{null}}")
     private Integer cleanDeletedMonth;
     @Value("#{'${scene.cleanTestCamera.snCode:}'.split(',')}")
     private List<String> testSnCodeList;
-    @Value("${scene.cleanTestCamera.month}")
+    @Value("${scene.cleanTestCamera.month:#{null}}")
     private Integer cleanTestCameraMonth;
     @Value("${fyun.bucket}")
     private String bucket;

+ 50 - 21
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -105,6 +105,10 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     private ISceneAsynOperLogService sceneAsynOperLogService;
     @Autowired
     private ICutModelService cutModelService;
+    @Autowired
+    private SceneService sceneService;
+    @Autowired
+    private SceneFileMappingService sceneFileMappingService;
 
     @Transactional
     @Override
@@ -563,29 +567,54 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
 //        //访问量+1
 //        scenePlusService.updateViewCount(num);
 
-//        String key = String.format(RedisKey.SCENE_JSON, num);
         SceneInfoVO sceneInfoVO = null;
-        String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
-        String sceneJson = fYunFileService.getFileContent(objectName);
+        String key = String.format(RedisKey.SCENE_JSON, num);
+        boolean hasKey = redisUtil.hasKey(key);
+        if(hasKey){
+            String sceneJson = redisUtil.get(key);
+            sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
+        }else{
+            Scene scene = sceneService.getOne(new LambdaQueryWrapper<Scene>().eq(Scene::getNum, num));
+            sceneInfoVO = new SceneInfoVO();
+            sceneInfoVO.setTitle(scene.getTitle());
+            sceneInfoVO.setNum(scene.getNum());
+            sceneInfoVO.setFloorLogoSize(Integer.valueOf(scene.getFloorlogosize()));
+            sceneInfoVO.setSceneKind(scene.getScenekind());
+            sceneInfoVO.setSceneResolution(scene.getSceneresolution());
+            sceneInfoVO.setSceneFrom(scene.getScenefrom());
+            sceneInfoVO.setModelKind(scene.getModelkind());
+            sceneInfoVO.setFloorPlanAngle(Float.valueOf(scene.getFloorplanangle()));
+            SceneEditControlsVO sceneEditControlsBean = SceneEditControlsVO.builder()
+                    .showDollhouse(1).showMap(1).showPanorama(1).showVR(1).showTitle(1).showFloorplan(1).build();
+            sceneInfoVO.setControls(sceneEditControlsBean);
+
+            redisUtil.set(key, JSON.toJSONString(sceneInfoVO));
+        }
+
+        List<SceneFileMapping> mappingList = sceneFileMappingService.list(new LambdaQueryWrapper<SceneFileMapping>().eq(SceneFileMapping::getNum, num));
+        Map<String, String> keyMap = mappingList.stream().collect(Collectors.toMap(SceneFileMapping::getKey, SceneFileMapping::getUrl));
+        sceneInfoVO.setMapping(keyMap);
+
+//        String objectName = String.format(ConstantFilePath.SCENE_VIEW_DATA_DATA_SCENEJSON, num);
+//        String sceneJson = fYunFileService.getFileContent(objectName);
 //            redisUtil.set(key, sceneJson);
-        sceneInfoVO = JSON.parseObject(sceneJson, SceneInfoVO.class);
-        sceneInfoVO.setScenePassword(null);
-        if(Objects.isNull(sceneInfoVO.getFloorPlanAngle())){
-            sceneInfoVO.setFloorPlanAngle(0f);
-        }
-        if(Objects.isNull(sceneInfoVO.getFloorPlanCompass())){
-            sceneInfoVO.setFloorPlanCompass(0f);
-        }
-        SceneEditControlsVO controls = sceneInfoVO.getControls();
-        if(Objects.isNull(controls.getShowShare())){
-            controls.setShowShare(CommonStatus.YES.code().intValue());
-        }
-        if(Objects.isNull(controls.getShowCapture())){
-            controls.setShowCapture(CommonStatus.YES.code().intValue());
-        }
-        if(Objects.isNull(controls.getShowBillboardTitle())){
-            controls.setShowBillboardTitle(CommonStatus.YES.code().intValue());
-        }
+//        sceneInfoVO.setScenePassword(null);
+//        if(Objects.isNull(sceneInfoVO.getFloorPlanAngle())){
+//            sceneInfoVO.setFloorPlanAngle(0f);
+//        }
+//        if(Objects.isNull(sceneInfoVO.getFloorPlanCompass())){
+//            sceneInfoVO.setFloorPlanCompass(0f);
+//        }
+//        SceneEditControlsVO controls = sceneInfoVO.getControls();
+//        if(Objects.isNull(controls.getShowShare())){
+//            controls.setShowShare(CommonStatus.YES.code().intValue());
+//        }
+//        if(Objects.isNull(controls.getShowCapture())){
+//            controls.setShowCapture(CommonStatus.YES.code().intValue());
+//        }
+//        if(Objects.isNull(controls.getShowBillboardTitle())){
+//            controls.setShowBillboardTitle(CommonStatus.YES.code().intValue());
+//        }
 
         return sceneInfoVO;
     }

+ 20 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneFileMappingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.service.impl;
+
+import com.fdkankan.scene.entity.SceneFileMapping;
+import com.fdkankan.scene.mapper.SceneFileMappingMapper;
+import com.fdkankan.scene.service.SceneFileMappingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+@Service
+public class SceneFileMappingServiceImpl extends ServiceImpl<SceneFileMappingMapper, SceneFileMapping> implements SceneFileMappingService {
+
+}

+ 1 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneMarkShapeServiceImpl.java

@@ -43,7 +43,7 @@ public class SceneMarkShapeServiceImpl extends ServiceImpl<MarkShapeMapper, Scen
 //    private RabbitMqProducer rabbitMqProducer;
 //    @Value("${queue.scene.yolov5-train-queue}")
     private String yolov5TrainQueue;
-    @Value("${main.url}")
+    @Value("${main.url:#{null}}")
     private String mainUrl;
 
     @Override

+ 3 - 3
src/main/java/com/fdkankan/scene/service/impl/ScenePlusServiceImpl.java

@@ -53,16 +53,16 @@ import org.springframework.web.multipart.MultipartFile;
  * 场景主表 服务实现类
  * </p>
  *
- * @author 
+ * @author
  * @since 2022-03-16
  */
 @Slf4j
 @Service
 public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
 
-    @Value("${main.url}")
+    @Value("${main.url:#{null}}")
     private String mainUrl;
-    @Value("${scene.pro.new.url}")
+    @Value("${scene.pro.new.url:#{null}}")
     private String sceneProNewUrl;
 
     @Autowired

+ 6 - 6
src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -83,17 +83,17 @@ import org.springframework.web.multipart.MultipartFile;
 @Service
 public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
 
-    @Value("${fyun.host}")
+    @Value("${fyun.host:#{null}}")
     private String ossUrlPrefix;
-    @Value("${fyun.type}")
+    @Value("${fyun.type:local")
     private String fyunType;
-    @Value("${main.url}")
+    @Value("${main.url:#{null}}")
     private String mainUrl;
-    @Value("${scene.url}")
+    @Value("${scene.url:#{null}}")
     private String sceneUrl;
-    @Value("${scene.pro.url}")
+    @Value("${scene.pro.url:#{null}}")
     private String sceneProUrl;
-    @Value("${scene.pro.new.url}")
+    @Value("${scene.pro.new.url:#{null}}")
     private String sceneProNewUrl;
     @Value("${ecs.checkFile.maxTimes:5}")
     private int maxCheckTimes;

+ 14 - 163
src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -1,169 +1,20 @@
 package com.fdkankan.scene.service.impl;
 
-import cn.hutool.core.img.ImgUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.lang.UUID;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
-import com.fdkankan.common.constant.CommonOperStatus;
-import com.fdkankan.common.constant.ErrorCode;
-import com.fdkankan.common.exception.BusinessException;
-import com.fdkankan.common.util.DateExtUtil;
-import com.fdkankan.common.util.FileUtils;
-import com.fdkankan.fyun.config.FYunFileConfig;
-import com.fdkankan.fyun.face.FYunFileServiceInterface;
-import com.fdkankan.model.constants.ConstantFilePath;
-//import com.fdkankan.rabbitmq.util.RabbitMqProducer;
-import com.fdkankan.redis.constant.RedisKey;
-import com.fdkankan.redis.util.RedisUtil;
-import com.fdkankan.scene.bean.BodySegmentStatusBean;
-import com.fdkankan.scene.service.ISceneService;
-//import com.fdkankan.scene.util.OssBodySegmentUtil;
-import com.fdkankan.web.response.ResultData;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
+import com.fdkankan.scene.entity.Scene;
+import com.fdkankan.scene.mapper.SceneMapper;
+import com.fdkankan.scene.service.SceneService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-import sun.rmi.runtime.Log;
 
-import javax.imageio.ImageIO;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.math.BigDecimal;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author dsx
+ * @since 2024-06-26
+ */
+@Service
+public class SceneServiceImpl extends ServiceImpl<SceneMapper, Scene> implements SceneService {
 
-@Slf4j
-@Service("sceneService")
-public class SceneServiceImpl implements ISceneService {
-
-    @Value("${queue.bodySegment:body-segment}")
-    private String queueName;
-    @Value("${oss.bodySegment.bucket:4dkankan-huadong}")
-    private String bodySegmentBucket;
-    @Value("${oss.bodySegment.point:oss-cn-shanghai.aliyuncs.com}")
-    private String bodySegmentHost;
-
-//    @Autowired
-//    private OssBodySegmentUtil ossBodySegmentUtil;
-    @Autowired
-    private RedisUtil redisUtil;
-//    @Autowired
-//    private RabbitMqProducer rabbitMqProducer;
-//    @Autowired
-//    private FYunFileServiceInterface fYunFileService;
-    @Autowired
-    public FYunFileConfig fYunFileConfig;
-
-    @Override
-    public ResultData uploadBodySegment(MultipartFile file, Integer rotate) throws Exception {
-
-        if(!FileUtils.checkFileSizeIsLimit(file.getSize(), 10, "M")){
-            throw new BusinessException(ErrorCode.FAILURE_CODE_4003, "10M");
-        }
-
-        String uuid = UUID.randomUUID().toString();
-
-        String fileName = file.getOriginalFilename();
-        String extName = fileName.substring(fileName.lastIndexOf("."));
-        File tempFile = File.createTempFile(uuid, extName);
-        file.transferTo(tempFile);
-
-        //判断是否需要旋转
-        if(Objects.nonNull(rotate) && rotate != 0){
-            Image rotateImg = ImgUtil.rotate(ImageIO.read(tempFile), rotate);
-            File tempRotateFile = File.createTempFile(uuid + "-rotate", extName);
-            ImgUtil.write(rotateImg, tempRotateFile);
-            tempFile = tempRotateFile;
-        }
-
-        //校验像素
-        BufferedImage bufferedImage = ImgUtil.read(tempFile.getPath());
-        Float scale = 1F;
-        Float widthScale = 1F;
-        Float heightScale = 1F;
-        int width = bufferedImage.getWidth();
-        int height = bufferedImage.getHeight();
-        if(width > 2000){
-            widthScale = new BigDecimal(2000).divide(new BigDecimal(width),5, BigDecimal.ROUND_DOWN).floatValue();
-        }
-        if(height > 2000){
-            heightScale = new BigDecimal(2000).divide(new BigDecimal(height),5, BigDecimal.ROUND_DOWN).floatValue();
-        }
-        scale = widthScale > heightScale ? heightScale : widthScale;
-        ImgUtil.scale(new File(tempFile.getPath()), new File(tempFile.getPath()), scale);
-
-        String orgImgOssPath = "body_segment/original/" + tempFile.getName();
-//        ossBodySegmentUtil.uploadOss(tempFile.getPath(), orgImgOssPath);
-//        fYunFileService.uploadFile(bodySegmentBucket, tempFile.getPath(), orgImgOssPath);
-
-        BodySegmentStatusBean bodySegmentStatusBean = BodySegmentStatusBean.builder().uuid(uuid).status(CommonOperStatus.WAITING.code()).build();
-        redisUtil.set(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid), JSON.toJSONString(bodySegmentStatusBean), RedisKey.CAMERA_EXPIRE_7_TIME);
-
-        Map<String, String> map = new HashMap<>();
-        map.put("uuid", uuid);
-        map.put("imgUrl", "https://" +  bodySegmentBucket + "." + bodySegmentHost + "/" + orgImgOssPath);
-//        rabbitMqProducer.sendByWorkQueue(queueName, map);
-
-        return ResultData.ok(uuid);
-    }
-
-    public static void main(String[] args) throws IOException {
-        Image rotateImg = ImgUtil.rotate(ImageIO.read(FileUtil.file("C:\\Users\\dsx\\Desktop\\IMG_6633.HEIC.JPG")), 90);
-        ImgUtil.write(rotateImg, FileUtil.file("C:\\Users\\dsx\\Desktop\\IMG_6633.HEIC_2.JPG"));
-    }
-
-    @Override
-    public void bodySegmentHandler(String imgUrl, String uuid) {
-        String progress = redisUtil.hget(RedisKey.SCENE_BODY_SEGMENT, uuid);
-        BodySegmentStatusBean bodySegmentStatusBean = null;
-        try {
-            if(StrUtil.isEmpty(progress)){
-                bodySegmentStatusBean = JSON.parseObject(progress, BodySegmentStatusBean.class);
-            }
-            if(Objects.isNull(bodySegmentStatusBean)){
-                bodySegmentStatusBean = new BodySegmentStatusBean();
-                bodySegmentStatusBean.setUuid(uuid);
-            }
-            String dir = ConstantFilePath.BASE_PATH + "/bodySegment/" +
-                    DateExtUtil.format(Calendar.getInstance().getTime(), DateExtUtil.dateStyle6);
-            String fileName = uuid + ".png";
-            String imgPath = dir + "/" + fileName;
-//            ossBodySegmentUtil.extracted(imgUrl, dir, fileName);
-            if(!FileUtil.exist(imgPath)){
-                throw new Exception("提取图片失败");
-            }
-            String targetOssImgPath = "body_segment/segment/" + uuid + ".png";
-//            fYunFileService.uploadFile(imgPath, targetOssImgPath);
-            bodySegmentStatusBean.setStatus(CommonOperStatus.SUCCESS.code());
-            bodySegmentStatusBean.setImageUrl(fYunFileConfig.getHost() + targetOssImgPath);
-            redisUtil.set(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid), JSON.toJSONString(bodySegmentStatusBean), RedisKey.CAMERA_EXPIRE_7_TIME);
-        } catch (Exception e) {
-            bodySegmentStatusBean.setStatus(CommonOperStatus.FAILD.code());
-            redisUtil.set(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid), JSON.toJSONString(bodySegmentStatusBean), RedisKey.CAMERA_EXPIRE_7_TIME);
-        }finally {
-            try {
-                //免费版qps不能大于2,故休眠一秒
-                Thread.sleep(1000L);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    @Override
-    public ResultData getBodySegmentStatus(String uuid) {
-
-        String progress = redisUtil.get(String.format(RedisKey.SCENE_BODY_SEGMENT, uuid));
-        if(StrUtil.isEmpty(progress)){
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5038);
-        }
-        BodySegmentStatusBean bodySegmentStatusBean = JSON.parseObject(progress, BodySegmentStatusBean.class);
-        return ResultData.ok(bodySegmentStatusBean);
-    }
 }

+ 3 - 0
src/main/java/com/fdkankan/scene/vo/SceneInfoVO.java

@@ -10,6 +10,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.util.Date;
+import java.util.Map;
 
 /**
  * <p>
@@ -254,5 +255,7 @@ public class SceneInfoVO {
      */
     private JSONObject started;
 
+    private Map<String, String> mapping;
+
 
 }

+ 24 - 41
src/main/resources/application-test.yml

@@ -2,56 +2,39 @@ spring:
   application:
     name: 4dkankan-center-scene
   datasource:
-    type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
-    driver-class-name: com.mysql.jdbc.Driver          # mysql驱动
-    #192.168.0.146
-    url: jdbc:mysql://10.180.107.114:3306/4dkankan_v4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true
-    username: root
-    password: 4dkk2024tieta%
-    hikari:
-      connection-timeout: 30000         # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
-      minimum-idle: 5                   # 最小连接数
-      maximum-pool-size: 20             # 最大连接数
-      auto-commit: true                 # 事务自动提交
-      idle-timeout: 600000              # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
-      pool-name: DateSourceHikariCP     # 连接池名字
-      max-lifetime: 1800000             # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
-      connection-test-query: SELECT 1   # 连接测试语句
+    url: jdbc:oracle:thin:@//8.135.106.227:1521/helowin
+    username: FDKK
+    password: qawsed@123.
+    driver-class-name: oracle.jdbc.OracleDriver
+  redis:
+    host: 10.180.22.54
+    # host: 120.24.144.164
+    port: 7000
+    timeout: 6000ms
+    #    password: bgh0cae240
+    password: Qwt@1620b!v
+    # cluster:
+    #   max-redirects: 3  # 获取失败 最大重定向次数
+    #   nodes:
+    #     - 120.25.146.52:6379
+    jedis:
+      pool:
+        max-active: 10  #连接池最大连接数(使用负值表示没有限制)
+        max-idle: 10 # 连接池中的最大空闲连接
+        min-idle: 5 # 连接池中的最小空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+    lettuce:
+      shutdown-timeout: 0ms
 
 fyun:
   type: local
   key:
   secret:
   bucket: 4dkankan
+  coldBucket:
   endPoint:
   host: /oss/
 
-main:
-  url: xxx
-
-scene:
-  url: show.html?m=
-  pro:
-    url: showProMobile.html?m=
-    v3:
-      url: smobile.html?m=
-    new:
-      url: smg.html?m=
-  expired:
-    month: 6
-  cleanOrig:
-    month: 12
-  cleanDeleted:  ##已删除场景的资源清除时限
-    month: 6
-  cleanTestCamera:  ##清除测试环境测试相机场景资源配置
-    snCode:
-    month: 6
-  coldStorage:
-    month: 12
-
-logging:
-  path: /mnt/docker/4dkankan
-
 
 
 

+ 0 - 16
src/main/resources/key/private_pkcs8.pem

@@ -1,16 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAOScGE5AR1jixcGo
-HZMd0kySDk4BQarT1rbYTdXFKXmjn5cXnqGFEfCWnD+bSdLi7fyZdrPso8HjMELo
-vPhBdGmcLwSv74/OT8LnXb1nBZV0uvNe8euFLO3VSUJbOi05z4uTBLsiIJRIpMsU
-j43UpEmgVQvTtmDV23ddhbFMJKUxAgMBAAECgYEAjA6R2YcJ7wvn6jAsBlCz4ZNt
-zh5488aa+iRk8z26njo/cNrYpc4X4pTzHwjtXpUHBsWicrLc1NFyZNufwlyfi1eK
-AaoNC2dHghapmahzCdKRbozVA0+1zsGsUPCNXwPM58YHUtax+nSem1gQJME5+XAA
-A3B1HZSswmiYd6KkBm0CQQD+L1TpsIBpGFWAwvznfHymvifYRzSZzY+Jw110vpt2
-rgPCi77emlBqUsZ5q0VLYaqwuNUjcQp4DB2Ur+7+E7+7AkEA5j4CkmYsb4iIgPiQ
-urmpHrYmIfl8/U6pEaENPDyqzkhyD2IfRh1AqFQfTZzCYlzG7QzzNYY2VCeWMbam
-PMbSAwJBAIW7AUGxyt2AH/wOmmBv7mULxorTa6k/rTUdxB2X6tMV2oSQYWtcZNKL
-mkCJC3wNdnBjzj9HSeq+9RE1PtgOK+ECQQDO4v+an1bkbbIC+dfLAZN29kOzmaR3
-VRxUq/vhmb39mFlte0UQ0q5L0zNBoU+F5UoWreFIwi3FVsD+MNqVmC4TAkEArOZg
-qpGu5SgVNcZKQy0KdBQZoYafD9px+UY0KOo9n08l89DiW63YjrZfcOAf68CBV43R
-t+NFRAUK59TFqvNF6w==
------END PRIVATE KEY-----

+ 0 - 6
src/main/resources/key/public.pem

@@ -1,6 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDknBhOQEdY4sXBqB2THdJMkg5O
-AUGq09a22E3VxSl5o5+XF56hhRHwlpw/m0nS4u38mXaz7KPB4zBC6Lz4QXRpnC8E
-r++Pzk/C5129ZwWVdLrzXvHrhSzt1UlCWzotOc+LkwS7IiCUSKTLFI+N1KRJoFUL
-07Zg1dt3XYWxTCSlMQIDAQAB
------END PUBLIC KEY-----

+ 1 - 3
src/main/resources/logback-spring.xml

@@ -5,11 +5,9 @@
 <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<springProperty scope="context" name="LOG_PATH" source="logging.path"/>
-
 	<contextName>logback</contextName>
 	<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
-	<property name="log.path" value="${LOG_PATH}/scene/logs" />
+	<property name="log.path" value="/mnt/backend/4dkankan/scene/logs" />
 
 	<!-- 彩色日志 -->
 	<!-- 彩色日志依赖的渲染类 -->

+ 19 - 0
src/main/resources/mapper/scene/SceneFileMappingMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.scene.mapper.SceneFileMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.fdkankan.scene.entity.SceneFileMapping">
+        <id column="ID" property="id" />
+        <result column="NUM" property="num" />
+        <result column="FILEID" property="fileid" />
+        <result column="KEY" property="key" />
+        <result column="URL" property="url" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, NUM, FILEID, KEY, URL
+    </sql>
+
+</mapper>

+ 24 - 0
src/main/resources/mapper/scene/SceneMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.scene.mapper.SceneMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.fdkankan.scene.entity.Scene">
+        <id column="ID" property="id" />
+        <result column="TITLE" property="title" />
+        <result column="DESCRIPTION" property="description" />
+        <result column="NUM" property="num" />
+        <result column="FLOORLOGOSIZE" property="floorlogosize" />
+        <result column="SCENEKIND" property="scenekind" />
+        <result column="SCENERESOLUTION" property="sceneresolution" />
+        <result column="SCENEFROM" property="scenefrom" />
+        <result column="MODELKIND" property="modelkind" />
+        <result column="FLOORPLANANGLE" property="floorplanangle" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, TITLE, DESCRIPTION, NUM, FLOORLOGOSIZE, SCENEKIND, SCENERESOLUTION, SCENEFROM, MODELKIND, FLOORPLANANGLE
+    </sql>
+
+</mapper>

+ 0 - 9
src/main/resources/static/apppro.html

@@ -1,9 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <title>1</title>
-    </head>
-    <body >
-        4dage,app部门文件,请勿删除
-    </body>
-</html>

二進制
src/main/resources/static/img/logo.jpg


文件差異過大導致無法顯示
+ 0 - 1125
src/main/resources/static/txt/SensitiveWord.txt