lyhzzz 2 gadi atpakaļ
revīzija
7911dfd601
100 mainītis faili ar 7033 papildinājumiem un 0 dzēšanām
  1. 30 0
      .gitignore
  2. 1 0
      README.md
  3. 168 0
      pom.xml
  4. 27 0
      src/main/java/com/fdkankan/tools/ToolsApplication.java
  5. 87 0
      src/main/java/com/fdkankan/tools/entity/Camera.java
  6. 159 0
      src/main/java/com/fdkankan/tools/entity/CameraDetail.java
  7. 114 0
      src/main/java/com/fdkankan/tools/entity/SceneEditControls.java
  8. 204 0
      src/main/java/com/fdkankan/tools/entity/SceneEditInfo.java
  9. 132 0
      src/main/java/com/fdkankan/tools/entity/SceneEditInfoExt.java
  10. 90 0
      src/main/java/com/fdkankan/tools/entity/SceneFileBuild.java
  11. 123 0
      src/main/java/com/fdkankan/tools/entity/ScenePlus.java
  12. 180 0
      src/main/java/com/fdkankan/tools/entity/ScenePlusExt.java
  13. 237 0
      src/main/java/com/fdkankan/tools/entity/ScenePro.java
  14. 285 0
      src/main/java/com/fdkankan/tools/entity/SceneProEdit.java
  15. 115 0
      src/main/java/com/fdkankan/tools/entity/TbBuilding.java
  16. 111 0
      src/main/java/com/fdkankan/tools/entity/TbCameraInstance.java
  17. 181 0
      src/main/java/com/fdkankan/tools/entity/TbHouse.java
  18. 220 0
      src/main/java/com/fdkankan/tools/entity/TbScene.java
  19. 60 0
      src/main/java/com/fdkankan/tools/entity/TbScene3dNumNew.java
  20. 49 0
      src/main/java/com/fdkankan/tools/entity/TbSceneNum.java
  21. 249 0
      src/main/java/com/fdkankan/tools/entity/TbScenePro.java
  22. 273 0
      src/main/java/com/fdkankan/tools/entity/TbSceneProEdit.java
  23. 135 0
      src/main/java/com/fdkankan/tools/entity/TbUser.java
  24. 158 0
      src/main/java/com/fdkankan/tools/entity/User.java
  25. 117 0
      src/main/java/com/fdkankan/tools/entity/UserIncrement.java
  26. 81 0
      src/main/java/com/fdkankan/tools/generate/AutoGenerate.java
  27. 81 0
      src/main/java/com/fdkankan/tools/generate/AutoGenerate2.java
  28. 26 0
      src/main/java/com/fdkankan/tools/generate/GenerateZfbCode.java
  29. 27 0
      src/main/java/com/fdkankan/tools/httpClient/client/FdkkClient.java
  30. 23 0
      src/main/java/com/fdkankan/tools/httpClient/client/ZfbClient.java
  31. 18 0
      src/main/java/com/fdkankan/tools/mapper/ICameraDetailMapper.java
  32. 18 0
      src/main/java/com/fdkankan/tools/mapper/ICameraMapper.java
  33. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneEditControlsMapper.java
  34. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneEditInfoExtMapper.java
  35. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneEditInfoMapper.java
  36. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneFileBuildMapper.java
  37. 18 0
      src/main/java/com/fdkankan/tools/mapper/IScenePlusExtMapper.java
  38. 18 0
      src/main/java/com/fdkankan/tools/mapper/IScenePlusMapper.java
  39. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneProEditMapper.java
  40. 18 0
      src/main/java/com/fdkankan/tools/mapper/ISceneProMapper.java
  41. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbBuildingMapper.java
  42. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbCameraInstanceMapper.java
  43. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbHouseMapper.java
  44. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbScene3dNumNewMapper.java
  45. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbSceneMapper.java
  46. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbSceneNumMapper.java
  47. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbSceneProEditMapper.java
  48. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbSceneProMapper.java
  49. 18 0
      src/main/java/com/fdkankan/tools/mapper/ITbUserMapper.java
  50. 18 0
      src/main/java/com/fdkankan/tools/mapper/IUserIncrementMapper.java
  51. 18 0
      src/main/java/com/fdkankan/tools/mapper/IUserMapper.java
  52. 16 0
      src/main/java/com/fdkankan/tools/service/ICameraDetailService.java
  53. 17 0
      src/main/java/com/fdkankan/tools/service/ICameraService.java
  54. 16 0
      src/main/java/com/fdkankan/tools/service/ISceneEditControlsService.java
  55. 16 0
      src/main/java/com/fdkankan/tools/service/ISceneEditInfoExtService.java
  56. 16 0
      src/main/java/com/fdkankan/tools/service/ISceneEditInfoService.java
  57. 16 0
      src/main/java/com/fdkankan/tools/service/ISceneFileBuildService.java
  58. 16 0
      src/main/java/com/fdkankan/tools/service/IScenePlusExtService.java
  59. 30 0
      src/main/java/com/fdkankan/tools/service/IScenePlusService.java
  60. 19 0
      src/main/java/com/fdkankan/tools/service/ISceneProEditService.java
  61. 19 0
      src/main/java/com/fdkankan/tools/service/ISceneProService.java
  62. 21 0
      src/main/java/com/fdkankan/tools/service/ITbBuildingService.java
  63. 17 0
      src/main/java/com/fdkankan/tools/service/ITbCameraInstanceService.java
  64. 21 0
      src/main/java/com/fdkankan/tools/service/ITbHouseService.java
  65. 17 0
      src/main/java/com/fdkankan/tools/service/ITbScene3dNumNewService.java
  66. 20 0
      src/main/java/com/fdkankan/tools/service/ITbSceneNumService.java
  67. 16 0
      src/main/java/com/fdkankan/tools/service/ITbSceneProEditService.java
  68. 24 0
      src/main/java/com/fdkankan/tools/service/ITbSceneProService.java
  69. 25 0
      src/main/java/com/fdkankan/tools/service/ITbSceneService.java
  70. 17 0
      src/main/java/com/fdkankan/tools/service/ITbUserService.java
  71. 16 0
      src/main/java/com/fdkankan/tools/service/IUserIncrementService.java
  72. 17 0
      src/main/java/com/fdkankan/tools/service/IUserService.java
  73. 20 0
      src/main/java/com/fdkankan/tools/service/impl/CameraDetailServiceImpl.java
  74. 27 0
      src/main/java/com/fdkankan/tools/service/impl/CameraServiceImpl.java
  75. 67 0
      src/main/java/com/fdkankan/tools/service/impl/CnToZfbService.java
  76. 20 0
      src/main/java/com/fdkankan/tools/service/impl/SceneEditControlsServiceImpl.java
  77. 20 0
      src/main/java/com/fdkankan/tools/service/impl/SceneEditInfoExtServiceImpl.java
  78. 20 0
      src/main/java/com/fdkankan/tools/service/impl/SceneEditInfoServiceImpl.java
  79. 20 0
      src/main/java/com/fdkankan/tools/service/impl/SceneFileBuildServiceImpl.java
  80. 20 0
      src/main/java/com/fdkankan/tools/service/impl/ScenePlusExtServiceImpl.java
  81. 436 0
      src/main/java/com/fdkankan/tools/service/impl/ScenePlusServiceImpl.java
  82. 33 0
      src/main/java/com/fdkankan/tools/service/impl/SceneProEditServiceImpl.java
  83. 32 0
      src/main/java/com/fdkankan/tools/service/impl/SceneProServiceImpl.java
  84. 42 0
      src/main/java/com/fdkankan/tools/service/impl/TbBuildingServiceImpl.java
  85. 29 0
      src/main/java/com/fdkankan/tools/service/impl/TbCameraInstanceServiceImpl.java
  86. 39 0
      src/main/java/com/fdkankan/tools/service/impl/TbHouseServiceImpl.java
  87. 72 0
      src/main/java/com/fdkankan/tools/service/impl/TbScene3dNumNewServiceImpl.java
  88. 64 0
      src/main/java/com/fdkankan/tools/service/impl/TbSceneNumServiceImpl.java
  89. 20 0
      src/main/java/com/fdkankan/tools/service/impl/TbSceneProEditServiceImpl.java
  90. 121 0
      src/main/java/com/fdkankan/tools/service/impl/TbSceneProServiceImpl.java
  91. 51 0
      src/main/java/com/fdkankan/tools/service/impl/TbSceneServiceImpl.java
  92. 29 0
      src/main/java/com/fdkankan/tools/service/impl/TbUserServiceImpl.java
  93. 20 0
      src/main/java/com/fdkankan/tools/service/impl/UserIncrementServiceImpl.java
  94. 27 0
      src/main/java/com/fdkankan/tools/service/impl/UserServiceImpl.java
  95. 76 0
      src/main/java/com/fdkankan/tools/service/impl/ZfbOldToNewService.java
  96. 39 0
      src/main/java/com/fdkankan/tools/task/TaskService.java
  97. 82 0
      src/main/java/com/fdkankan/tools/utils/OssToOssUtil.java
  98. 37 0
      src/main/java/com/fdkankan/tools/utils/StorageType.java
  99. 1057 0
      src/main/java/com/fdkankan/tools/utils/UploadToAws.java
  100. 0 0
      src/main/java/com/fdkankan/tools/utils/UploadToOss.java

+ 30 - 0
.gitignore

@@ -0,0 +1,30 @@
+ HELP.md
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.log
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
+
+### VS Code ###
+.vscode/

+ 1 - 0
README.md

@@ -0,0 +1 @@
+v1.0.0

+ 168 - 0
pom.xml

@@ -0,0 +1,168 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.fdzfb.task</groupId>
+    <artifactId>4dzfb-task</artifactId>
+    <version>1.0.0</version>
+    <packaging>jar</packaging>
+
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.3.12.RELEASE</version>
+        <relativePath/>
+    </parent>
+
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.0</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.83</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.dtflys.forest</groupId>
+            <artifactId>forest-spring-boot-starter</artifactId>
+            <version>1.5.24</version>
+        </dependency>
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.10.3</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.25</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <scope>compile</scope>
+            <version>3.4.3.4</version>
+        </dependency>
+
+        <!--mybatis-plus代码生成器-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <scope>compile</scope>
+            <version>3.5.1</version>
+        </dependency>
+
+        <!--velocity模板-->
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.22</version>
+        </dependency>
+
+
+
+
+        <!-- 阿里云 OSS 不使用的情况下可以不引入 -->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.15.1</version>
+        </dependency>
+
+
+        <!-- AWS S3 不使用的情况下可以不引入 -->
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk-s3</artifactId>
+            <version>1.12.272</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.7.17</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.dtflys.forest</groupId>
+            <artifactId>forest-spring-boot-starter</artifactId>
+            <version>1.5.20</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <testFailureIgnore>true</testFailureIgnore>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+
+    </build>
+
+</project>

+ 27 - 0
src/main/java/com/fdkankan/tools/ToolsApplication.java

@@ -0,0 +1,27 @@
+package com.fdkankan.tools;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.BeansException;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringBootApplication
+@EnableScheduling
+@MapperScan("com.fdkankan.**.mapper")
+public class ToolsApplication implements ApplicationContextAware {
+
+
+    static ApplicationContext applicationContext;
+
+    public static void main(String[] args) {
+        SpringApplication.run(ToolsApplication.class, args);
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        this.applicationContext = applicationContext;
+    }
+}

+ 87 - 0
src/main/java/com/fdkankan/tools/entity/Camera.java

@@ -0,0 +1,87 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 相机主表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Getter
+@Setter
+@TableName("t_camera")
+public class Camera implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机的Mac地址
+     */
+    @TableField("child_name")
+    private String childName;
+
+    /**
+     * 激活时间
+     */
+    @TableField("activated_time")
+    private Date activatedTime;
+
+    /**
+     * 相机密码
+     */
+    @TableField("child_password")
+    private String childPassword;
+
+    /**
+     * sn码
+     */
+    @TableField("sn_code")
+    private String snCode;
+
+    /**
+     * wifi名称
+     */
+    @TableField("wifi_name")
+    private String wifiName;
+
+    /**
+     * wifi密码
+     */
+    @TableField("wifi_password")
+    private String wifiPassword;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 159 - 0
src/main/java/com/fdkankan/tools/entity/CameraDetail.java

@@ -0,0 +1,159 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 相机子表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Getter
+@Setter
+@TableName("t_camera_detail")
+public class CameraDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 余额
+     */
+    @TableField("balance")
+    private String balance;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示客户,1表示员工,2表示赠送,3表示其他,4经销商销售
+     */
+    @TableField("own")
+    private Integer own;
+
+    /**
+     * 订单号
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 0表示本国,1表示国外
+     */
+    @TableField("country")
+    private Integer country;
+
+    /**
+     * 经销商
+     */
+    @TableField("agency")
+    private String agency;
+
+    /**
+     * 相机类型,0表示双目,1四维看看pro,2 四维看看lite,9 双目转台,10 激光转台
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 总容量
+     */
+    @TableField("total_space")
+    private Long totalSpace;
+
+    /**
+     * 已使用容量
+     */
+    @TableField("used_space")
+    private Long usedSpace;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 商品表t_goods的id
+     */
+    @TableField("goods_id")
+    private Long goodsId;
+
+    /**
+     * 企业表t_company的id
+     */
+    @TableField("company_id")
+    private Long companyId;
+
+    /**
+     * 代理商架构管理t_agent_framework的id
+     */
+    @TableField("agent_framework_id")
+    private Long agentFrameworkId;
+
+    /**
+     * 相机协作用户id
+     */
+    @TableField("cooperation_user")
+    private Long cooperationUser;
+
+    /**
+     * 设备地址(追溯管理后台)
+     */
+    @TableField("address")
+    private String address;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("user_camera_version")
+    private String userCameraVersion;
+
+    @TableField("app_version")
+    private String appVersion;
+
+    @TableField("last_request_time")
+    private Date lastRequestTime;
+
+    @TableField("out_time")
+    private Date outTime;
+
+    /**
+     * 代理商id
+     */
+    @TableField("agent_id")
+    private Integer agentId;
+
+
+}

+ 114 - 0
src/main/java/com/fdkankan/tools/entity/SceneEditControls.java

@@ -0,0 +1,114 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_edit_controls")
+public class SceneEditControls implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * t_scene_edit_info表id
+     */
+    @TableField("edit_info_id")
+    private Long editInfoId;
+
+    /**
+     * 是否展示小地图(0-不展示,1-展示)
+     */
+    @TableField("show_map")
+    private Integer showMap;
+
+    /**
+     * 是否需要密码(0-不需要,1-需要)
+     */
+    @TableField("show_lock")
+    private Integer showLock;
+
+    /**
+     * 是否展示标题(0-不需要,1-需要)
+     */
+    @TableField("show_title")
+    private Integer showTitle;
+
+    /**
+     * 是否展示漫游按钮(0-不需要,1-需要)
+     */
+    @TableField("show_panorama")
+    private Integer showPanorama;
+
+    /**
+     * 是否展示3D按钮(0-不需要,1-需要)
+     */
+    @TableField("show_dollhouse")
+    private Integer showDollhouse;
+
+    /**
+     * 是否展示2D按钮(0-不需要,1-需要)
+     */
+    @TableField("show_floorplan")
+    private Integer showFloorplan;
+
+    /**
+     * 是否展示VR(0-不需要,1-需要)
+     */
+    @TableField("show_VR")
+    private Integer showVr;
+
+    /**
+     * 是否展示自动导览(0-不需要,1-需要)
+     */
+    @TableField("show_tour")
+    private Integer showTour;
+
+    /**
+     * 是否展示测量线(0-不需要,1-需要)
+     */
+    @TableField("show_rule")
+    private Integer showRule;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 204 - 0
src/main/java/com/fdkankan/tools/entity/SceneEditInfo.java

@@ -0,0 +1,204 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_edit_info")
+public class SceneEditInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("scene_pro_id")
+    private Long sceneProId;
+
+    @TableField("scene_plus_id")
+    private Long scenePlusId;
+
+    /**
+     * 地面logo名称
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 地面logo大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 地面logo文件名称
+     */
+    @TableField("floor_logo_file")
+    private String floorLogoFile;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("music")
+    private String music;
+
+    /**
+     * 背景音乐文件名称
+     */
+    @TableField("music_file")
+    private String musicFile;
+
+    /**
+     * 浏览密码
+     */
+    @TableField("scene_password")
+    private String scenePassword;
+
+    /**
+     * 场景标题
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 场景描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 用户是否上传户型图(0-否,1-是)
+     */
+    @TableField("floor_plan_user")
+    private Integer floorPlanUser;
+
+    /**
+     * 是否有热点数据(0-否,1-是)
+     */
+    @TableField("tags")
+    private Integer tags;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 图片版本
+     */
+    @TableField("img_version")
+    private Integer imgVersion;
+
+    /**
+     * 场景关联版本
+     */
+    @TableField("link_version")
+    private Integer linkVersion;
+
+    /**
+     * 是否上传模型
+     */
+    @TableField("is_upload_obj")
+    private Integer isUploadObj;
+
+    /**
+     * 重新建模的版本
+     */
+    @TableField("floor_edit_ver")
+    private Integer floorEditVer;
+
+    /**
+     * 正式发布重新建模的版本
+     */
+    @TableField("floor_publish_ver")
+    private Integer floorPublishVer;
+
+    /**
+     * 空间视频数据
+     */
+    @TableField("box_videos")
+    private String boxVideos;
+
+    /**
+     * 空间贴图数据
+     */
+    @TableField("box_photos")
+    private String boxPhotos;
+
+    /**
+     * 空间模型数据
+     */
+    @TableField("box_models")
+    private String boxModels;
+
+    /**
+     * 是否需要处理球幕视频
+     */
+    @TableField("build_video_status")
+    private Integer buildVideoStatus;
+
+    /**
+     * 初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 加载logo名
+     */
+    @TableField("loading_logo")
+    private String loadingLogo;
+
+    /**
+     * 加载logo文件名
+     */
+    @TableField("loading_logo_file")
+    private String loadingLogoFile;
+
+    /**
+     * 用户上传自定义平面图数据
+     */
+    @TableField("floor_plan_upload")
+    private String floorPlanUpload;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 132 - 0
src/main/java/com/fdkankan/tools/entity/SceneEditInfoExt.java

@@ -0,0 +1,132 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_edit_info_ext")
+public class SceneEditInfoExt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("scene_pro_id")
+    private Long sceneProId;
+
+    @TableField("scene_plus_id")
+    private Long scenePlusId;
+
+    @TableField("edit_info_id")
+    private Long editInfoId;
+
+    /**
+     * 户型角度
+     */
+    @TableField("floor_plan_angle")
+    private Float floorPlanAngle;
+
+    /**
+     * 指南针角度
+     */
+    @TableField("floor_plan_compass")
+    private Float floorPlanCompass;
+
+    /**
+     * 大场景序号(随心装场景码)  原pro_edit表中的字段
+     */
+    @TableField("vr_num")
+    private String vrNum;
+
+    /**
+     * 是否有保存导览(0-否,1-是)
+     */
+    @TableField("tours")
+    private Integer tours;
+
+    /**
+     * 马赛克数据
+     */
+    @TableField("mosaics")
+    private String mosaics;
+
+    /**
+     * 是否有马赛克
+     */
+    @TableField("mosaic")
+    private Integer mosaic;
+
+    /**
+     * 水印文件名
+     */
+    @TableField("water_mark")
+    private String waterMark;
+
+    /**
+     * 是否有场景关联(0-否,1-是)
+     */
+    @TableField("links")
+    private Integer links;
+
+    /**
+     * 是否有滤镜(0-否,1-是)
+     */
+    @TableField("filters")
+    private Integer filters;
+
+    /**
+     * 风格滤镜数据
+     */
+    @TableField("roi_filter")
+    private String roiFilter;
+
+    /**
+     * 是否有监控摄像头(0-否,1-是)
+     */
+    @TableField("surveillances")
+    private Integer surveillances;
+
+    /**
+     * 二维码logo路径(oss相对路径)
+     */
+    @TableField("share_logo_img")
+    private String shareLogoImg;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 90 - 0
src/main/java/com/fdkankan/tools/entity/SceneFileBuild.java

@@ -0,0 +1,90 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 场景文件建模表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_file_build")
+public class SceneFileBuild implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "Id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 相机的Mac地址
+     */
+    @TableField("child_name")
+    private String childName;
+
+    /**
+     * 文件id
+     */
+    @TableField("file_id")
+    private String fileId;
+
+    /**
+     * unicode
+     */
+    @TableField("unicode")
+    private String unicode;
+
+    /**
+     * 状态,0-上传中,1-上传成功,-1-上传失败
+     */
+    @TableField("upload_status")
+    private Integer uploadStatus;
+
+    /**
+     * 状态,0-未建模,1-请求建模,2-等待建模(队列中),3-建模成功,-1-建模失败
+     */
+    @TableField("build_status")
+    private Integer buildStatus;
+
+    /**
+     * 照片总张数
+     */
+    @TableField("total_pic_num")
+    private Integer totalPicNum;
+
+    @TableField("chunks")
+    private Integer chunks;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 123 - 0
src/main/java/com/fdkankan/tools/entity/ScenePlus.java

@@ -0,0 +1,123 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 场景主表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_plus")
+public class ScenePlus implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景名称
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 场景描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 场景状态:0-未建好,1--已建好,-1-计算出错,-2--不在官网显示
+     */
+    @TableField("scene_status")
+    private Integer sceneStatus;
+
+    /**
+     * 场景来源:相机拍摄10以内表示,1表示八目,2双目,3转台,4 激光  其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景
+     */
+    @TableField("scene_source")
+    private Integer sceneSource;
+
+    /**
+     * 支付状态:0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 场景类型  0-其他,1-文博,2-地产,3-电商,4-餐饮,5-家居,99-一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 是否推荐:0-否,1-是
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 是否有housetype文件(0-否,1-是)
+     */
+    @TableField("house_type")
+    private Integer houseType;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 180 - 0
src/main/java/com/fdkankan/tools/entity/ScenePlusExt.java

@@ -0,0 +1,180 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Getter
+@Setter
+@TableName("t_scene_plus_ext")
+public class ScenePlusExt implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * t_scene_plus主键
+     */
+    @TableField("plus_id")
+    private Long plusId;
+
+    /**
+     * 场景数据目录
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 场景链接
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 缩略图链接
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 方案:1-双目,2-转台,3-六目,4-八目,10-获取4k图,11-获取2k,12-获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 使用用量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 云服务器类型
+     */
+    @TableField("ecs")
+    private String ecs;
+
+    /**
+     * 点位数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 算法类型(slam、sfm)
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * 固件版本
+     */
+    @TableField("firmware_version")
+    private String firmwareVersion;
+
+    /**
+     * 算法类型(V2,V3)
+     */
+    @TableField("build_type")
+    private String buildType;
+
+    /**
+     * 分辨率(2k,4k)
+     */
+    @TableField("scene_resolution")
+    private String sceneResolution;
+
+    /**
+     * 场景来源,lite:双目lite相机,pro:八目相机,minion:双面转台相机,laser:激光相机,virtual:虚拟场景,sketch:图片建模场景
+     */
+    @TableField("scene_from")
+    private String sceneFrom;
+
+    /**
+     * 切图方式(tiles:瓦片图,face:切片图,pan:全景图 ,local:本地切片,cube:立体图)
+     */
+    @TableField("scene_kind")
+    private String sceneKind;
+
+    /**
+     * 算法生成模型类型(dam,3dtiles)
+     */
+    @TableField("model_kind")
+    private String modelKind;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * oss桶名
+     */
+    @TableField("yun_file_bucket")
+    private String yunFileBucket;
+
+    /**
+     * 算法计算完成时间
+     */
+    @TableField("algorithm_time")
+    private Date algorithmTime;
+
+    /**
+     * 计算耗时
+     */
+    @TableField("compute_time")
+    private Long computeTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * A-有效,I-无效
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("is_obj")
+    private Integer isObj;
+
+
+}

+ 237 - 0
src/main/java/com/fdkankan/tools/entity/ScenePro.java

@@ -0,0 +1,237 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * pro场景表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Getter
+@Setter
+@TableName("t_scene_pro")
+public class ScenePro implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景名称
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+    /**
+     * 场景描述
+     */
+    @TableField("scene_dec")
+    private String sceneDec;
+
+    /**
+     * 场景的链接地址
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 场景缩略图
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景logo
+     */
+    @TableField("scene_logo")
+    private String sceneLogo;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居,99一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 拍摄数量 ps:点位数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 所有资源文件名
+     */
+    @TableField("files_name")
+    private String filesName;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目,10获取4k图,11获取2k,12获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * 服务器的服务商
+     */
+    @TableField("ecs")
+    private String ecs;
+
+    /**
+     * 使用容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 固件版本
+     */
+    @TableField("firmware_version")
+    private String firmwareVersion;
+
+    /**
+     * 调用V2还是V3的算法
+     */
+    @TableField("build_type")
+    private String buildType;
+
+    /**
+     * 计算时间(秒为单位)
+     */
+    @TableField("compute_time")
+    private Long computeTime;
+
+    /**
+     * 场景来源,相机拍摄10以内表示,1表示八目,2双目,3转台,4 激光  其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景,14上传的matterport场景
+     */
+    @TableField("scene_source")
+    private Integer sceneSource;
+
+    /**
+     * 大场景序号(随心装场景码)
+     */
+    @TableField("vrnum")
+    private String vrnum;
+
+    @TableField("unicode")
+    private String unicode;
+
+    @TableField("mosaics")
+    private String mosaics;
+
+    /**
+     * 是否已升级v4(0-否,1-是)
+     */
+    @TableField("is_upgrade")
+    private Integer isUpgrade;
+
+    /**
+     * 是否是obj场景
+     */
+    @TableField("is_obj")
+    private Integer isObj;
+
+
+}

+ 285 - 0
src/main/java/com/fdkankan/tools/entity/SceneProEdit.java

@@ -0,0 +1,285 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * pro场景编辑数据表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Getter
+@Setter
+@TableName("t_scene_pro_edit")
+public class SceneProEdit implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * pro场景id
+     */
+    @TableField("pro_id")
+    private Long proId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 大场景的密钥
+     */
+    @TableField("scene_key")
+    private String sceneKey;
+
+    /**
+     * 展示页面密码,0不需要,1需要
+     */
+    @TableField("need_key")
+    private Integer needKey;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 表示缩略图是否存在
+     */
+    @TableField("thumb_status")
+    private Integer thumbStatus;
+
+    /**
+     * 地面点位标志
+     */
+    @TableField("marker_logo")
+    private String markerLogo;
+
+    /**
+     * 0表示默认,1表示自己上传
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 标记大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 要上传的热点的id集合,用逗号隔开
+     */
+    @TableField("hots_ids")
+    private String hotsIds;
+
+    /**
+     * 表示初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("bg_music")
+    private String bgMusic;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 普通录屏文件地址
+     */
+    @TableField("screencap_voice_src")
+    private String screencapVoiceSrc;
+
+    /**
+     * 录音文件地址
+     */
+    @TableField("screencap_voice_sound")
+    private String screencapVoiceSound;
+
+    /**
+     * 同步录音地址
+     */
+    @TableField("screencap_voice_soundsync")
+    private String screencapVoiceSoundsync;
+
+    /**
+     * 选择的类型,sound为screencapVoiceSound,file为screencapVoiceSrc,soundsync为screencap_voice_soundsync
+     */
+    @TableField("screencap_voice_type")
+    private String screencapVoiceType;
+
+    /**
+     * 录屏文件地址
+     */
+    @TableField("play_data")
+    private String playData;
+
+    /**
+     * 重新建模的版本
+     */
+    @TableField("floor_edit_ver")
+    private Integer floorEditVer;
+
+    /**
+     * 正式发布重新建模的版本
+     */
+    @TableField("floor_publish_ver")
+    private Integer floorPublishVer;
+
+    /**
+     * 录屏图片存放文件
+     */
+    @TableField("screencap_thumb")
+    private String screencapThumb;
+
+    /**
+     * 分享的logo和生成二维码的logo
+     */
+    @TableField("share_logo")
+    private String shareLogo;
+
+    /**
+     * 小地图浏览
+     */
+    @TableField("map_visi")
+    private Integer mapVisi;
+
+    /**
+     * 自动导览
+     */
+    @TableField("tour_visi")
+    private Integer tourVisi;
+
+    /**
+     * vr模式
+     */
+    @TableField("vr_visi")
+    private Integer vrVisi;
+
+    /**
+     * 展示页面是否显示标尺
+     */
+    @TableField("ruler_visi")
+    private Integer rulerVisi;
+
+    /**
+     * 展示页面cad图在平面图是否显示
+     */
+    @TableField("cad_img_visi")
+    private Integer cadImgVisi;
+
+    /**
+     * cad平面图
+     */
+    @TableField("floor_plan_png")
+    private String floorPlanPng;
+
+    /**
+     * cad平面图参数
+     */
+    @TableField("cad_info")
+    private String cadInfo;
+
+    @TableField("pano_visi")
+    private Integer panoVisi;
+
+    @TableField("m2d_visi")
+    private Integer m2dVisi;
+
+    @TableField("m3d_visi")
+    private Integer m3dVisi;
+
+    @TableField("measure_visi")
+    private Integer measureVisi;
+
+    /**
+     * 肖安需求,场景于场景之间的关联
+     */
+    @TableField("link_scene")
+    private String linkScene;
+
+    @TableField("overlay")
+    private String overlay;
+
+    /**
+     * 是否显示底部logo,1显示,0不显示
+     */
+    @TableField("show_logo_bottom")
+    private Boolean showLogoBottom;
+
+    /**
+     * 全景图版本号
+     */
+    @TableField("images_version")
+    private Integer imagesVersion;
+
+    /**
+     * 上传的背景音乐
+     */
+    @TableField("bg_music_name")
+    private String bgMusicName;
+
+    @TableField("jump_scene")
+    private Boolean jumpScene;
+
+    /**
+     * 旋转角度
+     */
+    @TableField("floor_plan_angle")
+    private String floorPlanAngle;
+
+    /**
+     * 场景下载次数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 绿幕抠图json数据
+     */
+    @TableField("videos_user")
+    private String videosUser;
+
+    /**
+     * 大场景序号(随心装场景码)
+     */
+    @TableField("vr_num")
+    private String vrNum;
+
+    /**
+     * 随心装封面图
+     */
+    @TableField("vr_thumb")
+    private String vrThumb;
+
+
+}

+ 115 - 0
src/main/java/com/fdkankan/tools/entity/TbBuilding.java

@@ -0,0 +1,115 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Getter
+@Setter
+@TableName("tb_building")
+public class TbBuilding implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 楼盘名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 建筑面积
+     */
+    @TableField("covered_area")
+    private String coveredArea;
+
+    /**
+     * 使用面积
+     */
+    @TableField("utilization_area")
+    private String utilizationArea;
+
+    /**
+     * 挂牌时间
+     */
+    @TableField("sell_time")
+    private String sellTime;
+
+    /**
+     * 楼盘描述
+     */
+    @TableField("introduce")
+    private String introduce;
+
+    /**
+     * 省
+     */
+    @TableField("province")
+    private String province;
+
+    /**
+     * 市
+     */
+    @TableField("city")
+    private String city;
+
+    /**
+     * 地区
+     */
+    @TableField("district")
+    private String district;
+
+    /**
+     * 经度
+     */
+    @TableField("longitude")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @TableField("latitude")
+    private String latitude;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("create_user")
+    private String createUser;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField("update_user")
+    private String updateUser;
+
+
+}

+ 111 - 0
src/main/java/com/fdkankan/tools/entity/TbCameraInstance.java

@@ -0,0 +1,111 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Getter
+@Setter
+@TableName("tb_camera_instance")
+public class TbCameraInstance implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机的Mac地址
+     */
+    @TableField("child_name")
+    private String childName;
+
+    /**
+     * 激活时间
+     */
+    @TableField("active_time")
+    private Date activeTime;
+
+    /**
+     * 对应cameraType的Id
+     */
+    @TableField("camera_type_id")
+    private Integer cameraTypeId;
+
+    /**
+     * 相机密码
+     */
+    @TableField("child_password")
+    private String childPassword;
+
+    /**
+     * wifi名称
+     */
+    @TableField("wifi_name")
+    private String wifiName;
+
+    /**
+     * wifi密码
+     */
+    @TableField("wifi_password")
+    private String wifiPassword;
+
+    /**
+     * 余额
+     */
+    @TableField("balance")
+    private String balance;
+
+    /**
+     * 用户账号(企业用户)
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 0表示客户,1表示员工,2表示送的,3表示其他
+     */
+    @TableField("own")
+    private Integer own;
+
+    /**
+     * 0表示本国,1表示国外
+     */
+    @TableField("country")
+    private Integer country;
+
+    /**
+     * 经销商
+     */
+    @TableField("agency")
+    private String agency;
+
+    /**
+     * sn码
+     */
+    @TableField("sn_code")
+    private String snCode;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 181 - 0
src/main/java/com/fdkankan/tools/entity/TbHouse.java

@@ -0,0 +1,181 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Getter
+@Setter
+@TableName("tb_house")
+public class TbHouse implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 标题描述
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 楼盘id
+     */
+    @TableField("building_id")
+    private Long buildingId;
+
+    /**
+     * 栋号
+     */
+    @TableField("building_num")
+    private Integer buildingNum;
+
+    /**
+     * 单元号
+     */
+    @TableField("unit_num")
+    private Integer unitNum;
+
+    /**
+     * 房号
+     */
+    @TableField("room_num")
+    private Integer roomNum;
+
+    /**
+     * 建筑面积
+     */
+    @TableField("covered_area")
+    private String coveredArea;
+
+    /**
+     * 使用面积
+     */
+    @TableField("utilization_area")
+    private String utilizationArea;
+
+    /**
+     * 单价
+     */
+    @TableField("price")
+    private String price;
+
+    /**
+     * 总价
+     */
+    @TableField("total")
+    private String total;
+
+    /**
+     * 房屋朝向
+     */
+    @TableField("orientation")
+    private String orientation;
+
+    /**
+     * 房间数
+     */
+    @TableField("house_num")
+    private Integer houseNum;
+
+    /**
+     * 客厅数
+     */
+    @TableField("parlour_num")
+    private Integer parlourNum;
+
+    /**
+     * 卫生间数
+     */
+    @TableField("toilet_num")
+    private Integer toiletNum;
+
+    /**
+     * 楼层
+     */
+    @TableField("floor")
+    private Integer floor;
+
+    /**
+     * 是否有电梯
+     */
+    @TableField("elevator")
+    private Boolean elevator;
+
+    /**
+     * 用途
+     */
+    @TableField("purpose")
+    private String purpose;
+
+    /**
+     * 权属,如:商品房,公寓
+     */
+    @TableField("power")
+    private String power;
+
+    /**
+     * 状态,0:启用,1:停用
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 类型,0:装修,1:新房,2:二手房,3:公寓,4:民俗
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 装修情况
+     */
+    @TableField("decorate")
+    private String decorate;
+
+    /**
+     * 挂牌时间
+     */
+    @TableField("sell_time")
+    private Date sellTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("create_user")
+    private String createUser;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField("update_user")
+    private String updateUser;
+
+
+}

+ 220 - 0
src/main/java/com/fdkankan/tools/entity/TbScene.java

@@ -0,0 +1,220 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Getter
+@Setter
+@TableName("tb_scene")
+public class TbScene implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景名称
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+    /**
+     * 场景描述
+     */
+    @TableField("scene_dec")
+    private String sceneDec;
+
+    /**
+     * 公元管道需要的编码
+     */
+    @TableField("work_number")
+    private String workNumber;
+
+    /**
+     * 场景的链接地址
+     */
+    @TableField("website")
+    private String website;
+
+    /**
+     * 场景缩略图
+     */
+    @TableField("homepic")
+    private String homepic;
+
+    /**
+     * 生成场景的时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示私密不要显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("datasource")
+    private String datasource;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 房源id
+     */
+    @TableField("house_id")
+    private Long houseId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费
+     */
+    @TableField("pay")
+    private Integer pay;
+
+    /**
+     * 相机的用户名
+     */
+    @TableField("child_name")
+    private String childName;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 大场景的密钥
+     */
+    @TableField("scenekey")
+    private String scenekey;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 表示缩略图是否存在
+     */
+    @TableField("thumb_img")
+    private Integer thumbImg;
+
+    /**
+     * 0表示默认,1表示自己上传
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 标记大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 要上传的热点的id集合,用逗号隔开
+     */
+    @TableField("hotsids")
+    private String hotsids;
+
+    /**
+     * 表示初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 风格
+     */
+    @TableField("style")
+    private Integer style;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("bg_music")
+    private String bgMusic;
+
+    @TableField("screencap_music")
+    private String screencapMusic;
+
+    /**
+     * 录屏文件个数
+     */
+    @TableField("screencap_len")
+    private Integer screencapLen;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+
+}

+ 60 - 0
src/main/java/com/fdkankan/tools/entity/TbScene3dNumNew.java

@@ -0,0 +1,60 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 八目场景编码表
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Getter
+@Setter
+@TableName("tb_scene_3d_num_new")
+public class TbScene3dNumNew implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("used")
+    private Integer used;
+
+    @TableField("folder_name")
+    private String folderName;
+
+    @TableField("code")
+    private String code;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+
+}

+ 49 - 0
src/main/java/com/fdkankan/tools/entity/TbSceneNum.java

@@ -0,0 +1,49 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Getter
+@Setter
+@TableName("tb_scene_num")
+public class TbSceneNum implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否使用
+     */
+    @TableField("used")
+    private Integer used;
+
+    @TableField("folder_name")
+    private String folderName;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("code")
+    private String code;
+
+
+}

+ 249 - 0
src/main/java/com/fdkankan/tools/entity/TbScenePro.java

@@ -0,0 +1,249 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * pro场景表
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Getter
+@Setter
+@TableName("tb_scene_pro")
+public class TbScenePro implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景名称
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+    /**
+     * 场景描述
+     */
+    @TableField("scene_dec")
+    private String sceneDec;
+
+    /**
+     * 场景的链接地址
+     */
+    @TableField("web_site")
+    private String webSite;
+
+    /**
+     * 场景缩略图
+     */
+    @TableField("thumb")
+    private String thumb;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景logo
+     */
+    @TableField("scene_logo")
+    private String sceneLogo;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居,99一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 所有资源文件名
+     */
+    @TableField("files_name")
+    private String filesName;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目,10获取4k图,11获取2k,12获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * 服务器的服务商
+     */
+    @TableField("ecs")
+    private String ecs;
+
+    /**
+     * 使用容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 固件版本
+     */
+    @TableField("firmware_version")
+    private String firmwareVersion;
+
+    /**
+     * 调用V2还是V3的算法
+     */
+    @TableField("build_type")
+    private String buildType;
+
+    /**
+     * 计算时间(秒为单位)
+     */
+    @TableField("compute_time")
+    private Long computeTime;
+
+    /**
+     * 场景来源,相机拍摄10以内表示,1表示八目,2双目,3转台,其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景
+     */
+    @TableField("scene_source")
+    private Integer sceneSource;
+
+    /**
+     * 房屋ID
+     */
+    @TableField("house_id")
+    private Long houseId;
+
+    /**
+     * 公元管道需要的编码
+     */
+    @TableField("work_number")
+    private String workNumber;
+
+    /**
+     * 小程序首页封面图
+     */
+    @TableField("app_list_pic_url")
+    private String appListPicUrl;
+
+    /**
+     * '小程序是否显示'
+     */
+    @TableField("is_show")
+    private Boolean isShow;
+
+    /**
+     * 是否生成了直播间
+     */
+    @TableField("lived")
+    private Boolean lived;
+
+    @TableField("contact_id")
+    private Long contactId;
+
+    @TableField("phone_num")
+    private String phoneNum;
+
+
+}

+ 273 - 0
src/main/java/com/fdkankan/tools/entity/TbSceneProEdit.java

@@ -0,0 +1,273 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * pro场景编辑数据表
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Getter
+@Setter
+@TableName("tb_scene_pro_edit")
+public class TbSceneProEdit implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * pro场景id
+     */
+    @TableField("pro_id")
+    private Long proId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 大场景的密钥
+     */
+    @TableField("scene_key")
+    private String sceneKey;
+
+    /**
+     * 展示页面密码,0不需要,1需要
+     */
+    @TableField("need_key")
+    private Integer needKey;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 表示缩略图是否存在
+     */
+    @TableField("thumb_status")
+    private Integer thumbStatus;
+
+    /**
+     * 地面点位标志
+     */
+    @TableField("marker_logo")
+    private String markerLogo;
+
+    /**
+     * 0表示默认,1表示自己上传
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 标记大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 要上传的热点的id集合,用逗号隔开
+     */
+    @TableField("hots_ids")
+    private String hotsIds;
+
+    /**
+     * 表示初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("bg_music")
+    private String bgMusic;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 普通录屏文件地址
+     */
+    @TableField("screencap_voice_src")
+    private String screencapVoiceSrc;
+
+    /**
+     * 录音文件地址
+     */
+    @TableField("screencap_voice_sound")
+    private String screencapVoiceSound;
+
+    /**
+     * 同步录音地址
+     */
+    @TableField("screencap_voice_soundsync")
+    private String screencapVoiceSoundsync;
+
+    /**
+     * 选择的类型,sound为screencapVoiceSound,file为screencapVoiceSrc,soundsync为screencap_voice_soundsync
+     */
+    @TableField("screencap_voice_type")
+    private String screencapVoiceType;
+
+    /**
+     * 录屏文件地址
+     */
+    @TableField("play_data")
+    private String playData;
+
+    /**
+     * 重新建模的版本
+     */
+    @TableField("floor_edit_ver")
+    private Integer floorEditVer;
+
+    /**
+     * 正式发布重新建模的版本
+     */
+    @TableField("floor_publish_ver")
+    private Integer floorPublishVer;
+
+    /**
+     * 录屏图片存放文件
+     */
+    @TableField("screencap_thumb")
+    private String screencapThumb;
+
+    /**
+     * 分享的logo和生成二维码的logo
+     */
+    @TableField("share_logo")
+    private String shareLogo;
+
+    /**
+     * 小地图浏览
+     */
+    @TableField("map_visi")
+    private Integer mapVisi;
+
+    /**
+     * 自动导览
+     */
+    @TableField("tour_visi")
+    private Integer tourVisi;
+
+    /**
+     * vr模式
+     */
+    @TableField("vr_visi")
+    private Integer vrVisi;
+
+    /**
+     * 展示页面是否显示标尺
+     */
+    @TableField("ruler_visi")
+    private Integer rulerVisi;
+
+    /**
+     * 展示页面cad图在平面图是否显示
+     */
+    @TableField("cad_img_visi")
+    private Integer cadImgVisi;
+
+    /**
+     * cad平面图
+     */
+    @TableField("floor_plan_png")
+    private String floorPlanPng;
+
+    /**
+     * cad平面图参数
+     */
+    @TableField("cad_info")
+    private String cadInfo;
+
+    @TableField("pano_visi")
+    private Integer panoVisi;
+
+    @TableField("m2d_visi")
+    private Integer m2dVisi;
+
+    @TableField("m3d_visi")
+    private Integer m3dVisi;
+
+    @TableField("measure_visi")
+    private Integer measureVisi;
+
+    /**
+     * 肖安需求,场景于场景之间的关联
+     */
+    @TableField("link_scene")
+    private String linkScene;
+
+    @TableField("overlay")
+    private String overlay;
+
+    /**
+     * 是否显示底部logo,1显示,0不显示
+     */
+    @TableField("show_logo_bottom")
+    private Boolean showLogoBottom;
+
+    /**
+     * 全景图版本号
+     */
+    @TableField("images_version")
+    private Integer imagesVersion;
+
+    /**
+     * 上传的背景音乐
+     */
+    @TableField("bg_music_name")
+    private String bgMusicName;
+
+    @TableField("jump_scene")
+    private Boolean jumpScene;
+
+    /**
+     * 旋转角度
+     */
+    @TableField("floor_plan_angle")
+    private String floorPlanAngle;
+
+    /**
+     * 场景下载次数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 绿幕抠图json数据
+     */
+    @TableField("videos_user")
+    private String videosUser;
+
+
+}

+ 135 - 0
src/main/java/com/fdkankan/tools/entity/TbUser.java

@@ -0,0 +1,135 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Getter
+@Setter
+@TableName("tb_user")
+public class TbUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 用户密码
+     */
+    @TableField("user_password")
+    private String userPassword;
+
+    /**
+     * 微信appid
+     */
+    @TableField("appid")
+    private String appid;
+
+    /**
+     * 手机号
+     */
+    @TableField("phone")
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 企业备注子账号的备注名
+     */
+    @TableField("memo_name")
+    private String memoName;
+
+    @TableField("head")
+    private String head;
+
+    /**
+     * 用户类型,默认0:普通用户1:企业子账号,2:企业,-1:超级用户
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 关联tb_company表id,type为0时为空
+     */
+    @TableField("company_id")
+    private Long companyId;
+
+    /**
+     * 状态
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 消息描述
+     */
+    @TableField("message")
+    private String message;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("create_user")
+    private String createUser;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField("update_user")
+    private String updateUser;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("fdkk_user")
+    private String fdkkUser;
+
+    @TableField("fdkk_password")
+    private String fdkkPassword;
+
+    @TableField("gender")
+    private Integer gender;
+
+
+}

+ 158 - 0
src/main/java/com/fdkankan/tools/entity/User.java

@@ -0,0 +1,158 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * <p>
+ * 用户信息表
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Getter
+@Setter
+@TableName("t_user")
+@ToString
+public class User implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 头像对应的链接地址
+     */
+    @TableField("head")
+    private String head;
+
+    /**
+     * 用户密码
+     */
+    @TableField("password")
+    private String password;
+
+    /**
+     * 用户邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 注册时间
+     */
+    @TableField("register_time")
+    private Date registerTime;
+
+    /**
+     * 用户名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 昵称
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 0表示禁言(bbs)
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 0表示拒绝通知,1表示接受通知
+     */
+    @TableField("is_notice")
+    private Integer isNotice;
+
+    /**
+     * 机构名称
+     */
+    @TableField("organization_name")
+    private String organizationName;
+
+    /**
+     * 主页链接
+     */
+    @TableField("main_page")
+    private String mainPage;
+
+    /**
+     * 所在国家,默认是86
+     */
+    @TableField("country")
+    private String country;
+
+    /**
+     * 所在省份
+     */
+    @TableField("province")
+    private String province;
+
+    /**
+     * 所在城市
+     */
+    @TableField("city")
+    private String city;
+
+    /**
+     * 可下载场景总数
+     */
+    @TableField("download_num_total")
+    private Integer downloadNumTotal;
+
+    /**
+     * 已下载场景总数
+     */
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("sys_user_id")
+    private Integer sysUserId;
+
+    /**
+     * 深时场景下载总次数
+     */
+    @TableField("ss_download_num_total")
+    private Integer ssDownloadNumTotal;
+
+    /**
+     * 深时场景已下载次数
+     */
+    @TableField("ss_download_num")
+    private Integer ssDownloadNum;
+
+
+}

+ 117 - 0
src/main/java/com/fdkankan/tools/entity/UserIncrement.java

@@ -0,0 +1,117 @@
+package com.fdkankan.tools.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 用户增值权益表
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-22
+ */
+@Getter
+@Setter
+@TableName("t_user_increment")
+public class UserIncrement implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 权益包标识
+     */
+    @TableField("key_word")
+    private String keyWord;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 会员权益类型Id
+     */
+    @TableField("increment_type_id")
+    private Integer incrementTypeId;
+
+    /**
+     * 结束时间
+     */
+    @TableField("increment_end_time")
+    private Date incrementEndTime;
+
+    /**
+     * 是否过期(1过期,0未过期)
+     */
+    @TableField("is_expired")
+    private Integer isExpired;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 生效时间
+     */
+    @TableField("increment_start_time")
+    private Date incrementStartTime;
+
+    /**
+     * 权益级别  PR 年会员  SE 月会员
+     */
+    @TableField("member_levels")
+    private String memberLevels;
+
+    @TableField("month_qy")
+    private Integer monthQy;
+
+    @TableField("download_num")
+    private Integer downloadNum;
+
+    /**
+     * 代理商id
+     */
+    @TableField("agent_id")
+    private Integer agentId;
+
+
+}

+ 81 - 0
src/main/java/com/fdkankan/tools/generate/AutoGenerate.java

@@ -0,0 +1,81 @@
+package com.fdkankan.tools.generate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class AutoGenerate {
+
+
+    public static void main(String[] args) {
+
+        String path =System.getProperty("user.dir");
+
+        generate(path,"tools", getTables(new String[]{
+                "tb_scene"
+        }));
+
+    }
+
+    public static List<String> getTables(String [] tableNames){
+        return new ArrayList<>(Arrays.asList(tableNames));
+    }
+
+
+    public static void  generate(String path,String moduleName,  List<String> tables){
+        FastAutoGenerator.create("jdbc:mysql://47.112.166.173:3306/zhi_house",
+                "root","4dkankan4dage")
+                .globalConfig(builder -> {
+                    builder.author("")               //作者
+                            .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
+                            //.enableSwagger()           //开启swagger
+                            .commentDate("yyyy-MM-dd")
+                            .dateType(DateType.ONLY_DATE)
+                            .fileOverride();            //开启覆盖之前生成的文件
+
+                })
+                .packageConfig(builder -> {
+                    builder.parent("com.fdkankan")
+                            .moduleName(moduleName)
+                            .entity("entity")
+                            .service("service")
+                            .serviceImpl("service.impl")
+                            .controller("controller")
+                            .mapper("mapper")
+                            .xml("test.mapper")
+                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,path+"\\src\\main\\resources\\mapper\\"+moduleName));
+                })
+                .strategyConfig(builder -> {
+                    builder.addInclude(tables)
+                            .addTablePrefix("t_")
+
+                            .serviceBuilder()
+                            .formatServiceFileName("I%sService")
+                            .formatServiceImplFileName("%sServiceImpl")
+
+                            .entityBuilder()
+                            .enableLombok()
+                            .logicDeleteColumnName("rec_status")
+                            .enableTableFieldAnnotation()
+                            //.superClass(BaseEntity.class)
+
+                            .controllerBuilder()
+                            .formatFileName("%sController")
+                            .enableRestStyle()
+
+                            .mapperBuilder()
+                            .superClass(BaseMapper.class)
+                            .formatMapperFileName("I%sMapper")
+                            .enableMapperAnnotation()
+                            .formatXmlFileName("%sMapper");
+                })
+                // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+                .execute();
+    }
+}

+ 81 - 0
src/main/java/com/fdkankan/tools/generate/AutoGenerate2.java

@@ -0,0 +1,81 @@
+package com.fdkankan.tools.generate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class AutoGenerate2 {
+
+
+    public static void main(String[] args) {
+
+        String path =System.getProperty("user.dir");
+
+        generate(path,"tools", getTables(new String[]{
+                "tb_scene_3d_num_new"
+        }));
+
+    }
+
+    public static List<String> getTables(String [] tableNames){
+        return new ArrayList<>(Arrays.asList(tableNames));
+    }
+
+
+    public static void  generate(String path,String moduleName,  List<String> tables){
+        FastAutoGenerator.create("jdbc:mysql://120.24.202.7:3306/zhi_house",
+                "root","zfb@20210727%")
+                .globalConfig(builder -> {
+                    builder.author("")               //作者
+                            .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
+                            //.enableSwagger()           //开启swagger
+                            .commentDate("yyyy-MM-dd")
+                            .dateType(DateType.ONLY_DATE)
+                            .fileOverride();            //开启覆盖之前生成的文件
+
+                })
+                .packageConfig(builder -> {
+                    builder.parent("com.fdkankan")
+                            .moduleName(moduleName)
+                            .entity("entity")
+                            .service("service")
+                            .serviceImpl("service.impl")
+                            .controller("controller")
+                            .mapper("mapper")
+                            .xml("test.mapper")
+                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,path+"\\src\\main\\resources\\mapper\\"+moduleName));
+                })
+                .strategyConfig(builder -> {
+                    builder.addInclude(tables)
+                            .addTablePrefix("t_")
+
+                            .serviceBuilder()
+                            .formatServiceFileName("I%sService")
+                            .formatServiceImplFileName("%sServiceImpl")
+
+                            .entityBuilder()
+                            .enableLombok()
+                            .logicDeleteColumnName("rec_status")
+                            .enableTableFieldAnnotation()
+                            //.superClass(BaseEntity.class)
+
+                            .controllerBuilder()
+                            .formatFileName("%sController")
+                            .enableRestStyle()
+
+                            .mapperBuilder()
+                            .superClass(BaseMapper.class)
+                            .formatMapperFileName("I%sMapper")
+                            .enableMapperAnnotation()
+                            .formatXmlFileName("%sMapper");
+                })
+                // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
+                .execute();
+    }
+}

+ 26 - 0
src/main/java/com/fdkankan/tools/generate/GenerateZfbCode.java

@@ -0,0 +1,26 @@
+package com.fdkankan.tools.generate;
+
+import org.apache.commons.lang3.RandomStringUtils;
+
+import java.util.HashSet;
+
+public class GenerateZfbCode {
+
+    public static HashSet<String> generateOldZfbCode(Integer count ) {
+        String base = "zh";
+        HashSet<String> codes = new HashSet<>();
+        for (int i =0 ;i <=count ;i++){
+            codes.add(base + RandomStringUtils.random(10,true,true));
+        }
+       return codes;
+    }
+    public static HashSet<String> generateNewZfbCode(Integer count ) {
+        String base = "zfb-";
+        HashSet<String> codes = new HashSet<>();
+        for (int i =0 ;i <=count ;i++){
+            codes.add(base + RandomStringUtils.random(9,true,true));
+        }
+       return codes;
+    }
+
+}

+ 27 - 0
src/main/java/com/fdkankan/tools/httpClient/client/FdkkClient.java

@@ -0,0 +1,27 @@
+package com.fdkankan.tools.httpClient.client;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 获取四维看看相关数据
+ */
+public interface FdkkClient {
+
+    /**
+     * 重算
+     */
+    @Get("https://www.4dkankan.jp/api/scene/file/rebuildScene")
+    JSONObject rebuildScene(@Query("num") String num);
+    /**
+     * 升级
+     */
+    @Get("https://www.4dkankan.jp/ucenter/user/scene/upgradeToV4")
+    JSONObject upgradeToV4(@Query("num") String num);
+
+}

+ 23 - 0
src/main/java/com/fdkankan/tools/httpClient/client/ZfbClient.java

@@ -0,0 +1,23 @@
+package com.fdkankan.tools.httpClient.client;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.annotation.Get;
+import com.dtflys.forest.annotation.Query;
+
+/**
+ * 获取四维看看相关数据
+ */
+public interface ZfbClient {
+
+    /**
+     * 重算
+     */
+    @Get("https://zfb.4dkankan.com/api/scene/rebuildScene")
+    JSONObject rebuildScene(@Query("num") String num);
+    /**
+     * 升级
+     */
+    @Get("https://www.4dkankan.jp/ucenter/user/scene/upgradeToV4")
+    JSONObject upgradeToV4(@Query("num") String num);
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ICameraDetailMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.CameraDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机子表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Mapper
+public interface ICameraDetailMapper extends BaseMapper<CameraDetail> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ICameraMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.Camera;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Mapper
+public interface ICameraMapper extends BaseMapper<Camera> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneEditControlsMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.SceneEditControls;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface ISceneEditControlsMapper extends BaseMapper<SceneEditControls> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneEditInfoExtMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.SceneEditInfoExt;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface ISceneEditInfoExtMapper extends BaseMapper<SceneEditInfoExt> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneEditInfoMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.SceneEditInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface ISceneEditInfoMapper extends BaseMapper<SceneEditInfo> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneFileBuildMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.SceneFileBuild;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景文件建模表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface ISceneFileBuildMapper extends BaseMapper<SceneFileBuild> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/IScenePlusExtMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.ScenePlusExt;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface IScenePlusExtMapper extends BaseMapper<ScenePlusExt> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/IScenePlusMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.ScenePlus;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Mapper
+public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneProEditMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.SceneProEdit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * pro场景编辑数据表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Mapper
+public interface ISceneProEditMapper extends BaseMapper<SceneProEdit> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ISceneProMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.ScenePro;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * pro场景表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Mapper
+public interface ISceneProMapper extends BaseMapper<ScenePro> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbBuildingMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbBuilding;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Mapper
+public interface ITbBuildingMapper extends BaseMapper<TbBuilding> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbCameraInstanceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbCameraInstance;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Mapper
+public interface ITbCameraInstanceMapper extends BaseMapper<TbCameraInstance> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbHouseMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbHouse;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Mapper
+public interface ITbHouseMapper extends BaseMapper<TbHouse> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbScene3dNumNewMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbScene3dNumNew;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 八目场景编码表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Mapper
+public interface ITbScene3dNumNewMapper extends BaseMapper<TbScene3dNumNew> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbSceneMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbScene;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Mapper
+public interface ITbSceneMapper extends BaseMapper<TbScene> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbSceneNumMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbSceneNum;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Mapper
+public interface ITbSceneNumMapper extends BaseMapper<TbSceneNum> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbSceneProEditMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbSceneProEdit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * pro场景编辑数据表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Mapper
+public interface ITbSceneProEditMapper extends BaseMapper<TbSceneProEdit> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbSceneProMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbScenePro;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * pro场景表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Mapper
+public interface ITbSceneProMapper extends BaseMapper<TbScenePro> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/ITbUserMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.TbUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Mapper
+public interface ITbUserMapper extends BaseMapper<TbUser> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/IUserIncrementMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.UserIncrement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户增值权益表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-22
+ */
+@Mapper
+public interface IUserIncrementMapper extends BaseMapper<UserIncrement> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/tools/mapper/IUserMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.tools.mapper;
+
+import com.fdkankan.tools.entity.User;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户信息表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Mapper
+public interface IUserMapper extends BaseMapper<User> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ICameraDetailService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.CameraDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机子表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+public interface ICameraDetailService extends IService<CameraDetail> {
+
+}

+ 17 - 0
src/main/java/com/fdkankan/tools/service/ICameraService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.Camera;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+public interface ICameraService extends IService<Camera> {
+
+    Camera getBySnCode(String zfbSnCode);
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ISceneEditControlsService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.SceneEditControls;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface ISceneEditControlsService extends IService<SceneEditControls> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ISceneEditInfoExtService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.SceneEditInfoExt;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface ISceneEditInfoExtService extends IService<SceneEditInfoExt> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ISceneEditInfoService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.SceneEditInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface ISceneEditInfoService extends IService<SceneEditInfo> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ISceneFileBuildService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.SceneFileBuild;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 场景文件建模表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface ISceneFileBuildService extends IService<SceneFileBuild> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/IScenePlusExtService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.ScenePlusExt;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface IScenePlusExtService extends IService<ScenePlusExt> {
+
+}

+ 30 - 0
src/main/java/com/fdkankan/tools/service/IScenePlusService.java

@@ -0,0 +1,30 @@
+package com.fdkankan.tools.service;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fdkankan.tools.entity.*;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 场景主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+public interface IScenePlusService extends IService<ScenePlus> {
+
+
+    Boolean db1ToDb2(String num);
+
+    void db2Save(String type) ;
+
+    ScenePlus getByNum(String num);
+
+    Object db1ToDb2ByUserId(Long userId);
+
+    void updateSceneScheme(List<String> asList);
+
+}

+ 19 - 0
src/main/java/com/fdkankan/tools/service/ISceneProEditService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.SceneProEdit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景编辑数据表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+public interface ISceneProEditService extends IService<SceneProEdit> {
+
+    List<SceneProEdit> getByProIds(List<Long> proIds);
+}

+ 19 - 0
src/main/java/com/fdkankan/tools/service/ISceneProService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.ScenePro;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+public interface ISceneProService extends IService<ScenePro> {
+
+    List<ScenePro> getByUserId(Long cnUserId,Long cameraId);
+}

+ 21 - 0
src/main/java/com/fdkankan/tools/service/ITbBuildingService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbBuilding;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+public interface ITbBuildingService extends IService<TbBuilding> {
+
+    TbBuilding getDb2Id(Long buildingId);
+
+    TbBuilding getDb1Id(Long buildingId);
+
+    TbBuilding saveDb2(TbBuilding building);
+}

+ 17 - 0
src/main/java/com/fdkankan/tools/service/ITbCameraInstanceService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbCameraInstance;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+public interface ITbCameraInstanceService extends IService<TbCameraInstance> {
+
+    TbCameraInstance getBySnCode(String zfbSnCode);
+}

+ 21 - 0
src/main/java/com/fdkankan/tools/service/ITbHouseService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbHouse;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+public interface ITbHouseService extends IService<TbHouse> {
+
+    TbHouse getDb2Id(Long houseId);
+
+    TbHouse getDb1Id(Long houseId);
+
+    Long saveDb2(TbHouse tbHouse1);
+}

+ 17 - 0
src/main/java/com/fdkankan/tools/service/ITbScene3dNumNewService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbScene3dNumNew;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 八目场景编码表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+public interface ITbScene3dNumNewService extends IService<TbScene3dNumNew> {
+
+    void genDb2(Integer count);
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/ITbSceneNumService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbSceneNum;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashSet;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+public interface ITbSceneNumService extends IService<TbSceneNum> {
+
+
+    void genDb1(Integer count);
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/ITbSceneProEditService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbSceneProEdit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * pro场景编辑数据表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+public interface ITbSceneProEditService extends IService<TbSceneProEdit> {
+
+}

+ 24 - 0
src/main/java/com/fdkankan/tools/service/ITbSceneProService.java

@@ -0,0 +1,24 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.ScenePro;
+import com.fdkankan.tools.entity.SceneProEdit;
+import com.fdkankan.tools.entity.TbScenePro;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+public interface ITbSceneProService extends IService<TbScenePro> {
+
+
+    List<TbScenePro> getByNumList(List<String> numList);
+
+    List<TbScenePro> saveDb(List<ScenePro> scenePros, List<SceneProEdit> sceneProEdits, String zfbPhone, String zfbSnCode);
+}

+ 25 - 0
src/main/java/com/fdkankan/tools/service/ITbSceneService.java

@@ -0,0 +1,25 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbScene;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+public interface ITbSceneService extends IService<TbScene> {
+
+    List<TbScene> getByUserId(Long userId);
+
+    List<TbScene> getByNumListDb2(List<String> numList);
+
+    void saveDb2(TbScene tbScene);
+
+    List<TbScene> getByUserIdDb2(Long userId);
+}

+ 17 - 0
src/main/java/com/fdkankan/tools/service/ITbUserService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.TbUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+public interface ITbUserService extends IService<TbUser> {
+
+    TbUser getByUserName(String zfbPhone);
+}

+ 16 - 0
src/main/java/com/fdkankan/tools/service/IUserIncrementService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.UserIncrement;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户增值权益表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-22
+ */
+public interface IUserIncrementService extends IService<UserIncrement> {
+
+}

+ 17 - 0
src/main/java/com/fdkankan/tools/service/IUserService.java

@@ -0,0 +1,17 @@
+package com.fdkankan.tools.service;
+
+import com.fdkankan.tools.entity.User;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 用户信息表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+public interface IUserService extends IService<User> {
+
+    User getByUserName(String cnPhone);
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/CameraDetailServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.CameraDetail;
+import com.fdkankan.tools.mapper.ICameraDetailMapper;
+import com.fdkankan.tools.service.ICameraDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 相机子表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Service
+public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, CameraDetail> implements ICameraDetailService {
+
+}

+ 27 - 0
src/main/java/com/fdkankan/tools/service/impl/CameraServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.Camera;
+import com.fdkankan.tools.mapper.ICameraMapper;
+import com.fdkankan.tools.service.ICameraService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 相机主表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Service
+public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implements ICameraService {
+
+    @Override
+    public Camera getBySnCode(String zfbSnCode) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Camera::getSnCode,zfbSnCode);
+        return this.getOne(wrapper);
+    }
+}

+ 67 - 0
src/main/java/com/fdkankan/tools/service/impl/CnToZfbService.java

@@ -0,0 +1,67 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.*;
+import com.fdkankan.tools.httpClient.client.ZfbClient;
+import com.fdkankan.tools.service.*;
+import com.fdkankan.tools.utils.OssToOssUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class CnToZfbService {
+    @Autowired
+    ISceneProService cnSceneProService;
+    @Autowired
+    ISceneProEditService cnSceneProEditService;
+    @Autowired
+    IUserService userService;
+
+    @Autowired
+    ITbSceneProService zfbSceneProService;
+    @Autowired
+    ITbSceneProEditService zfbSceneProEditService;
+    @Autowired
+    OssToOssUtil ossToOssUtil;
+    @Autowired
+    ZfbClient zfbClient;
+    @Autowired
+    ICameraService cameraService;
+
+
+    public void cnSceneToZfb(String cnPhone,String zfbPhone,String zfbSnCode) {
+        User user = userService.getByUserName(cnPhone);
+        if(user == null){
+            log.info("db1-user-not-exist--chPhone:{}",cnPhone);
+            return;
+        }
+        Camera camera = cameraService.getBySnCode(zfbSnCode);
+        if(camera == null){
+            log.info("db1-camera-not-exist--zfbSnCode:{}",zfbSnCode);
+            return;
+        }
+        List<ScenePro> scenePros = cnSceneProService.getByUserId(user.getId(),camera.getId());
+        if(scenePros.size() <=0){
+            log.info("db1-scenePro-not-exist--user:{}",user);
+            return;
+        }
+        List<Long> proIds = scenePros.stream().map(ScenePro::getId).collect(Collectors.toList());
+        List<SceneProEdit> sceneProEdits = cnSceneProEditService.getByProIds(proIds);
+
+        List<TbScenePro> list = zfbSceneProService.saveDb(scenePros, sceneProEdits, zfbPhone, zfbSnCode);
+
+        if(list ==null || list.size() <=0){
+            log.info("db2-scenePro-not-in--user:{}",user);
+            return;
+        }
+        for (TbScenePro tbScenePro : list) {
+            ossToOssUtil.awsToOss(tbScenePro.getDataSource(),tbScenePro.getNum(),"zfb");
+            zfbClient.rebuildScene(tbScenePro.getNum());
+        }
+
+    }
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneEditControlsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.SceneEditControls;
+import com.fdkankan.tools.mapper.ISceneEditControlsMapper;
+import com.fdkankan.tools.service.ISceneEditControlsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+public class SceneEditControlsServiceImpl extends ServiceImpl<ISceneEditControlsMapper, SceneEditControls> implements ISceneEditControlsService {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneEditInfoExtServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.SceneEditInfoExt;
+import com.fdkankan.tools.mapper.ISceneEditInfoExtMapper;
+import com.fdkankan.tools.service.ISceneEditInfoExtService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+public class SceneEditInfoExtServiceImpl extends ServiceImpl<ISceneEditInfoExtMapper, SceneEditInfoExt> implements ISceneEditInfoExtService {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneEditInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.SceneEditInfo;
+import com.fdkankan.tools.mapper.ISceneEditInfoMapper;
+import com.fdkankan.tools.service.ISceneEditInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper, SceneEditInfo> implements ISceneEditInfoService {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneFileBuildServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.SceneFileBuild;
+import com.fdkankan.tools.mapper.ISceneFileBuildMapper;
+import com.fdkankan.tools.service.ISceneFileBuildService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 场景文件建模表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+public class SceneFileBuildServiceImpl extends ServiceImpl<ISceneFileBuildMapper, SceneFileBuild> implements ISceneFileBuildService {
+
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/ScenePlusExtServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.ScenePlusExt;
+import com.fdkankan.tools.mapper.IScenePlusExtMapper;
+import com.fdkankan.tools.service.IScenePlusExtService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+public class ScenePlusExtServiceImpl extends ServiceImpl<IScenePlusExtMapper, ScenePlusExt> implements IScenePlusExtService {
+
+}

+ 436 - 0
src/main/java/com/fdkankan/tools/service/impl/ScenePlusServiceImpl.java

@@ -0,0 +1,436 @@
+package com.fdkankan.tools.service.impl;
+import java.io.File;
+import java.util.*;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.lang.hash.Hash;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fdkankan.tools.entity.*;
+import com.fdkankan.tools.httpClient.client.FdkkClient;
+import com.fdkankan.tools.mapper.IScenePlusMapper;
+import com.fdkankan.tools.service.*;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.tools.utils.OssToOssUtil;
+import com.fdkankan.tools.utils.UploadToAws;
+import com.fdkankan.tools.utils.UploadToOss;
+import com.fdkankan.tools.utils.UploadToOss2;
+import javafx.scene.Scene;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.FactoryBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 场景主表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-08
+ */
+@Service
+@Slf4j
+public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlus> implements IScenePlusService {
+
+
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
+    @Autowired
+    ISceneEditControlsService sceneEditControlsService;
+    @Autowired
+    ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    ISceneEditInfoExtService sceneEditInfoExtService;
+    @Autowired
+    ISceneFileBuildService sceneFileBuildService;
+    @Autowired
+    ISceneProService sceneProService;
+    @Autowired
+    ISceneProEditService sceneProEditService;
+    @Autowired
+    ICameraService cameraService;
+    @Autowired
+    ICameraDetailService cameraDetailService;
+    @Autowired
+    OssToOssUtil ossToOssUtil;
+    @Autowired
+    FdkkClient fdkkClient;
+
+    @Value("${db1.fyun.host}")
+    private String db1Host;
+    @Value("${db2.fyun.host}")
+    private String db2Host;
+    @Value("${db1.main}")
+    private String db1main;
+    @Value("${db2.main}")
+    private String db2main;
+
+    static HashMap<String,ScenePlus> plusMap = new HashMap<>();
+    static HashMap<String,ScenePlusExt> extMap = new HashMap<>();
+    static HashMap<String,SceneEditInfo> editInfoMap = new HashMap<>();
+    static HashMap<String,SceneEditInfoExt> editInfoExtMap = new HashMap<>();
+    static HashMap<String,SceneEditControls> editControlsMap = new HashMap<>();
+    static HashMap<String,ScenePro> proMap = new HashMap<>();
+    static HashMap<String,SceneProEdit> proEditMap = new HashMap<>();
+    static HashMap<Long,Camera> cameraMap = new HashMap<>();
+    static HashMap<Long,CameraDetail> cameraDetailMap = new HashMap<>();
+
+    @Override
+    public Object db1ToDb2ByUserId(Long userId) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlus::getUserId,userId);
+        List<ScenePlus> list = this.list(wrapper);
+        for (ScenePlus scenePlus : list) {
+            db1ToDb2(scenePlus.getNum());
+        }
+        return null;
+    }
+
+    @Override
+    public Boolean db1ToDb2(String num) {
+
+        ScenePro scenePro = this.getByNumPro(num);
+        if(scenePro != null){
+            SceneProEdit sceneProEdit = this.getEditByProId(scenePro.getId());
+            if(sceneProEdit == null){
+                return false;
+            }
+            proMap.put(num,scenePro);
+            proEditMap.put(num,sceneProEdit);
+            this.setCameraMap(scenePro.getCameraId());
+            return true;
+        }
+
+        ScenePlus scenePlus = this.getByNum(num);
+        if(scenePlus == null){
+            return false;
+        }
+        ScenePlusExt scenePlusExt = this.getPlusExtByPlusId(scenePlus.getId());
+        if(scenePlusExt == null){
+            return false;
+        }
+        SceneEditInfo sceneEditInfo = this.getEditInfoByPlusId(scenePlus.getId());
+        if(sceneEditInfo == null){
+            return false;
+        }
+        SceneEditInfoExt sceneEditInfoExt = this.getEditInfoExtByPlusId(sceneEditInfo.getId());
+        if(sceneEditInfoExt == null){
+            return false;
+        }
+        SceneEditControls sceneEditControls = this.getEditControlsByPlusId(sceneEditInfo.getId());
+        if(sceneEditControls == null){
+            return false;
+        }
+        this.setCameraMap(scenePlus.getCameraId());
+        plusMap.put(num,scenePlus);
+        extMap.put(num,scenePlusExt);
+        editInfoMap.put(num,sceneEditInfo);
+        editInfoExtMap.put(num,sceneEditInfoExt);
+        editControlsMap.put(num,sceneEditControls);
+
+        return true;
+    }
+
+    private void setCameraMap(Long cameraId) {
+        if(cameraMap.get(cameraId) == null){
+            Camera camera = this.getCameraById(cameraId);
+            if(camera == null){
+                return ;
+            }
+            CameraDetail cameraDetail = this.getCameraDetailByCameraId(cameraId);
+            if(cameraDetail == null){
+                return;
+            }
+            cameraMap.put(camera.getId(),camera);
+            cameraDetailMap.put(camera.getId(),cameraDetail);
+        }
+    }
+
+
+    @Override
+    @DS("flowable")
+    public void db2Save(String type) {
+        for (String num : plusMap.keySet()) {
+            this.db2Save(plusMap.get(num),extMap.get(num),editInfoMap.get(num),
+                    editInfoExtMap.get(num),editControlsMap.get(num),type);
+        }
+        for (String num : proMap.keySet()) {
+            this.db2Save(proMap.get(num),proEditMap.get(num),type);
+        }
+    }
+
+
+
+    @DS("flowable")
+    public void db2Save(ScenePro scenePro,SceneProEdit sceneProEdit,String type) {
+        Long newCameraId = this.saveCamera(scenePro.getCameraId());
+        ScenePro pro = this.getByNumPro(scenePro.getNum());
+        if(pro != null){
+            if(pro.getStatus() == -1){
+                ossToOssUtil.awsToOss(scenePro.getDataSource(), scenePro.getNum(),type);
+                if(pro.getIsUpgrade() == 0 && pro.getSceneSource() == 4){
+                    fdkkClient.upgradeToV4(scenePro.getNum());
+                    waitNumUp(scenePro.getNum());
+                }
+                fdkkClient.rebuildScene(scenePro.getNum());
+            }
+            return;
+        }
+        scenePro.setId(null);
+        scenePro.setUserId(null);
+        scenePro.setCameraId(newCameraId);
+        String webSite = scenePro.getWebSite();
+        String newWebSite = webSite.replaceAll(db1main,db2main);
+        String thumb = scenePro.getThumb();
+        String newThumb = thumb.replaceAll(db1Host,db2Host);
+        String videos = scenePro.getVideos();
+        String newVideos = videos.replaceAll(db1Host,db2Host);
+        scenePro.setWebSite(newWebSite);
+        scenePro.setThumb(newThumb);
+        scenePro.setVideos(newVideos);
+        scenePro.setSceneScheme(10);
+        sceneProService.save(scenePro);
+        sceneProEdit.setId(null);
+        sceneProEdit.setProId(scenePro.getId());
+        sceneProEditService.save(sceneProEdit);
+        this.fileBuild(scenePro.getDataSource(),scenePro.getNum(),type,"v3");
+    }
+
+    @DS("flowable")
+    private void waitNumUp(String num) {
+        ScenePro pro = this.getByNumProV3(num);
+        while (pro.getIsUpgrade() != 1){
+            try {
+                pro = this.getByNumProV3(num);
+                log.info("v3场景:{}未升级完成,等待中。。。",pro.getNum());
+                Thread.sleep(2000L);
+            }catch ( Exception e){
+
+            }
+        }
+        log.info("v3场景:{}升级完成",pro.getNum());
+
+    }
+
+
+
+    @DS("flowable")
+    private Long saveCamera(Long cameraId) {
+        Camera camera = cameraMap.get(cameraId);
+        CameraDetail cameraDetail = cameraDetailMap.get(cameraId);
+
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Camera::getSnCode,camera.getSnCode());
+        Camera dbCamera = cameraService.getOne(wrapper);
+        if(dbCamera!=null){
+            return dbCamera.getId();
+        }
+
+        camera.setId(null);
+        cameraService.save(camera);
+
+        cameraDetail.setId(null);
+        cameraDetail.setCameraId(camera.getId());
+        cameraDetail.setUserId(null);
+        cameraDetail.setOutTime(new Date());
+        cameraDetail.setAddress(camera.getSnCode());
+        cameraDetail.setAddress(camera.getSnCode());
+        cameraDetail.setTotalSpace(0L);
+        cameraDetail.setUsedSpace(0L);
+        cameraDetailService.save(cameraDetail);
+        return camera.getId();
+    }
+
+    @DS("flowable")
+    public void fileBuild(String dataSource,String num,String type,String version) {
+        SceneFileBuild sceneFileBuild = new SceneFileBuild();
+        String[] split = dataSource.split("/");
+        sceneFileBuild.setChildName(split[3]);
+        sceneFileBuild.setFileId(split[4]);
+        sceneFileBuild.setUnicode(split[5]);
+        sceneFileBuild.setUploadStatus(0);
+        sceneFileBuild.setBuildStatus(3);
+        sceneFileBuild.setTotalPicNum(1000);
+        sceneFileBuild.setChunks(3);
+        sceneFileBuild.setCreateTime(new Date());
+        sceneFileBuild.setRecStatus("A");
+        sceneFileBuild.setUpdateTime(new Date());
+        sceneFileBuildService.save(sceneFileBuild);
+
+        ossToOssUtil.awsToOss(dataSource,num,type);
+        if(version.equals("v3") && num.contains("SS-")){
+            fdkkClient.upgradeToV4(num);
+            waitNumUp(num);
+
+        }
+        fdkkClient.rebuildScene(num);
+    }
+
+    @DS("flowable")
+    public void db2Save(ScenePlus scenePlus, ScenePlusExt scenePlusExt,
+                        SceneEditInfo sceneEditInfo, SceneEditInfoExt sceneEditInfoExt,
+                        SceneEditControls sceneEditControls,String type) {
+        ScenePlus plus = this.getByNum(scenePlus.getNum());
+        if(plus != null){
+            ScenePlusExt scenePlusExt1 = this.getPlusExtByPlusId(plus.getId());
+            if(scenePlusExt1 !=null  ){
+                Boolean reBuild = false;
+                if(scenePlusExt1.getSceneScheme() !=10){
+                    LambdaUpdateWrapper<ScenePlusExt> wrapper = new LambdaUpdateWrapper<>();
+                    wrapper.eq(ScenePlusExt::getId,scenePlusExt1.getId());
+                    wrapper.set(ScenePlusExt::getSceneScheme,10);
+                    wrapper.set(ScenePlusExt::getSceneKind,"tiles");
+                    scenePlusExtService.update(wrapper);
+                    reBuild = true;
+                }
+                if(plus.getSceneStatus() == -1 || reBuild){
+                    ossToOssUtil.awsToOss(scenePlusExt1.getDataSource(), plus.getNum(),type);
+                    fdkkClient.rebuildScene(plus.getNum());
+                }
+            }
+            return;
+        }
+        Long newCameraId = this.saveCamera(scenePlus.getCameraId());
+        scenePlus.setCameraId(newCameraId);
+        scenePlus.setId(null);
+        scenePlus.setUserId(null);
+        scenePlusExt.setId(null);
+        sceneEditInfo.setId(null);
+        sceneEditInfoExt.setId(null);
+        sceneEditControls.setId(null);
+        this.save(scenePlus);
+        Long plusId = scenePlus.getId();
+
+        scenePlusExt.setPlusId(plusId);
+        scenePlusExt.setYunFileBucket(null);
+        if(scenePlusExt.getSceneKind().equals("face")){
+            scenePlusExt.setSceneKind("tiles");
+        }
+        scenePlusExt.setSceneScheme(10);
+        String webSite = scenePlusExt.getWebSite();
+        String newWebSite = webSite.replaceAll(db1main,db2main);
+        String thumb = scenePlusExt.getThumb();
+        String newThumb = thumb.replaceAll(db1Host,db2Host);
+        String videos = scenePlusExt.getVideos();
+        String newVideos = videos.replaceAll(db1Host,db2Host);
+
+        scenePlusExt.setWebSite(newWebSite);
+        scenePlusExt.setThumb(newThumb);
+        scenePlusExt.setVideos(newVideos);
+
+        scenePlusExtService.save(scenePlusExt);
+
+        sceneEditInfo.setScenePlusId(plusId);
+        sceneEditInfo.setFloorPlanUser(0);
+        sceneEditInfo.setTags(0);
+        sceneEditInfo.setIsUploadObj(0);
+        sceneEditInfo.setBuildVideoStatus(0);
+        sceneEditInfo.setFloorPlanUpload(null);
+        sceneEditInfoService.save(sceneEditInfo);
+
+        sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
+        sceneEditInfoExt.setScenePlusId(plusId);
+        sceneEditInfoExt.setTours(0);
+        sceneEditInfoExt.setMosaic(0);
+        sceneEditInfoExt.setLinks(0);
+        sceneEditInfoExt.setFilters(0);
+        sceneEditInfoExt.setSurveillances(0);
+        sceneEditInfoExtService.save(sceneEditInfoExt);
+
+        sceneEditControls.setEditInfoId(sceneEditInfo.getId());
+        sceneEditControlsService.save(sceneEditControls);
+
+        this.fileBuild(scenePlusExt.getDataSource(),scenePlus.getNum(),type,"v4");
+
+    }
+
+
+
+
+    @Override
+    @DS("flowable")
+    public void updateSceneScheme(List<String> asList) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlus::getNum,asList);
+        List<ScenePlus> list = this.list(wrapper);
+        for (ScenePlus scenePlus : list) {
+            ScenePlusExt scenePlusExt = this.getPlusExtByPlusId(scenePlus.getId());
+            if(scenePlusExt != null && scenePlusExt.getSceneScheme() !=10){
+                LambdaUpdateWrapper<ScenePlusExt> updateWrapper = new LambdaUpdateWrapper<>();
+                updateWrapper.eq(ScenePlusExt::getId,scenePlusExt.getId());
+                updateWrapper.set(ScenePlusExt::getSceneScheme,10);
+                updateWrapper.set(ScenePlusExt::getSceneKind,"tiles");
+                scenePlusExtService.update(updateWrapper);
+                fdkkClient.rebuildScene(scenePlus.getNum());
+            }
+        }
+    }
+
+    public SceneEditInfoExt getEditInfoExtByPlusId(Long id) {
+        LambdaQueryWrapper<SceneEditInfoExt> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneEditInfoExt::getEditInfoId,id);
+        return sceneEditInfoExtService.getOne(wrapper);
+    }
+
+    public SceneEditInfo getEditInfoByPlusId(Long plusId) {
+        LambdaQueryWrapper<SceneEditInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneEditInfo::getScenePlusId,plusId);
+        return sceneEditInfoService.getOne(wrapper);
+    }
+
+    public SceneEditControls getEditControlsByPlusId(Long editInfoId) {
+        LambdaQueryWrapper<SceneEditControls> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneEditControls::getEditInfoId,editInfoId);
+        return sceneEditControlsService.getOne(wrapper);
+    }
+
+    public ScenePlusExt getPlusExtByPlusId(Long plusId) {
+        LambdaQueryWrapper<ScenePlusExt> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlusExt::getPlusId,plusId);
+        return scenePlusExtService.getOne(wrapper);
+    }
+
+    @Override
+    public ScenePlus getByNum(String num) {
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlus::getNum,num);
+        return this.getOne(wrapper);
+    }
+
+    private SceneProEdit getEditByProId(Long proId) {
+        LambdaQueryWrapper<SceneProEdit> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneProEdit::getProId,proId);
+        return sceneProEditService.getOne(wrapper);
+    }
+
+    private ScenePro getByNumPro(String num) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getNum,num);
+        wrapper.eq(ScenePro::getIsUpgrade,0);
+        return sceneProService.getOne(wrapper);
+    }
+    private ScenePro getByNumProV3(String num) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getNum,num);
+        return sceneProService.getOne(wrapper);
+    }
+
+    private CameraDetail getCameraDetailByCameraId(Long cameraId) {
+        LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraDetail::getCameraId,cameraId);
+        return cameraDetailService.getOne(wrapper);
+    }
+
+    private Camera getCameraById(Long cameraId) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Camera::getId,cameraId);
+        return cameraService.getOne(wrapper);
+    }
+
+}

+ 33 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneProEditServiceImpl.java

@@ -0,0 +1,33 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.SceneProEdit;
+import com.fdkankan.tools.mapper.ISceneProEditMapper;
+import com.fdkankan.tools.service.ISceneProEditService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景编辑数据表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Service
+public class SceneProEditServiceImpl extends ServiceImpl<ISceneProEditMapper, SceneProEdit> implements ISceneProEditService {
+
+    @Override
+    public List<SceneProEdit> getByProIds(List<Long> proIds) {
+        if(proIds.size() >0){
+            LambdaQueryWrapper<SceneProEdit> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(SceneProEdit::getProId,proIds);
+            return this.list(wrapper);
+        }
+        return new ArrayList<>();
+    }
+}

+ 32 - 0
src/main/java/com/fdkankan/tools/service/impl/SceneProServiceImpl.java

@@ -0,0 +1,32 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.ScenePro;
+import com.fdkankan.tools.mapper.ISceneProMapper;
+import com.fdkankan.tools.service.ISceneProService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * pro场景表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-10
+ */
+@Service
+public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
+
+    @Override
+    public List<ScenePro> getByUserId(Long cnUserId,Long cameraId) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getUserId,cnUserId);
+        wrapper.eq(ScenePro::getCameraId,cameraId);
+        wrapper.eq(ScenePro::getStatus,-2);
+        wrapper.eq(ScenePro::getPayStatus,1);
+        return this.list(wrapper);
+    }
+}

+ 42 - 0
src/main/java/com/fdkankan/tools/service/impl/TbBuildingServiceImpl.java

@@ -0,0 +1,42 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbBuilding;
+import com.fdkankan.tools.mapper.ITbBuildingMapper;
+import com.fdkankan.tools.service.ITbBuildingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Service
+public class TbBuildingServiceImpl extends ServiceImpl<ITbBuildingMapper, TbBuilding> implements ITbBuildingService {
+
+    @DS("flowable")
+    @Override
+    public TbBuilding getDb2Id(Long buildingId) {
+        return this.getById(buildingId);
+    }
+
+
+    @Override
+    public TbBuilding getDb1Id(Long buildingId) {
+        return this.getById(buildingId);
+    }
+
+
+    @DS("flowable")
+    @Override
+    public TbBuilding saveDb2(TbBuilding building) {
+        building.setId(null);
+        this.save(building);
+        return building;
+    }
+}

+ 29 - 0
src/main/java/com/fdkankan/tools/service/impl/TbCameraInstanceServiceImpl.java

@@ -0,0 +1,29 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbCameraInstance;
+import com.fdkankan.tools.mapper.ITbCameraInstanceMapper;
+import com.fdkankan.tools.service.ITbCameraInstanceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Service
+public class TbCameraInstanceServiceImpl extends ServiceImpl<ITbCameraInstanceMapper, TbCameraInstance> implements ITbCameraInstanceService {
+
+    @DS("flowable")
+    @Override
+    public TbCameraInstance getBySnCode(String zfbSnCode) {
+        LambdaQueryWrapper<TbCameraInstance> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbCameraInstance::getSnCode,zfbSnCode);
+        return this.getOne(wrapper);
+    }
+}

+ 39 - 0
src/main/java/com/fdkankan/tools/service/impl/TbHouseServiceImpl.java

@@ -0,0 +1,39 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fdkankan.tools.entity.TbHouse;
+import com.fdkankan.tools.mapper.ITbHouseMapper;
+import com.fdkankan.tools.service.ITbHouseService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Service
+public class TbHouseServiceImpl extends ServiceImpl<ITbHouseMapper, TbHouse> implements ITbHouseService {
+
+    @DS("flowable")
+    @Override
+    public TbHouse getDb2Id(Long houseId) {
+        return this.getById(houseId);
+    }
+
+    @Override
+    public TbHouse getDb1Id(Long houseId) {
+        return this.getById(houseId);
+    }
+
+    @DS("flowable")
+    @Override
+    public Long saveDb2(TbHouse tbHouse1) {
+        tbHouse1.setId(null);
+        this.save(tbHouse1);
+        return tbHouse1.getId();
+    }
+}

+ 72 - 0
src/main/java/com/fdkankan/tools/service/impl/TbScene3dNumNewServiceImpl.java

@@ -0,0 +1,72 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbScene3dNumNew;
+import com.fdkankan.tools.entity.TbSceneNum;
+import com.fdkankan.tools.generate.GenerateZfbCode;
+import com.fdkankan.tools.mapper.ITbScene3dNumNewMapper;
+import com.fdkankan.tools.service.ITbScene3dNumNewService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * <p>
+ * 八目场景编码表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Service
+public class TbScene3dNumNewServiceImpl extends ServiceImpl<ITbScene3dNumNewMapper, TbScene3dNumNew> implements ITbScene3dNumNewService {
+
+    public static final Logger log = LoggerFactory.getLogger("timeLogger");
+
+
+    @DS("flowable")
+    @Override
+    public void genDb2(Integer count) {
+        Long noUsedCount = this.checkGen();
+        if(noUsedCount >10000){
+            log.info("task-genNew--未使用的场景码数大于1W,退出生成");
+            return;
+        }
+
+        HashSet<String> strings = GenerateZfbCode.generateNewZfbCode(count);
+        for (String code : strings) {
+            List<TbScene3dNumNew> dbCodes = this.getByCode(code);
+            if(dbCodes.size() >0){
+                continue;
+            }
+            TbScene3dNumNew tbSceneNum = new TbScene3dNumNew();
+            tbSceneNum.setUsed(0);
+            tbSceneNum.setCode(code);
+            tbSceneNum.setRecStatus("A");
+            tbSceneNum.setUpdateTime(new Date());
+            tbSceneNum.setCreateTime(new Date());
+            this.save(tbSceneNum);
+        }
+        log.info("task-genNew--生成数量:{}",strings.size());
+    }
+
+    @DS("flowable")
+    private Long checkGen() {
+        LambdaQueryWrapper<TbScene3dNumNew> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbScene3dNumNew::getUsed,0);
+        return this.count(wrapper);
+    }
+
+    @DS("flowable")
+    private List<TbScene3dNumNew> getByCode(String code) {
+        LambdaQueryWrapper<TbScene3dNumNew> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbScene3dNumNew::getCode,code);
+        return this.list(wrapper);
+    }
+}

+ 64 - 0
src/main/java/com/fdkankan/tools/service/impl/TbSceneNumServiceImpl.java

@@ -0,0 +1,64 @@
+package com.fdkankan.tools.service.impl;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbSceneNum;
+import com.fdkankan.tools.generate.GenerateZfbCode;
+import com.fdkankan.tools.mapper.ITbSceneNumMapper;
+import com.fdkankan.tools.service.ITbSceneNumService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.HashSet;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-19
+ */
+@Service
+public class TbSceneNumServiceImpl extends ServiceImpl<ITbSceneNumMapper, TbSceneNum> implements ITbSceneNumService {
+
+    public static final Logger log = LoggerFactory.getLogger("timeLogger");
+
+
+    @Override
+    public void  genDb1(Integer count) {
+        Long noUsedCount = this.checkGen();
+        if(noUsedCount >10000){
+            log.info("task-genOld--未使用的场景码数大于1W,退出生成");
+            return;
+        }
+        HashSet<String> strings = GenerateZfbCode.generateOldZfbCode(count);
+        for (String code : strings) {
+            List<TbSceneNum> dbCodes = this.getByCode(code);
+            if(dbCodes.size() >0){
+                continue;
+            }
+            TbSceneNum tbSceneNum = new TbSceneNum();
+            tbSceneNum.setUsed(0);
+            tbSceneNum.setCreateTime(new Date());
+            tbSceneNum.setCode(code);
+            this.save(tbSceneNum);
+        }
+        log.info("task-genOld--生成数量:{}",strings.size());
+    }
+
+    private Long checkGen() {
+        LambdaQueryWrapper<TbSceneNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbSceneNum::getUsed,0);
+        return this.count(wrapper);
+    }
+
+    private List<TbSceneNum> getByCode(String code) {
+        LambdaQueryWrapper<TbSceneNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbSceneNum::getCode,code);
+        return this.list(wrapper);
+    }
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/TbSceneProEditServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.TbSceneProEdit;
+import com.fdkankan.tools.mapper.ITbSceneProEditMapper;
+import com.fdkankan.tools.service.ITbSceneProEditService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * pro场景编辑数据表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Service
+public class TbSceneProEditServiceImpl extends ServiceImpl<ITbSceneProEditMapper, TbSceneProEdit> implements ITbSceneProEditService {
+
+}

+ 121 - 0
src/main/java/com/fdkankan/tools/service/impl/TbSceneProServiceImpl.java

@@ -0,0 +1,121 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.*;
+import com.fdkankan.tools.mapper.ITbSceneProMapper;
+import com.fdkankan.tools.service.*;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * pro场景表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Service
+@Slf4j
+public class TbSceneProServiceImpl extends ServiceImpl<ITbSceneProMapper, TbScenePro> implements ITbSceneProService {
+
+
+    @Value("${db1.fyun.host}")
+    private String db1Host;
+    @Value("${db2.fyun.host}")
+    private String db2Host;
+    @Value("${db1.main}")
+    private String db1main;
+    @Value("${db2.main}")
+    private String db2main;
+
+    @Autowired
+    ITbUserService tbUserService;
+    @Autowired
+    ITbCameraInstanceService tbCameraInstanceService;
+    @Autowired
+    ITbSceneProEditService tbSceneProEditService;
+
+    @DS("flowable")
+    @Override
+    public List<TbScenePro> getByNumList(List<String> numList) {
+        if(numList.size() >0){
+            LambdaQueryWrapper<TbScenePro> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(TbScenePro::getNum,numList);
+            return this.list(wrapper);
+        }
+      return new ArrayList<>();
+    }
+
+
+    @DS("flowable")
+    @Override
+    public List<TbScenePro> saveDb(List<ScenePro> scenePros, List<SceneProEdit> sceneProEdits, String zfbPhone, String zfbSnCode) {
+
+        TbUser tbUser = tbUserService.getByUserName(zfbPhone);
+        if(tbUser == null){
+            log.info("db2-user-not-exist--zfbPhone:{}",zfbPhone);
+            return null;
+        }
+        TbCameraInstance cameraInstance = tbCameraInstanceService.getBySnCode(zfbSnCode);
+        if(cameraInstance == null){
+            log.info("db2-cameraInstance-not-exist--zfbSnCode:{}",zfbSnCode);
+            return null;
+        }
+        HashMap<Long,SceneProEdit> editMap = new HashMap<>();
+        sceneProEdits.forEach(entity -> editMap.put(entity.getProId(),entity));
+
+        List<String> numList = scenePros.stream().map(ScenePro::getNum).collect(Collectors.toList());
+
+        List<TbScenePro> zfbSceneList = this.getByNumList(numList);
+        HashMap<String,TbScenePro> tbMap = new HashMap<>();
+        zfbSceneList.forEach(entity -> tbMap.put(entity.getNum(),entity));
+
+        List<String> zfbNumList = zfbSceneList.stream().map(TbScenePro::getNum).collect(Collectors.toList());
+        List<TbScenePro> list = new ArrayList<>();
+        for (ScenePro scenePro : scenePros) {
+            if(zfbNumList.contains(scenePro.getNum())){
+                log.info("zfb-db-exist:num:{}",scenePro.getNum());
+                TbScenePro tbScenePro = tbMap.get(scenePro.getNum());
+                if(tbScenePro == null){
+                    log.info("zfb-db-map-noexist:num:{}",scenePro.getNum());
+                    continue;
+                }
+                list.add(tbScenePro);
+                continue;
+            }
+            TbScenePro tbScenePro = new TbScenePro();
+            BeanUtils.copyProperties(scenePro,tbScenePro);
+            tbScenePro.setWebSite(scenePro.getWebSite().replaceAll(db1main,db2main));
+            tbScenePro.setVideos(scenePro.getVideos().replaceAll(db1main,db2main));
+            tbScenePro.setId(null);
+            tbScenePro.setUserId(tbUser.getId());
+            tbScenePro.setCameraId(cameraInstance.getId());
+            tbScenePro.setDataSource(scenePro.getDataSource());
+            tbScenePro.setStatus(0);
+            this.save(tbScenePro);
+            list.add(tbScenePro);
+
+
+            SceneProEdit sceneProEdit = editMap.get(scenePro.getId());
+            TbSceneProEdit tbSceneProEdit = new TbSceneProEdit();
+            BeanUtils.copyProperties(sceneProEdit,tbSceneProEdit);
+            tbSceneProEdit.setId(null);
+            tbSceneProEdit.setProId(tbScenePro.getId());
+            tbSceneProEditService.save(tbSceneProEdit);
+
+        }
+        return list;
+    }
+}

+ 51 - 0
src/main/java/com/fdkankan/tools/service/impl/TbSceneServiceImpl.java

@@ -0,0 +1,51 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbScene;
+import com.fdkankan.tools.mapper.ITbSceneMapper;
+import com.fdkankan.tools.service.ITbSceneService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-04
+ */
+@Service
+public class TbSceneServiceImpl extends ServiceImpl<ITbSceneMapper, TbScene> implements ITbSceneService {
+
+    @Override
+    public List<TbScene> getByUserId(Long userId) {
+        LambdaQueryWrapper<TbScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbScene::getUserId,userId);
+        wrapper.le(TbScene::getCreateTime,"2023-03-01 00:00:00");
+        return this.list(wrapper);
+    }
+
+    @DS("flowable")
+    @Override
+    public List<TbScene> getByNumListDb2(List<String> numList) {
+        LambdaQueryWrapper<TbScene> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(TbScene::getNum,numList);
+        return this.list(wrapper);
+    }
+
+    @DS("flowable")
+    @Override
+    public void saveDb2(TbScene tbScene) {
+        this.save(tbScene);
+    }
+
+    @DS("flowable")
+    @Override
+    public List<TbScene> getByUserIdDb2(Long userId) {
+        return this.list();
+    }
+}

+ 29 - 0
src/main/java/com/fdkankan/tools/service/impl/TbUserServiceImpl.java

@@ -0,0 +1,29 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.TbUser;
+import com.fdkankan.tools.mapper.ITbUserMapper;
+import com.fdkankan.tools.service.ITbUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Service
+public class TbUserServiceImpl extends ServiceImpl<ITbUserMapper, TbUser> implements ITbUserService {
+
+    @DS("flowable")
+    @Override
+    public TbUser getByUserName(String zfbPhone) {
+        LambdaQueryWrapper<TbUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TbUser::getUserName,zfbPhone);
+        return this.getOne(wrapper);
+    }
+}

+ 20 - 0
src/main/java/com/fdkankan/tools/service/impl/UserIncrementServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.UserIncrement;
+import com.fdkankan.tools.mapper.IUserIncrementMapper;
+import com.fdkankan.tools.service.IUserIncrementService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户增值权益表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-02-22
+ */
+@Service
+public class UserIncrementServiceImpl extends ServiceImpl<IUserIncrementMapper, UserIncrement> implements IUserIncrementService {
+
+}

+ 27 - 0
src/main/java/com/fdkankan/tools/service/impl/UserServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkankan.tools.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.tools.entity.User;
+import com.fdkankan.tools.mapper.IUserMapper;
+import com.fdkankan.tools.service.IUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户信息表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-31
+ */
+@Service
+public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements IUserService {
+
+    @Override
+    public User getByUserName(String cnPhone) {
+        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(User::getUserName,cnPhone);
+        return this.getOne(wrapper);
+    }
+}

+ 76 - 0
src/main/java/com/fdkankan/tools/service/impl/ZfbOldToNewService.java

@@ -0,0 +1,76 @@
+package com.fdkankan.tools.service.impl;
+
+import com.fdkankan.tools.entity.TbBuilding;
+import com.fdkankan.tools.entity.TbHouse;
+import com.fdkankan.tools.entity.TbScene;
+import com.fdkankan.tools.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class ZfbOldToNewService {
+
+    @Autowired
+    ITbSceneService sceneService;
+    @Autowired
+    ITbHouseService tbHouseService;
+    @Autowired
+    ITbBuildingService tbBuildingService;
+    @Autowired
+    ITbSceneNumService tbSceneNumService;
+    @Autowired
+    ITbScene3dNumNewService tbScene3dNumNewService;
+
+    public void oldToNew(Long userId) {
+       List<TbScene> sceneList =  sceneService.getByUserId(userId);
+
+       List<TbScene> sceneListDb2 = sceneService.getByUserIdDb2(userId);
+       List<String> numListDb2 = sceneListDb2.stream().map(TbScene::getNum).collect(Collectors.toList());
+        int i = 0;
+        for (TbScene tbScene : sceneList) {
+            if(numListDb2.contains(tbScene.getNum())){
+                //log.info("zfb-oldToNew--newDb-exist---num:{}",tbScene.getNum());
+                continue;
+            }
+            tbScene.setId(null);
+            log.info("zfb-oldToNew--newDb-save---num:{}",tbScene.getNum());
+            TbHouse tbHouse2 = tbHouseService.getDb2Id(tbScene.getHouseId());
+            TbHouse tbHouse1 = tbHouseService.getDb1Id(tbScene.getHouseId());
+            Long houseId = null;
+            if(tbHouse2 == null && tbHouse1 !=null){
+                TbBuilding building1 = tbBuildingService.getDb1Id(tbHouse1.getBuildingId());
+                tbBuildingService.saveDb2(building1);
+                tbHouse1.setBuildingId(building1.getId());
+                houseId = tbHouseService.saveDb2(tbHouse1);
+            }
+            if(tbHouse2 != null && tbHouse1 !=null){
+                if(!tbHouse2.getTitle().equals(tbHouse1.getTitle())){
+                    TbBuilding building1 = tbBuildingService.getDb1Id(tbHouse1.getBuildingId());
+                    tbBuildingService.saveDb2(building1);
+                    tbHouse1.setBuildingId(building1.getId());
+                    houseId =  tbHouseService.saveDb2(tbHouse1);
+                }
+            }
+            if(houseId !=null){
+                tbScene.setHouseId(houseId);
+            }
+            sceneService.saveDb2(tbScene);
+            i++;
+        }
+        log.info("zfb-oldToNew--newDb-save---count:{}",i);
+    }
+
+    public void genOldCode(Integer count) {
+         tbSceneNumService.genDb1(count);
+    }
+
+    public void genNewCode(Integer count) {
+        tbScene3dNumNewService.genDb2(count);
+    }
+}

+ 39 - 0
src/main/java/com/fdkankan/tools/task/TaskService.java

@@ -0,0 +1,39 @@
+package com.fdkankan.tools.task;
+
+import com.fdkankan.tools.service.impl.ZfbOldToNewService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.io.File;
+import java.util.Date;
+import java.util.Map;
+import java.util.Objects;
+
+@Component
+public class TaskService {
+
+    @Autowired
+    ZfbOldToNewService zfbOldToNewService;
+
+    public static final Logger log = LoggerFactory.getLogger("timeLogger");
+
+    @Scheduled(cron = "${task.genOldCode:0 0 0 * * ?}")
+    public void genOldCode() {
+        Integer count = 10000;
+        log.info("task-genOldCode:{}","触发定时任务生成old-prod指房宝场景码");
+        zfbOldToNewService.genOldCode(count);
+    }
+
+    @Scheduled(cron = "${task.genNewCode:0 0 1 * * ?}")
+    public void genNewCode() {
+        Integer count = 10000;
+        log.info("task-genNewCode:{}","触发定时任务生成new-prod指房宝场景码");
+        zfbOldToNewService.genNewCode(count);
+    }
+
+}

+ 82 - 0
src/main/java/com/fdkankan/tools/utils/OssToOssUtil.java

@@ -0,0 +1,82 @@
+package com.fdkankan.tools.utils;
+
+import cn.hutool.core.io.FileUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+@Slf4j
+public class OssToOssUtil {
+    @Autowired
+    UploadToOss uploadToOss;
+    @Autowired
+    UploadToOss2 uploadToOss2;
+    @Autowired
+    UploadToAws uploadToAws;
+    @Value("${fyun.oss.bucket:zfb-4dkankan}")
+    private String bucket2;
+    @Value("${fyun2.oss.bucket:4dkankan}")
+    private String bucket1;
+
+    public void awsToOss(String dataSource, String num, String type)  {
+        try {
+
+            String  fdagePaht =  dataSource.replace("/mnt/data","home");
+            if("zfb".equals(type)){
+                UploadToOss.copy("http://oss-cn-shenzhen.aliyuncs.com",
+                        "LTAIUrvuHqj8pvry","JLOVl0k8Ke0aaM8nLMMiUAZ3EiiqI4",
+                        fdagePaht,
+                        "4dkankan","zfb-4dkankan");
+
+                Thread.sleep(1000L);
+                return;
+            }
+            log.info("下载上传中num:{},dataSource:{}",num,dataSource);
+            String localPath = "/home/jar/tools/ossdata/";
+            File file = new File(localPath);
+            if(!file.exists()){
+                file.mkdirs();
+            }
+
+
+            List<String> fileStr = new ArrayList<>();
+            if( "cn".equals(type)){
+                fileStr = uploadToOss2.listKeys(fdagePaht);
+            }else {
+                fileStr = uploadToAws.listKeys(fdagePaht);
+            }
+            for (String filePath : fileStr) {
+                if(uploadToOss.existKey(filePath)){
+                    continue;
+                }
+                if( "cn".equals(type)){
+                    uploadToOss2.download(filePath,localPath+filePath);
+                    Thread.sleep(1000L);
+                    uploadToOss.upload(localPath+filePath,filePath);
+                    FileUtil.del(localPath+filePath);
+                }
+                if("eur".equals(type)){
+                    uploadToAws.download(filePath,localPath+filePath);
+                    Thread.sleep(1000L);
+                    uploadToOss.upload(localPath+filePath,filePath);
+                    FileUtil.del(localPath+filePath);
+                }
+                Thread.sleep(1000L);
+
+            }
+            log.info("下载完成num:{},dataSource:{}",num,dataSource);
+        }catch ( Exception e){
+
+        }finally {
+
+        }
+
+    }
+
+}

+ 37 - 0
src/main/java/com/fdkankan/tools/utils/StorageType.java

@@ -0,0 +1,37 @@
+package com.fdkankan.tools.utils;
+
+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;
+    }
+
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 1057 - 0
src/main/java/com/fdkankan/tools/utils/UploadToAws.java


+ 0 - 0
src/main/java/com/fdkankan/tools/utils/UploadToOss.java


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels