dengsixing 3 anni fa
parent
commit
59f22b30c7
100 ha cambiato i file con 5591 aggiunte e 23 eliminazioni
  1. 99 23
      pom.xml
  2. 100 0
      src/main/java/com/fdkankan/scene/Interceptor/CheckCooperationPermitAspect.java
  3. 24 0
      src/main/java/com/fdkankan/scene/SceneApplication.java
  4. 14 0
      src/main/java/com/fdkankan/scene/annotation/CheckCooperationPermit.java
  5. 27 0
      src/main/java/com/fdkankan/scene/bean/BoxPhotoBean.java
  6. 47 0
      src/main/java/com/fdkankan/scene/bean/CameraBean.java
  7. 33 0
      src/main/java/com/fdkankan/scene/bean/IconBean.java
  8. 29 0
      src/main/java/com/fdkankan/scene/bean/PointBean.java
  9. 35 0
      src/main/java/com/fdkankan/scene/bean/RequestSceneProV4.java
  10. 185 0
      src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java
  11. 31 0
      src/main/java/com/fdkankan/scene/bean/SceneUpgradeProgressBean.java
  12. 20 0
      src/main/java/com/fdkankan/scene/bean/SegmentBean.java
  13. 27 0
      src/main/java/com/fdkankan/scene/bean/TagBean.java
  14. 46 0
      src/main/java/com/fdkankan/scene/bean/UserIncrementBean.java
  15. 18 0
      src/main/java/com/fdkankan/scene/bean/VertexBean.java
  16. 29 0
      src/main/java/com/fdkankan/scene/bean/WallBean.java
  17. 43 0
      src/main/java/com/fdkankan/scene/callback/FdkkMiniReqErrorCallback.java
  18. 29 0
      src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCallback.java
  19. 51 0
      src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCondition.java
  20. 65 0
      src/main/java/com/fdkankan/scene/config/DataSourceInitFunc.java
  21. 45 0
      src/main/java/com/fdkankan/scene/config/Test.java
  22. 21 0
      src/main/java/com/fdkankan/scene/controller/CameraController.java
  23. 21 0
      src/main/java/com/fdkankan/scene/controller/CameraDetailController.java
  24. 21 0
      src/main/java/com/fdkankan/scene/controller/CompanyController.java
  25. 69 0
      src/main/java/com/fdkankan/scene/controller/FileConvertController.java
  26. 89 0
      src/main/java/com/fdkankan/scene/controller/SceneController.java
  27. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneCooperationController.java
  28. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneDataDownloadController.java
  29. 592 0
      src/main/java/com/fdkankan/scene/controller/SceneEditController.java
  30. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneEditControlsController.java
  31. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneEditInfoController.java
  32. 20 0
      src/main/java/com/fdkankan/scene/controller/SceneEditInfoExtController.java
  33. 21 0
      src/main/java/com/fdkankan/scene/controller/ScenePlusController.java
  34. 21 0
      src/main/java/com/fdkankan/scene/controller/ScenePlusExtController.java
  35. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneProController.java
  36. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneRepairLogController.java
  37. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneResourceController.java
  38. 21 0
      src/main/java/com/fdkankan/scene/controller/SceneResourceCooperationController.java
  39. 20 0
      src/main/java/com/fdkankan/scene/controller/SceneUploadController.java
  40. 228 0
      src/main/java/com/fdkankan/scene/controller/TestController.java
  41. 21 0
      src/main/java/com/fdkankan/scene/controller/UserController.java
  42. 21 0
      src/main/java/com/fdkankan/scene/controller/UserIncrementController.java
  43. 111 0
      src/main/java/com/fdkankan/scene/controller/V3Controller.java
  44. 90 0
      src/main/java/com/fdkankan/scene/entity/Camera.java
  45. 151 0
      src/main/java/com/fdkankan/scene/entity/CameraDetail.java
  46. 111 0
      src/main/java/com/fdkankan/scene/entity/Company.java
  47. 54 0
      src/main/java/com/fdkankan/scene/entity/SceneCooperation.java
  48. 66 0
      src/main/java/com/fdkankan/scene/entity/SceneDataDownload.java
  49. 111 0
      src/main/java/com/fdkankan/scene/entity/SceneEditControls.java
  50. 183 0
      src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java
  51. 84 0
      src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java
  52. 116 0
      src/main/java/com/fdkankan/scene/entity/ScenePlus.java
  53. 153 0
      src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java
  54. 231 0
      src/main/java/com/fdkankan/scene/entity/ScenePro.java
  55. 69 0
      src/main/java/com/fdkankan/scene/entity/SceneRepairLog.java
  56. 78 0
      src/main/java/com/fdkankan/scene/entity/SceneResource.java
  57. 54 0
      src/main/java/com/fdkankan/scene/entity/SceneResourceCooperation.java
  58. 73 0
      src/main/java/com/fdkankan/scene/entity/SceneUpload.java
  59. 141 0
      src/main/java/com/fdkankan/scene/entity/User.java
  60. 102 0
      src/main/java/com/fdkankan/scene/entity/UserIncrement.java
  61. 217 0
      src/main/java/com/fdkankan/scene/feign/UserSceenFeign.java
  62. 99 0
      src/main/java/com/fdkankan/scene/generate/AutoGenerate.java
  63. 56 0
      src/main/java/com/fdkankan/scene/httpclient/FdkankanMiniClient.java
  64. 131 0
      src/main/java/com/fdkankan/scene/listener/RabbitMqListener.java
  65. 18 0
      src/main/java/com/fdkankan/scene/mapper/ICameraDetailMapper.java
  66. 18 0
      src/main/java/com/fdkankan/scene/mapper/ICameraMapper.java
  67. 18 0
      src/main/java/com/fdkankan/scene/mapper/ICompanyMapper.java
  68. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneCooperationMapper.java
  69. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneDataDownloadMapper.java
  70. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneEditControlsMapper.java
  71. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneEditInfoExtMapper.java
  72. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneEditInfoMapper.java
  73. 18 0
      src/main/java/com/fdkankan/scene/mapper/IScenePlusExtMapper.java
  74. 18 0
      src/main/java/com/fdkankan/scene/mapper/IScenePlusMapper.java
  75. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneProMapper.java
  76. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneRepairLogMapper.java
  77. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneResourceCooperationMapper.java
  78. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneResourceMapper.java
  79. 42 0
      src/main/java/com/fdkankan/scene/mapper/ISceneUpgradeMapper.java
  80. 18 0
      src/main/java/com/fdkankan/scene/mapper/ISceneUploadMapper.java
  81. 18 0
      src/main/java/com/fdkankan/scene/mapper/IUserIncrementMapper.java
  82. 18 0
      src/main/java/com/fdkankan/scene/mapper/IUserMapper.java
  83. 18 0
      src/main/java/com/fdkankan/scene/service/ICameraDetailService.java
  84. 18 0
      src/main/java/com/fdkankan/scene/service/ICameraService.java
  85. 16 0
      src/main/java/com/fdkankan/scene/service/ICompanyService.java
  86. 24 0
      src/main/java/com/fdkankan/scene/service/IFileConvertService.java
  87. 18 0
      src/main/java/com/fdkankan/scene/service/ISceneCooperationService.java
  88. 18 0
      src/main/java/com/fdkankan/scene/service/ISceneDataDownloadService.java
  89. 18 0
      src/main/java/com/fdkankan/scene/service/ISceneEditControlsService.java
  90. 24 0
      src/main/java/com/fdkankan/scene/service/ISceneEditInfoExtService.java
  91. 84 0
      src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java
  92. 31 0
      src/main/java/com/fdkankan/scene/service/ISceneEditService.java
  93. 18 0
      src/main/java/com/fdkankan/scene/service/IScenePlusExtService.java
  94. 31 0
      src/main/java/com/fdkankan/scene/service/IScenePlusService.java
  95. 44 0
      src/main/java/com/fdkankan/scene/service/ISceneProService.java
  96. 16 0
      src/main/java/com/fdkankan/scene/service/ISceneRepairLogService.java
  97. 16 0
      src/main/java/com/fdkankan/scene/service/ISceneResourceCooperationService.java
  98. 19 0
      src/main/java/com/fdkankan/scene/service/ISceneResourceService.java
  99. 19 0
      src/main/java/com/fdkankan/scene/service/ISceneService.java
  100. 0 0
      src/main/java/com/fdkankan/scene/service/ISceneUpgradeToV4Service.java

+ 99 - 23
pom.xml

@@ -48,6 +48,86 @@
         <zxing.version>2.1</zxing.version>
     </properties>
 
+    <dependencies>
+
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-common-web</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+
+        <!--        <dependency>-->
+        <!--            <groupId>com.fdkankan</groupId>-->
+        <!--            <artifactId>4dkankan-utils-mq</artifactId>-->
+        <!--            <version>2.0.0-SNAPSHOT</version>-->
+        <!--        </dependency>-->
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-rabbitmq</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-redis</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-db</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fdkankan</groupId>
+            <artifactId>4dkankan-utils-fyun</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba.csp</groupId>
+            <artifactId>sentinel-datasource-nacos</artifactId>
+            <version>1.7.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yomahub</groupId>
+            <artifactId>tlog-web-spring-boot-starter</artifactId>
+            <version>1.3.6</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.yomahub</groupId>
+            <artifactId>tlog-feign-spring-boot-starter</artifactId>
+            <version>1.3.6</version>
+        </dependency>
+
+        <!--        htt请求工具-->
+        <dependency>
+            <groupId>com.dtflys.forest</groupId>
+            <artifactId>forest-spring-boot-starter</artifactId>
+            <version>1.5.19</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.firebase</groupId>
+            <artifactId>firebase-admin</artifactId>
+            <version>6.8.1</version>
+        </dependency>
+
+    </dependencies>
+
     <dependencyManagement>
 
         <dependencies>
@@ -157,33 +237,29 @@
 
     <build>
 
-        <pluginManagement>
-            <plugins>
-<!--                <plugin>-->
-<!--                    <groupId>org.springframework.boot</groupId>-->
-<!--                    <artifactId>spring-boot-maven-plugin</artifactId>-->
-<!--                </plugin>-->
-<!--                <plugin>-->
-<!--                    <groupId>org.apache.maven.plugins</groupId>-->
-<!--                    <artifactId>maven-compiler-plugin</artifactId>-->
-<!--                    <version>3.1</version>-->
-<!--                </plugin>-->
+        <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>-->
+        </plugins>
 
+<!--        <pluginManagement>-->
+<!--            <plugins>-->
 <!--                <plugin>-->
 <!--                    <groupId>org.apache.maven.plugins</groupId>-->
-<!--                    <artifactId>maven-surefire-plugin</artifactId>-->
-<!--                    <version>${maven-surefire-plugin.version}</version>-->
-<!--                    <configuration>-->
-<!--                        <skipTests>true</skipTests>&lt;!&ndash;默认关掉单元测试 &ndash;&gt;-->
-<!--                    </configuration>-->
+<!--                    <artifactId>maven-compiler-plugin</artifactId>-->
 <!--                </plugin>-->
-
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                </plugin>
-            </plugins>
-        </pluginManagement>
+<!--            </plugins>-->
+<!--        </pluginManagement>-->
 
     </build>
 

+ 100 - 0
src/main/java/com/fdkankan/scene/Interceptor/CheckCooperationPermitAspect.java

@@ -0,0 +1,100 @@
+package com.fdkankan.scene.Interceptor;
+
+import cn.hutool.core.util.StrUtil;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.web.user.SSOLoginHelper;
+import com.fdkankan.web.util.WebUtil;
+import java.io.IOException;
+import java.util.Objects;
+import javax.servlet.http.HttpServletRequest;
+import lombok.extern.log4j.Log4j2;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+@Log4j2
+@Aspect
+@Component
+@Order(101)
+public class CheckCooperationPermitAspect {
+
+	@Autowired
+	private SSOLoginHelper ssoLoginHelper;
+	@Autowired
+	private RedisUtil redisUtil;
+	@Autowired
+	private IScenePlusService scenePlusService;
+
+
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.CheckCooperationPermit)")
+	public void checkCooperationPermit() {
+	}
+
+	/**
+	 * 前置通知 用于判断用户协作场景是否有协作权限
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @throws IOException
+	 */
+	@Before("checkCooperationPermit()")
+	public void doBefore(JoinPoint joinPoint) throws Exception {
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+		// 读取session中的用户
+		com.fdkankan.web.model.SSOUser user = ssoLoginHelper.loginCheckV3(request.getHeader("token"));
+		if(Objects.isNull(user)){
+			throw new BusinessException(ErrorCode.TOKEN_NOT_FOUND);
+		}
+		String num = WebUtil.getNum(joinPoint, request);
+		if(StrUtil.isEmpty(num)){
+			throw new BusinessException(ErrorCode.PARAM_REQUIRED);
+		}
+
+		//判断是不是场景原用户,如果是,跳出
+        ScenePlus scenePlus= scenePlusService.getScenePlusByNum(num);
+		if(Objects.isNull(scenePlus)){
+			throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+		}
+
+		//判断是否相机登录,是否场景的相机id和相机登录的相机id是否相等,如果都满足,则放行,否则判定为用户登录
+		if(Objects.nonNull(user.getCameraLogin())
+			&& CommonStatus.YES.code().byteValue() == user.getCameraLogin().intValue()){
+			if(scenePlus.getCameraId().equals(user.getCameraId())){
+				return;
+			}else{
+				throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+			}
+		}
+
+		//走到这里代表是用户账号密码登录,如果查到的场景的userid是空,证明相机解绑了,需要返回无权操作
+		if(Objects.isNull(scenePlus.getUserId())){
+			throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+		}
+
+        if(scenePlus.getUserId().equals(user.getId())){
+            return;
+        }
+
+        //如果不是用户自己的场景,判断是否有协作权限
+        String userId = redisUtil.hget(RedisKey.SCENE_COOPERATION_NUM_USERID, num);
+        if(StrUtil.isEmpty(userId)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+        }
+        if(!userId.equals(String.valueOf(user.getId()))){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+        }
+	}
+
+}

+ 24 - 0
src/main/java/com/fdkankan/scene/SceneApplication.java

@@ -0,0 +1,24 @@
+package com.fdkankan.scene;
+
+import com.dtflys.forest.springboot.annotation.ForestScan;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@SpringBootApplication
+@EnableTransactionManagement//开启事务
+//@EnableFeignClients("com.fdkankan.*.api.feign")
+@EnableDiscoveryClient
+@EnableScheduling
+@ComponentScan(basePackages = {"com.fdkankan.*"})
+@MapperScan("com.fdkankan.**.mapper")
+@ForestScan(basePackages = "com.fdkankan.scene.httpclient")
+public class SceneApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(SceneApplication.class, args);
+    }
+}

+ 14 - 0
src/main/java/com/fdkankan/scene/annotation/CheckCooperationPermit.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface CheckCooperationPermit {
+    String description() default "";
+}

+ 27 - 0
src/main/java/com/fdkankan/scene/bean/BoxPhotoBean.java

@@ -0,0 +1,27 @@
+package com.fdkankan.scene.bean;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/5/10
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BoxPhotoBean {
+
+    private Long createTime;
+
+    private JSONObject boxPhoto;
+
+}

+ 47 - 0
src/main/java/com/fdkankan/scene/bean/CameraBean.java

@@ -0,0 +1,47 @@
+package com.fdkankan.scene.bean;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 相机实体表
+ */
+@Data
+public class CameraBean implements Serializable {
+
+    private static final long serialVersionUID = 6384935760157228272L;
+
+    private Long id;
+    /**
+     * 相机的Mac地址
+     */
+    private String childName;
+    /**
+     * 激活时间
+     */
+    private Date activatedTime;
+    /**
+     * 相机密码
+     */
+    private String childPassword;
+    /**
+     * 相机sn码,扫码绑定
+     */
+    private String snCode;
+    /**
+     * wifi名称
+     */
+    private String wifiName;
+    /**
+     * wifi密码
+     */
+    private String wifiPassword;
+
+    private Date createTime;
+
+    private Date updateTime;
+
+    private String recStatus;
+
+}

+ 33 - 0
src/main/java/com/fdkankan/scene/bean/IconBean.java

@@ -0,0 +1,33 @@
+package com.fdkankan.scene.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/21
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class IconBean {
+
+    /**
+     * icon文件名
+     */
+    private String icon;
+
+    /**
+     * icon使用频次
+     */
+    private int count;
+
+}

+ 29 - 0
src/main/java/com/fdkankan/scene/bean/PointBean.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.bean;
+
+import java.io.Serializable;
+import java.util.Map;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/8
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class PointBean implements Serializable {
+    private String vectorId;
+    private float x;
+    private float y;
+    private Map<String, String> parent;
+}

+ 35 - 0
src/main/java/com/fdkankan/scene/bean/RequestSceneProV4.java

@@ -0,0 +1,35 @@
+package com.fdkankan.scene.bean;
+
+import com.google.firebase.database.annotations.NotNull;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/24
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class RequestSceneProV4 {
+
+    @NotNull
+    private Long id;
+
+    private String webSite;
+
+    private String thumb;
+
+    private String sceneName;
+
+    private String sceneDec;
+
+
+}

+ 185 - 0
src/main/java/com/fdkankan/scene/bean/SceneJsonBean.java

@@ -0,0 +1,185 @@
+package com.fdkankan.scene.bean;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fdkankan.scene.vo.SceneEditControlsVO;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * scene.json实体类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/1/19
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SceneJsonBean {
+
+    /**
+     * 场景码
+     */
+    private String num;
+
+    /**
+     * 地面logo名称
+     */
+    private String floorLogo;
+
+    /**
+     * 地面logo大小
+     */
+    private Integer floorLogoSize;
+
+    /**
+     * 地面logo文件名称
+     */
+    private String floorLogoFile;
+
+    /**
+     * 背景音乐名称
+     */
+    private String music;
+
+    /**
+     * 背景音乐文件名称
+     */
+    private String musicFile;
+
+    /**
+     * 浏览密码
+     */
+    private String scenePassword;
+
+    /**
+     * 场景标题
+     */
+    private String title;
+
+    /**
+     * 场景描述
+     */
+    private String description;
+
+    private SceneEditControlsVO controls;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+//    /**
+//     * 点位数量
+//     */
+//    private Integer panoCount;
+//
+//    /**
+//     * 球幕视频数量
+//     */
+//    private Integer videoCount;
+
+    /**
+     * 版本
+     */
+    private Integer version;
+
+//    /**
+//     * 户型图文件路径集合
+//     */
+//    private String[] floorPlanPaths;
+
+    /**
+     * 是否上传了户型图(0-否,1-是)
+     */
+    private Byte floorPlanUser;
+
+//    private String cadInfo;
+
+//    /**
+//     * 是否上传模型
+//     */
+//    private Byte isUploadObj;
+//
+//    /**
+//     * 重新建模的版本
+//     */
+//    private Integer floorEditVer;
+//
+//    /**
+//     * 正式发布重新建模的版本
+//     */
+//    private Integer floorPublishVer;
+
+    /**
+     * 初始点信息
+     */
+    private String entry;
+
+    /**
+     * 全景图加载方式,tiles/1k:1k瓦片图,tiles/2:2k瓦片图,tiles/4k:4k瓦片图,pan:全景图 ,local:本地切片,cube:立体图
+     */
+    private String sceneResolution;
+
+    /**
+     * 场景来源,lite:双目lite相机,pro:八目相机,minion:双面转台相机,laser:激光相机,virtual:虚拟场景,sketch:图片建模场景
+     */
+    private String sceneFrom;
+
+    /**
+     * 空间视频数据
+     */
+    private String boxVideos;
+
+    /**
+     * 空间贴图数据
+     */
+    private String boxPhotos;
+
+    /**
+     *点位视频
+     */
+    private String videos;
+
+    /**
+     * 是否有热点数据
+     */
+    private Integer tags;
+
+    /**
+     * 加载logo名
+     */
+    private String loadingLogo;
+
+    /**
+     * 加载logo文件名
+     */
+    private String loadingLogoFile;
+
+    private Integer payStatus;
+
+    /**
+     * 户型角度
+     */
+    private Float floorPlanAngle;
+
+    /**
+     * 指南针角度
+     */
+    private Float floorPlanCompass;
+
+    /**
+     * 是否保存导览
+     */
+    private Integer tours;
+
+
+}

+ 31 - 0
src/main/java/com/fdkankan/scene/bean/SceneUpgradeProgressBean.java

@@ -0,0 +1,31 @@
+package com.fdkankan.scene.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * 场景升级进度
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/22
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SceneUpgradeProgressBean {
+
+    private String num;
+
+    private Integer status;
+
+    private Integer progress;
+
+
+
+
+}

+ 20 - 0
src/main/java/com/fdkankan/scene/bean/SegmentBean.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.bean;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/8
+ **/
+@Data
+public class SegmentBean {
+    private int id;
+    private int a;
+    private int b;
+    private String startPointId;
+    private String endPointId;
+}

+ 27 - 0
src/main/java/com/fdkankan/scene/bean/TagBean.java

@@ -0,0 +1,27 @@
+package com.fdkankan.scene.bean;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/24
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TagBean {
+
+    private Long createTime;
+
+    private JSONObject tag;
+
+}

+ 46 - 0
src/main/java/com/fdkankan/scene/bean/UserIncrementBean.java

@@ -0,0 +1,46 @@
+package com.fdkankan.scene.bean;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 用户增值权益表
+ */
+@Data
+public class UserIncrementBean implements Serializable {
+
+    private static final long serialVersionUID = -673078266098293091L;
+
+    private Long id;
+
+    private String keyWord;
+
+    private Long userId;
+
+    private Long cameraId;
+
+    private Long incrementTypeId;
+
+    /**
+     * 下载次数
+     */
+    private Integer downloadNum;
+
+    private String orderSn;
+
+    /**
+     * 生效时间
+     */
+    private Date incrementStartTime;
+    /**
+     * 结束时间
+     */
+    private Date incrementEndTime;
+
+    private Integer isExpired;
+
+
+
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/bean/VertexBean.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.bean;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/8
+ **/
+@Data
+public class VertexBean {
+    private int id;
+    private float x;
+    private float y;
+}

+ 29 - 0
src/main/java/com/fdkankan/scene/bean/WallBean.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.bean;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/8
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+public class WallBean implements Serializable {
+    private String vectorId;
+    private String start;
+    private String end;
+    private String[] children;
+    private Double width;
+}

+ 43 - 0
src/main/java/com/fdkankan/scene/callback/FdkkMiniReqErrorCallback.java

@@ -0,0 +1,43 @@
+package com.fdkankan.scene.callback;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.callback.OnError;
+import com.dtflys.forest.callback.OnSuccess;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+@Slf4j
+public class FdkkMiniReqErrorCallback implements OnError {
+
+    @Override
+    public void onError(ForestRuntimeException e, ForestRequest forestRequest,
+        ForestResponse forestResponse) {
+        JSONObject jsonObject = JSON.parseObject(forestResponse.getContent());
+        Integer status = jsonObject.getInteger("status");
+        if(status != null && status == 500){
+            log.error("v3接口报错,status:{},error:{}", status, jsonObject.getString("error"));
+            throw new BusinessException(ServerCode.SYSTEM_ERROR);
+        }
+        Result result = JSON.parseObject(forestResponse.getContent(), Result.class);
+        if(result.getCode() != ServerCode.SUCCESS.code()){
+            throw new BusinessException(result.getCode(), result.getMsg());
+        }
+        log.error("跨服务请求失败!", e);
+        throw new BusinessException(ServerCode.FEIGN_REQUEST_FAILD);
+    }
+}

+ 29 - 0
src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCallback.java

@@ -0,0 +1,29 @@
+package com.fdkankan.scene.callback;
+
+import com.dtflys.forest.callback.OnSuccess;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
+import java.util.Arrays;
+import java.util.List;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+@Slf4j
+public class FdkkMiniReqSuccessCallback implements OnSuccess<Result> {
+
+    @Override
+    public void onSuccess(Result result, ForestRequest forestRequest,
+        ForestResponse forestResponse) {
+        log.info("请求v3成功,url:{},result:{}", forestRequest.getUrl(), forestResponse.getContent());
+    }
+}

+ 51 - 0
src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCondition.java

@@ -0,0 +1,51 @@
+package com.fdkankan.scene.callback;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.dtflys.forest.callback.SuccessWhen;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
+
+/**
+ * <p>
+ *  自定义成功/失败条件实现类
+ *  需要实现 SuccessWhen 接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+
+public class FdkkMiniReqSuccessCondition implements SuccessWhen {
+
+    /**
+     * 请求成功条件
+     * @param req Forest请求对象
+     * @param res Forest响应对象
+     * @return 是否成功,true: 请求成功,false: 请求失败
+     */
+    @Override
+    public boolean successWhen(ForestRequest req, ForestResponse res) {
+        boolean reqStatus = res.noException() &&   // 请求过程没有异常
+            res.statusOk() &&     // 并且状态码在 100 ~ 399 范围内
+            res.statusIsNot(203);
+        if(!reqStatus){
+            return reqStatus;
+        }
+
+        String content = res.getContent();
+        if(StrUtil.isEmpty(content)){
+            reqStatus = false;
+            return reqStatus;
+        }
+        Result result = JSON.parseObject(content, Result.class);
+        if(result.getCode() != ServerCode.SUCCESS.code()){
+            reqStatus = false;
+            return reqStatus;
+        }
+        return true;
+    }
+}

+ 65 - 0
src/main/java/com/fdkankan/scene/config/DataSourceInitFunc.java

@@ -0,0 +1,65 @@
+//package com.fdkankan.scene.config;
+//
+//import com.alibaba.cloud.sentinel.SentinelProperties;
+//import com.alibaba.cloud.sentinel.datasource.config.NacosDataSourceProperties;
+//import com.alibaba.csp.sentinel.datasource.ReadableDataSource;
+//import com.alibaba.csp.sentinel.datasource.nacos.NacosDataSource;
+//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
+//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
+//import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
+//import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
+//import com.alibaba.fastjson.JSON;
+//import com.alibaba.fastjson.TypeReference;
+//import java.util.List;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+///**
+// * <p>
+// * TODO
+// * </p>
+// *
+// * @author dengsixing
+// * @since 2022/2/14
+// **/
+//@Configuration
+//@Slf4j
+//public class DataSourceInitFunc {
+//
+//    @Autowired
+//    private SentinelProperties sentinelProperties;
+//
+//    @Bean
+//    public DataSourceInitFunc init() throws Exception {
+//
+//        log.info("[NacosSource初始化,从Nacos中获取熔断规则]");
+//
+//        sentinelProperties.getDatasource().entrySet().stream().filter(map -> {
+//            return map.getValue().getNacos() != null;
+//        }).forEach(map -> {
+//            NacosDataSourceProperties nacos = map.getValue().getNacos();
+//            // 限流规则,需要Nacos的dataId中包含flow字符串
+//            if (nacos.getDataId().contains("flow")) {
+//                ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new NacosDataSource<>(nacos.getServerAddr(),
+//                    nacos.getGroupId(), nacos.getDataId(),
+//                    source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
+//                    }));
+//                FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
+//            }
+//
+//            // 降级规则,需要Nacos的dataId中包含degrade字符串
+//            if (nacos.getDataId().contains("degrade")) {
+//                ReadableDataSource<String, List<DegradeRule>> degradeRuleDataSource = new NacosDataSource<>(nacos.getServerAddr(),
+//                    nacos.getGroupId(), nacos.getDataId(),
+//                    source -> JSON.parseObject(source, new TypeReference<List<DegradeRule>>() {
+//                    }));
+//                DegradeRuleManager.register2Property(degradeRuleDataSource.getProperty());
+//            }
+//
+//        });
+//        return new DataSourceInitFunc();
+//    }
+//
+//}

+ 45 - 0
src/main/java/com/fdkankan/scene/config/Test.java

@@ -0,0 +1,45 @@
+package com.fdkankan.scene.config;
+
+/**
+ * <p>
+ *  这是一个测试类
+ * </p>
+ *
+ * @author dengsixing
+ * @date 2022/1/12
+ **/
+public class Test {
+
+    /**
+     * 这是一个类属性
+     */
+    private static final String TEST = "test";
+
+
+    /**
+     * <p>
+     *   这是一个测试方法
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param id 主键id
+     * @param name  姓名
+     * @return java.lang.String
+     **/
+    public String test(long id, String name){
+        return id + "-" + name;
+    }
+
+    public static void main(String[] args) {
+
+        //方法体内的单行注释
+        String test =  Test.TEST;
+
+        /*
+          方法体内多行注释
+         */
+        String test1 = new Test().test(1, "zhangsan");
+        System.out.println(test1);
+
+    }
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/CameraController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 相机主表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/camera")
+public class CameraController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/CameraDetailController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 相机子表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/cameraDetail")
+public class CameraDetailController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/CompanyController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 客户企业logo信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/company")
+public class CompanyController {
+
+}
+

+ 69 - 0
src/main/java/com/fdkankan/scene/controller/FileConvertController.java

@@ -0,0 +1,69 @@
+package com.fdkankan.scene.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.service.IFileConvertService;
+import com.fdkankan.web.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/5/17
+ **/
+@RestController
+@RequestMapping("/service/common/convert")
+public class FileConvertController extends BaseController {
+
+    @Autowired
+    private IFileConvertService fileConvertService;
+
+    /**
+     * <p>
+     txt转modeldata
+     * </p>      
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param file 
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping("/convertTxtToModeldata")
+    public ResultData convertTxtToModeldata(@RequestParam("file") MultipartFile file) throws Exception{
+        fileConvertService.convertTxtToModeldata(file, this.response);
+        return ResultData.ok();
+    }
+
+    /**
+     * <p>
+     txt转dam
+     * </p>      
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param file 
+     **/
+    @PostMapping("/convertTxtToDam")
+    public void convertTxtToDam(@RequestParam("file") MultipartFile file) throws Exception{
+        fileConvertService.convertTxtToDam(file, this.response);
+    }
+
+    /**
+     * <p>
+     txt转lzma
+     * </p>      
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param file 
+     **/
+    @PostMapping("/convertTxtToLzma")
+    public void convertTxtToLzma(@RequestParam("file") MultipartFile file) throws Exception{
+        fileConvertService.convertTxtToLzma(file, this.response);
+    }
+
+}

+ 89 - 0
src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -0,0 +1,89 @@
+package com.fdkankan.scene.controller;
+
+
+import com.fdkankan.common.constant.SceneInfoReqType;
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.scene.service.ISceneService;
+import com.fdkankan.scene.service.ISceneUpgradeToV4Service;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
+import com.fdkankan.scene.vo.SceneInfoParamVO;
+import com.fdkankan.scene.vo.SceneInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景表 前端控制器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-23
+ */
+@RestController
+@RequestMapping("/service/scene")
+public class SceneController extends BaseController{
+
+    @Autowired
+    ISceneService sceneService;
+    @Autowired
+    ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    ISceneUpgradeToV4Service sceneUpgradeToV4Service;
+
+
+    /**
+     * <p>
+     获取场景详情
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.scene.vo.SceneInfoVO
+     **/
+    @GetMapping(value = "/getInfo")
+    public SceneInfoVO getInfo(@Validated SceneInfoParamVO param) throws Exception{
+        param.setReqType(SceneInfoReqType.VIEW.code());
+        return sceneEditInfoService.getSceneInfo(param);
+    }
+
+    /**
+     * <p>
+     根据场景密码打开场景
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/check/key")
+    public ResultData checkKey(@RequestBody @Validated SceneCheckKeyParamVO param) throws Exception {
+        return sceneEditInfoService.checkKey(param);
+    }
+
+    /**
+     * <p>
+            场景同步数据包下载
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/downLoadZSData")
+    public ResultData downLoadZSData(@Validated BaseSceneParamVO param) throws Exception{
+        return sceneService.downLoadZSData(param);
+    }
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneCooperationController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/sceneCooperation")
+public class SceneCooperationController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneDataDownloadController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 安居客场景数据下载 前端控制器
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-23
+ */
+@RestController
+@RequestMapping("/scene/sceneDataDownload")
+public class SceneDataDownloadController {
+
+}
+

+ 592 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -0,0 +1,592 @@
+package com.fdkankan.scene.controller;
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.constant.SceneInfoReqType;
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.annotation.CheckCooperationPermit;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.ISceneEditService;
+import com.fdkankan.scene.service.ISceneProService;
+import com.fdkankan.scene.service.ISceneUploadService;
+import com.fdkankan.scene.vo.BallScreenVideoParamVO;
+import com.fdkankan.scene.vo.BaseDataParamVO;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.DeleteFileParamVO;
+import com.fdkankan.scene.vo.DeleteHotIconParamVO;
+import com.fdkankan.scene.vo.DeleteHotParamVO;
+import com.fdkankan.scene.vo.DeleteSidParamVO;
+import com.fdkankan.scene.vo.DownloadVO;
+import com.fdkankan.scene.vo.FileNameAndDataParamVO;
+import com.fdkankan.scene.vo.FileParamVO;
+import com.fdkankan.scene.vo.LocalesParamVO;
+import com.fdkankan.scene.vo.RenameCadParamVO;
+import com.fdkankan.scene.vo.SaveTagsParamVO;
+import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
+import com.fdkankan.scene.vo.SaveUploadParamVO;
+import com.fdkankan.scene.vo.SceneAuthVO;
+import com.fdkankan.scene.vo.SceneEditInfoParamVO;
+import com.fdkankan.scene.vo.SceneEditInfoVO;
+import com.fdkankan.scene.vo.SceneInfoParamVO;
+import com.fdkankan.scene.vo.SceneInfoVO;
+import com.fdkankan.scene.vo.UploadContentParamVO;
+import java.io.IOException;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 场景编辑管理
+ */
+@Log4j2
+@RestController
+@RequestMapping("/service/scene/edit")
+public class SceneEditController extends BaseController {
+
+    @Autowired
+    private ISceneProService sceneProService;
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private ISceneUploadService sceneUploadService;
+    @Autowired
+    private ISceneEditService sceneEditService;
+    @Value("${spring.profiles.active}")
+    private String env;
+
+    /**
+     * <p>
+     保存场景编辑数据
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/base/save")
+    public SceneEditInfoVO saveScene(@RequestBody @Validated SceneEditInfoParamVO param){
+        return sceneEditInfoService.saveScene(param);
+    }
+
+    /**
+     * <p>
+     发布场景数据
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/publicScene")
+    public ResultData publicScene(@RequestBody @Validated SceneEditInfoParamVO param) throws Exception {
+        return sceneEditInfoService.publicScene(param);
+    }
+
+    /**
+     * <p>
+     保存初始页面
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/saveInitialPage")
+    public ResultData saveInitialPage(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
+        return sceneProService.saveInitialPage(param);
+    }
+
+    /**
+     * <p>
+        新增或修改场景热点
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/tag/save")
+    public ResultData saveTag(@RequestBody @Validated SaveTagsParamVO param) throws Exception {
+        return sceneProService.addOrUpdateTag(param);
+    }
+
+    /**
+     * <p>
+            删除热点
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/tag/delete")
+    public ResultData deleteTag(@RequestBody @Validated DeleteHotParamVO param) throws Exception {
+        return sceneProService.deleteTag(param);
+    }
+
+    /**
+     * <p>
+            热点列表
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param num
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/tag/list")
+    public ResultData listTags(@RequestParam(value = "num") String num) throws Exception {
+        return sceneProService.listTags(num);
+    }
+
+    /**
+     * <p>
+     删除热点
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/icons/delete")
+    public ResultData deleteIcons(@RequestBody @Validated DeleteHotIconParamVO param) throws Exception {
+        return sceneProService.deleteIcons(param);
+    }
+
+    /**
+     * <p>
+     保存漫游可行
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/12
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/saveRoam")
+    public ResultData saveRoam(@RequestBody @Validated BaseDataParamVO param) throws Exception {
+        return sceneProService.saveRoam(param);
+    }
+
+    /**
+     * <p>
+     保存热点可见性的数据
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/saveTagsVisible")
+    public ResultData saveTagsVisible(@RequestBody @Validated SaveTagsVisibleParamVO param) throws Exception {
+        return sceneProService.saveTagsVisible(param);
+    }
+
+    /**
+     * <p>
+            模型下载
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param num
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/downloadModel")
+    public ResultData downloadTexData(@RequestParam("num") String num) throws Exception {
+        return sceneProService.downloadTexData(num);
+    }
+
+    /**
+     * <p>
+            上传模型
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param num
+     * @param file
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/uploadModel")
+    public ResultData uploadObjAndImg(@RequestParam("num") String num, @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneProService.uploadObjAndImg(num, file);
+    }
+
+
+//    /**
+//     * <p>
+//            上传后保存
+//     * </p>
+//     * @author dengsixing
+//     * @date 2022/1/20
+//     * @param param
+//     * @return com.fdkankan.common.response.ResultData
+//     **/
+//    @PostMapping(value = "/saveUpload")
+//    public ResultData saveUpload(@RequestBody @Validated SaveUploadParamVO param) throws Exception{
+//        return sceneEditInfoService.saveUpload(param);
+//    }
+
+    /**
+     * <p>
+     保存户型图
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/20
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/cad/save")
+    public ResultData saveCad(@RequestBody @Validated BaseDataParamVO param) throws Exception{
+        return sceneEditInfoService.saveCad(param);
+    }
+
+    /**
+     * <p>
+     重置户型图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param num
+     * @return
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/cad/reset")
+    public ResultData resetCad(@RequestParam(value = "num") String num){
+        return sceneEditInfoService.resetCad(num);
+    }
+
+    /**
+     * <p>
+     楼层户型重命名
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @return
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/cad/rename")
+    public ResultData renameCad(@RequestBody @Validated RenameCadParamVO param) throws IOException {
+        return sceneEditInfoService.renameCad(param);
+    }
+
+    /**
+     * <p>
+     获取场景详情
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.scene.vo.SceneInfoVO
+     **/
+    @GetMapping(value = "/getInfo")
+    public SceneInfoVO getInfo(@Validated SceneInfoParamVO param) throws Exception{
+        param.setReqType(SceneInfoReqType.EDIT.code());
+        return sceneEditInfoService.getSceneInfo(param);
+    }
+
+    /**
+     * <p>
+            上传全景图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @param num
+     * @param file
+     * @return java.util.List<java.lang.String>
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/uploadPanorama")
+    public ResultData uploadPanorama(@RequestParam(value = "num") String num,
+        @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneEditInfoService.uploadPanorama(num, file);
+    }
+
+    /**
+     * <p>
+            下载全景图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/16
+     * @return java.util.List<java.lang.String>
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/downloadPanorama")
+    public ResultData downloadPanorama(@RequestBody @Validated FileParamVO param) throws Exception {
+        return sceneEditInfoService.downloadPanorama(param);
+    }
+
+    /**
+     * <p>
+            保存视频盒子
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/18
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/video/box/save")
+    public ResultData saveVideoBox(@RequestBody @Validated FileNameAndDataParamVO param) throws Exception {
+        return sceneEditInfoService.saveVideoBox(param);
+    }
+
+    /**
+     * <p>
+            删除视频盒子
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/18
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/video/box/delete")
+    public ResultData deleteVideoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
+        return sceneEditInfoService.deleteVideoBox(param);
+    }
+
+    /**
+     * <p>
+     保存空间贴图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/18
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/photo/box/save")
+    public ResultData savePhotoBox(@RequestBody @Validated BaseDataParamVO param) throws Exception {
+        return sceneEditInfoService.saveBoxPhoto(param);
+    }
+
+    /**
+     * <p>
+     删除空间贴图
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/18
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/photo/box/delete")
+    public ResultData deletePhotoBox(@RequestBody @Validated DeleteSidParamVO param) throws Exception {
+        return sceneEditInfoService.deleteBoxPhoto(param);
+    }
+
+
+    /**
+     * <p>
+        下载视频
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/23
+     * @param param
+     * @return com.fdkankan.scene.vo.DownloadVO
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/downloadBallScreenVideo")
+    public DownloadVO downloadBallScreenVideo(@RequestBody @Validated BallScreenVideoParamVO param){
+        return sceneEditInfoService.downloadBallScreenVideo(param);
+    }
+
+    /**
+     * <p>
+            上传视频
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/23
+     * @param num
+     * @param fileName
+     * @param file
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/uploadBallScreenVideo")
+    public ResultData uploadBallScreenVideo(
+            @RequestParam("num") String num,
+            @RequestParam("fileName") String fileName,
+            @RequestParam("file") MultipartFile file) throws Exception {
+        return sceneEditInfoService.uploadBallScreenVideo(num, fileName, file);
+    }
+
+    /**
+     * <p>
+     上传图片到oss,base64
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param base64 图片base64
+     * @param fileName 文件名称
+     * @param bizType 业务类型
+     * @param files 文件
+     * @param num 场景码
+     * @param type 操作类型 0添加,1替换
+     * @param uploadPath  上传路径,此字段为扩展字段,前端可自定义上传路径,注意是完全的文件路径
+     * @return java.lang.String
+     **/
+    @CheckCooperationPermit
+    @RequestMapping(value = "/upload/files", method = RequestMethod.POST)
+    public String uploads(@RequestParam(value = "base64",required = false) String base64,
+        @RequestParam(value = "fileName",required = false) String fileName,
+        @RequestParam(value = "bizType",required = false) String bizType,
+        @RequestParam(value = "files",required = false) MultipartFile[] files,
+        @RequestParam(value = "num",required = false) String num,
+        @RequestParam(value = "type",required = false,defaultValue = "1") Integer type,
+        @RequestParam(value = "uploadPath",required = false) String uploadPath) throws Exception {
+        return sceneUploadService.uploads(base64,fileName,bizType,files,num,type,getToken(),uploadPath);
+    }
+
+    /**
+     * <p>
+     用户自定义上传文本内容上传
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return java.lang.String
+     **/
+    @RequestMapping(value = "/upload/content", method = RequestMethod.POST)
+    public String uploadContent(@RequestBody @Validated UploadContentParamVO param) throws Exception {
+        return sceneUploadService.uploadContent(param);
+    }
+
+    /**
+     * <p>
+            删除文件
+     * </p>
+     * @author dengsixing
+     * @date 2022/2/23
+     * @param paramVO
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping("/delete/file")
+    public ResultData delete(@RequestBody @Validated DeleteFileParamVO paramVO) throws Exception{
+        return sceneUploadService.delete(paramVO);
+    }
+
+    /**
+     * <p>
+     场景同步
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param num
+     * @param type
+     * @param floorPlanJson
+     * @param ajkJson
+     * @param cameraJson
+     * @param files
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/sceneSync")
+    public ResultData sceneSync(
+        @RequestParam("num") String num,
+        @RequestParam(value = "type", defaultValue = "ajk") String type,
+        @RequestParam("floorPlanJson") String floorPlanJson,
+        @RequestParam("ajkJson") String ajkJson,
+        @RequestParam("cameraJson") String cameraJson,
+        @RequestParam("files") MultipartFile[] files) throws Exception{
+        return sceneEditInfoService.sceneSync(num, type, floorPlanJson, ajkJson, cameraJson, files);
+    }
+
+    /**
+     * <p>
+     获取场景权限
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param num
+     * @return com.fdkankan.scene.vo.SceneAuthVO
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/getAuth")
+    public SceneAuthVO getAuth(@RequestParam("num") String num) throws Exception{
+        return sceneEditService.getAuth(num, this.getSsoUser());
+    }
+
+    /**
+     * <p>
+            上传国际化文件
+     * </p>
+     * @author dengsixing
+     * @date 2022/4/11
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/locales")
+    public ResultData locales(@RequestBody @Validated LocalesParamVO param) throws Exception {
+        if("pro".equals(env)){
+            throw new BusinessException(ErrorCode.HAVE_NO_RIGHT);
+        }
+        return sceneEditService.locales(param);
+    }
+
+    /**
+     * <p>
+     保存导览
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/tour/save")
+    public ResultData saveTour(@RequestBody @Validated BaseDataParamVO param) throws Exception{
+        return sceneEditService.saveTour(param);
+    }
+
+    /**
+     * <p>
+     删除导览
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/tour/delete")
+    public ResultData deleteTour(@RequestBody @Validated BaseSceneParamVO param) throws Exception{
+        return sceneEditService.deleteTour(param);
+    }
+
+    /**
+     * <p>
+     添加马赛克
+     * </p>
+     * @author dengsixing
+     * @date 2022/7/1
+     * @param param
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @CheckCooperationPermit
+    @PostMapping(value = "/mosaics/add")
+    public ResultData addMosaics(@RequestBody @Validated BaseDataParamVO param) throws Exception{
+        return sceneEditInfoService.addMosaics(param);
+    }
+
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditControlsController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+@RestController
+@RequestMapping("/scene/sceneEditControls")
+public class SceneEditControlsController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditInfoController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+@RestController
+@RequestMapping("/scene/sceneEditInfo")
+public class SceneEditInfoController {
+
+}
+

+ 20 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditInfoExtController.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-07
+ */
+@RestController
+@RequestMapping("/test/sceneEditInfoExt")
+public class SceneEditInfoExtController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/ScenePlusController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景主表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-16
+ */
+@RestController
+@RequestMapping("/test/scenePlus")
+public class ScenePlusController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/ScenePlusExtController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-16
+ */
+@RestController
+@RequestMapping("/test/scenePlusExt")
+public class ScenePlusExtController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneProController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * pro场景表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-11
+ */
+@RestController
+@RequestMapping("/scene/scenePro")
+public class SceneProController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneRepairLogController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景数据迁移日志--V4版本稳定后可删除 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-04-22
+ */
+@RestController
+@RequestMapping("/scene/sceneRepairLog")
+public class SceneRepairLogController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneResourceController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景资源表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/sceneResource")
+public class SceneResourceController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/SceneResourceCooperationController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/sceneResourceCooperation")
+public class SceneResourceCooperationController {
+
+}
+

+ 20 - 0
src/main/java/com/fdkankan/scene/controller/SceneUploadController.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.controller;
+
+
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.service.ISceneUploadService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+@RequestMapping("/service/scene/edit")
+public class SceneUploadController extends BaseController {
+
+
+}

+ 228 - 0
src/main/java/com/fdkankan/scene/controller/TestController.java

@@ -0,0 +1,228 @@
+//package com.fdkankan.scene.controller;
+//
+//import com.alibaba.druid.pool.DruidDataSource;
+//import com.alibaba.fastjson.JSONObject;
+//import com.fdkankan.common.constant.UploadFilePath;
+//import com.fdkankan.common.controller.BaseController;
+//import com.fdkankan.common.response.ResultData;
+//import com.fdkankan.common.util.SpringUtil;
+//import com.fdkankan.fyun.oss.UploadToOssUtil;
+//import com.fdkankan.platform.api.dto.Camera;
+//import com.fdkankan.platform.api.dto.Company;
+//import com.fdkankan.platform.api.dto.User;
+//import com.fdkankan.platform.api.feign.PlatformGoodsClient;
+//import com.fdkankan.platform.api.feign.PlatformUserClient;
+//import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
+//import com.fdkankan.rabbitmq.config.ModelingQueueConfig;
+//import com.fdkankan.rabbitmq.util.RabbitMqProducer;
+//import com.fdkankan.redis.util.RedisLockUtil;
+//import com.fdkankan.redis.util.RedisUtil;
+//import com.fdkankan.scene.service.IFolderService;
+//import com.fdkankan.scene.service.IScene3dNumService;
+//import com.fdkankan.scene.service.ISceneService;
+//import com.google.common.collect.Lists;
+//import com.yomahub.tlog.task.spring.SpringScheduledTaskAop;
+//import java.sql.SQLException;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//import javax.sql.DataSource;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.amqp.rabbit.core.RabbitTemplate;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.cloud.context.config.annotation.RefreshScope;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//@RefreshScope
+//@RestController
+//@RequestMapping("/service/scene/test")
+//@Slf4j
+//public class TestController extends BaseController {
+//
+//
+//
+//    @Autowired
+//    RedisUtil redisUtil;
+//
+//    @Autowired
+//    IFolderService folderService;
+//
+//    @GetMapping("/testdb")
+//    public List testdb(){
+//        return folderService.list();
+//    }
+//
+//    @Autowired
+//    private PlatformUserClient platformUserClient;
+//
+//    @Autowired
+//    private PlatformGoodsClient platformGoodsClient;
+//
+//    @Autowired
+//    private IScene3dNumService scene3dNumService;
+//
+//    @Autowired
+//    RedisTemplate redisTemplate;
+//
+//    @Autowired
+//    RedisLockUtil redisLockUtil;
+//
+//    @Autowired
+//    private RabbitTemplate rabbitTemplate;
+//
+//    @Autowired
+//    ModelingQueueConfig modelingQueueConfig;
+//    @Autowired
+//    private RabbitMqProducer rabbitMqProducer;
+//
+//    @Autowired
+//    private UploadToOssUtil uploadToOssUtil;
+//
+//
+//
+//    @GetMapping("/test")
+//    public ResultData test() throws Exception {
+//
+////        uploadToOssUtil.uploadBySh(path, "test_dsx/bin.tar");
+//
+//        return ResultData.ok();
+//
+//    }
+//
+//    public static void main(String[] args) throws Exception {
+//
+////        MatrixToImageWriterUtil.createQRCode("http://baidu.com" + "123123", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+"123123"+".png",
+////                ConstantFilePath.SCENE_PATH + "images/images" + "123123" + "/QRShareLogo.png");
+//    }
+//
+//    @GetMapping("/testSetStr")
+//    public void testSetStr() throws Exception {
+//        redisUtil.set("testIncr", "1");
+//        redisUtil.incr("testIncr",1);
+//        String testIncr = redisUtil.get("testIncr");
+//        System.out.println(testIncr);
+//
+//
+//    }
+//
+//    @GetMapping("/testGetStr")
+//    public String testGetStr() throws Exception {
+//        boolean b = redisUtil.hasKey("90c82bdac_202201050951313830");
+//        String abc = (String)redisUtil.get("abc");
+//        return "123";
+//    }
+//
+//    @GetMapping("/testSetObject")
+//    public boolean testSetObject() throws Exception {
+////        User user = new User();
+////        user.setCity("珠海");
+////        user.setId(123l);
+////
+////        String jsons = JSON.toJSONString(user);
+////
+////        redisTemplate.opsForValue().set("test:66", jsons);
+////        redisTemplate.opsForValue().set("test:67", jsons);
+//
+//        ResultData<Camera>  cameraById = platformGoodsClient.getCameraById(111L);
+//
+//        Camera data = cameraById.getData();
+//
+//        ResultData<Company> companyById = platformUserClient.getCompanyById(111L);
+//
+//
+//
+//
+//
+//
+//        return true;
+//    }
+//
+////
+//    @GetMapping("/testGetObject")
+//    public User testGetObject() throws Exception {
+//        String test12 = redisUtil.get("test66");
+//        User user = JSONObject.parseObject(test12, User.class);
+//        return user;
+//    }
+//
+//
+//    @GetMapping("/testSetList")
+//    public boolean testSetList() throws Exception {
+//
+//        List<String> users = Lists.newArrayList();
+//        users.add("sdfsdf");
+//        users.add("dfgdfg");
+//        return redisUtil.lRightPushAll("test5595jj", users);
+//    }
+//
+//    @GetMapping("/testGetList")
+//    public List<String> testGetList() throws Exception {
+//        return redisUtil.lGet("test5595jj", 0, -1);
+//    }
+//
+//    @GetMapping("/testSetMap")
+//    public boolean testSetMap() throws Exception {
+//
+//        Map<String, User> userMap = new HashMap<>();
+//
+//        User user1 = new User();
+//        user1.setCity("珠海");
+//        user1.setId(123l);
+//
+//        User user2 = new User();
+//        user2.setCity("广州");
+//        user2.setId(124l);
+//
+//        userMap.put("user1", user1);
+//        userMap.put("user2", user2);
+//
+//
+//        return redisUtil.hmset("userMap", userMap);
+//    }
+//
+//    @GetMapping("/testGetMap")
+//    public Map<String ,User> testGetMap() throws Exception {
+//        return redisUtil.hmget("userMap");
+//    }
+//
+//    @Autowired
+//    ISceneService sceneService;
+//
+//    @GetMapping("/testSchedule")
+//    public void testSchedule(){
+//        sceneService.updatePv();
+//    }
+//
+//    @RefreshScope
+//    @GetMapping("/testResult")
+//    public void testResult(){
+////        rocketMQProducer.sendOneWay("topic_modeling_a_result", BuildSceneResultMqMessage.builder().buildSuccess(true).cameraType("3").build());
+//        String dsfsdf = (String) redisUtil.get("dsfsdf");
+//        System.out.println(2134);
+//
+//    }
+//
+//    @Autowired
+//    DataSource dataSource;
+//
+//    @GetMapping("/testDatasource")
+//    public void testDatasource() throws SQLException {
+////        Connection connection = dataSource.getConnection();
+////        System.out.println(connection);
+//
+//        System.out.println(dataSource.getClass());
+//        DruidDataSource druidDataSource = (DruidDataSource) dataSource;
+//        System.out.println(druidDataSource.getName());
+//        System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive());
+//        System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize());
+//
+////        connection.close();
+//
+//    }
+//
+//}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/UserController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户信息表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/user")
+public class UserController {
+
+}
+

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/UserIncrementController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户增值权益表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@RestController
+@RequestMapping("/scene/userIncrement")
+public class UserIncrementController {
+
+}
+

+ 111 - 0
src/main/java/com/fdkankan/scene/controller/V3Controller.java

@@ -0,0 +1,111 @@
+package com.fdkankan.scene.controller;
+
+import com.fdkankan.web.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.service.ISceneEditInfoService;
+import com.fdkankan.scene.service.IScenePlusService;
+import com.fdkankan.scene.service.ISceneUpgradeToV4Service;
+import com.fdkankan.scene.vo.MoveSceneParamVO;
+import com.fdkankan.scene.vo.UnbindOrBindCameraParamVO;
+import com.fdkankan.scene.vo.UpgradeToV4ParamVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/5/20
+ **/
+@RestController
+@RequestMapping("/service-v3/scene")
+public class V3Controller extends BaseController {
+
+    @Autowired
+    private ISceneUpgradeToV4Service sceneUpgradeToV4Service;
+    @Autowired
+    private ISceneEditInfoService sceneEditInfoService;
+    @Autowired
+    private IScenePlusService scenePlusService;
+
+    /**
+     * <p>
+     场景升级
+     此接口用于V3\V4系统并存过渡期,场景升级v4做数据迁移用,待V3关闭可以删除
+     * </p>
+     * @author dengsixing
+     * @date 2022/4/21
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/upgradeToV4")
+    public ResultData upgradeToV4(@RequestBody @Validated UpgradeToV4ParamVO param){
+        ResultData resultData = sceneUpgradeToV4Service.upgradeToV4(param);
+        return resultData;
+    }
+
+    /**
+     * <p>
+     场景升级进度查询
+     此接口用于V3\V4系统并存过渡期,场景升级v4做数据迁移用,待V3关闭可以删除
+     * </p>
+     * @author dengsixing
+     * @date 2022/4/21
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @GetMapping(value = "/getUpgradeToV4Progress")
+    public ResultData getUpgradeToV4Progress(@RequestParam(value = "num") String num){
+        ResultData resultData = sceneUpgradeToV4Service.getUpgradeToV4Progress(num);
+        return resultData;
+    }
+
+    /**
+     * <p>
+     查询场景scenejson
+     此接口用于V3\V4系统并存过渡期,待V3关闭可以删除
+     * </p>
+     * @author dengsixing
+     * @date 2022/4/21
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @GetMapping(value = "/getSceneViewInfo")
+    public ResultData getSceneViewInfo(@RequestParam(value = "num") String num){
+        return sceneUpgradeToV4Service.getSceneViewInfo(num);
+    }
+
+    /**
+     * <p>
+            v3相机解绑和绑定,需要同步v4场景的userid
+     * </p>
+     * @author dengsixing
+     * @date 2022/6/23
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/updateScenePlusUserIdByCameraId")
+    public ResultData updateScenePlusUserIdByCameraId(@RequestBody @Validated UnbindOrBindCameraParamVO param){
+        return scenePlusService.updateScenePlusUserIdByCameraId(param.getCameraIdList(), param.getUserId());
+    }
+
+    /**
+     * <p>
+            场景迁移,修改相机id和用户id
+     * </p>
+     * @author dengsixing
+     * @date 2022/6/23
+     * @return com.fdkankan.common.response.ResultData
+     **/
+    @PostMapping(value = "/moveScene")
+    public ResultData moveScene(
+        @RequestBody @Validated MoveSceneParamVO param){
+        return scenePlusService.moveScene(param.getNumList(), param.getCameraId(), param.getUserId());
+    }
+
+
+}

+ 90 - 0
src/main/java/com/fdkankan/scene/entity/Camera.java

@@ -0,0 +1,90 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@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("A")
+    private String recStatus;
+
+    @TableField("is_out")
+    private Boolean isOut;
+
+
+}

+ 151 - 0
src/main/java/com/fdkankan/scene/entity/CameraDetail.java

@@ -0,0 +1,151 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@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("A")
+    private String recStatus;
+
+    @TableField("user_camera_version")
+    private String userCameraVersion;
+
+    @TableField("app_version")
+    private String appVersion;
+
+    @TableField("last_request_time")
+    private Date lastRequestTime;
+
+
+}

+ 111 - 0
src/main/java/com/fdkankan/scene/entity/Company.java

@@ -0,0 +1,111 @@
+package com.fdkankan.scene.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>
+ * 客户企业logo信息
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@Getter
+@Setter
+@TableName("t_company")
+public class Company implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 公司名称
+     */
+    @TableField("company_name")
+    private String companyName;
+
+    /**
+     * 顶部logo
+     */
+    @TableField("top_logo")
+    private String topLogo;
+
+    /**
+     * 地面logo
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 地面点位logo
+     */
+    @TableField("marker_logo")
+    private String markerLogo;
+
+    /**
+     * 二维码logo
+     */
+    @TableField("qr_logo")
+    private String qrLogo;
+
+    /**
+     * 是否显示初始logo,0隐藏,1显示
+     */
+    @TableField("show_logo")
+    private Integer showLogo;
+
+    /**
+     * t_manager表的id
+     */
+    @TableField("manager_id")
+    private Long managerId;
+
+    /**
+     * 新增的相机是否注册,0否,1删
+     */
+    @TableField("camera_delete")
+    private Integer cameraDelete;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+    @TableField("calculate_flexibility")
+    private Boolean calculateFlexibility;
+
+    /**
+     * 数据同步类型
+     */
+    @TableField("data_sync")
+    private String dataSync;
+
+    @TableField("company_desc")
+    private String companyDesc;
+
+
+}

+ 54 - 0
src/main/java/com/fdkankan/scene/entity/SceneCooperation.java

@@ -0,0 +1,54 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@Getter
+@Setter
+@TableName("t_scene_cooperation")
+public class SceneCooperation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("scene_num")
+    private String sceneNum;
+
+    /**
+     * 协作的用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 66 - 0
src/main/java/com/fdkankan/scene/entity/SceneDataDownload.java

@@ -0,0 +1,66 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 安居客场景数据下载
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-20
+ */
+@Getter
+@Setter
+@TableName("t_scene_data_download")
+public class SceneDataDownload implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 文件md5
+     */
+    @TableField("file_md5")
+    private String fileMd5;
+
+    /**
+     * 文件下载地址
+     */
+    @TableField("download_path")
+    private String downloadPath;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 111 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditControls.java

@@ -0,0 +1,111 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-20
+ */
+@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("A")
+    private String recStatus;
+
+
+}

+ 183 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -0,0 +1,183 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-20
+ */
+@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;
+
+    /**
+     * 用户是否上传户型图
+     */
+    @TableField("floor_plan_user")
+    private Byte floorPlanUser;
+
+//    /**
+//     *
+//     */
+//    @TableField("cad_info")
+//    private String cadInfo;
+
+    /**
+     * 是否有热点数据(0-否,1-是)
+     */
+    @TableField("tags")
+    private Byte tags;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 是否上传模型
+     */
+    @TableField("is_upload_obj")
+    private Byte 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("build_video_status")
+    private Byte buildVideoStatus;
+
+    /**
+     * 初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 加载logo名
+     */
+    @TableField("loading_logo")
+    private String loadingLogo;
+
+    /**
+     * 加载logo文件名
+     */
+    @TableField("loading_logo_file")
+    private String loadingLogoFile;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 84 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -0,0 +1,84 @@
+package com.fdkankan.scene.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 com.fdkankan.db.base.BaseEntity;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-07
+ */
+@Getter
+@Setter
+@TableName("t_scene_edit_info_ext")
+public class SceneEditInfoExt {
+
+    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;
+
+    /**
+     * mosaics数据
+     */
+    @TableField("mosaics")
+    private String mosaics;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 116 - 0
src/main/java/com/fdkankan/scene/entity/ScenePlus.java

@@ -0,0 +1,116 @@
+package com.fdkankan.scene.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 2022-03-16
+ */
+@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;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+}

+ 153 - 0
src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -0,0 +1,153 @@
+package com.fdkankan.scene.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 2022-03-16
+ */
+@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;
+
+    /**
+     * 全景图加载方式,tiles/1k:1k瓦片图,tiles/2:2k瓦片图,tiles/4k:4k瓦片图,pan:全景图 ,local:本地切片,cube:立体图
+     */
+    @TableField("scene_resolution")
+    private String sceneResolution;
+
+    /**
+     * 场景来源,lite:双目lite相机,pro:八目相机,minion:双面转台相机,laser:激光相机,virtual:虚拟场景,sketch:图片建模场景
+     */
+    @TableField("scene_from")
+    private String sceneFrom;
+
+    /**
+     * 计算耗时
+     */
+    @TableField("compute_time")
+    private String computeTime;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 231 - 0
src/main/java/com/fdkankan/scene/entity/ScenePro.java

@@ -0,0 +1,231 @@
+package com.fdkankan.scene.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 2022-07-11
+ */
+@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("A")
+    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;
+
+
+}

+ 69 - 0
src/main/java/com/fdkankan/scene/entity/SceneRepairLog.java

@@ -0,0 +1,69 @@
+package com.fdkankan.scene.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>
+ * 场景数据迁移日志--V4版本稳定后可删除
+ * </p>
+ *
+ * @author 
+ * @since 2022-04-22
+ */
+@Getter
+@Setter
+@TableName("t_scene_repair_log")
+public class SceneRepairLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 0-迁移中,1-成功,2-失败
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 失败原因
+     */
+    @TableField("reason")
+    private String reason;
+
+    /**
+     * 迁移耗时
+     */
+    @TableField("consum_time")
+    private Long consumTime;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 78 - 0
src/main/java/com/fdkankan/scene/entity/SceneResource.java

@@ -0,0 +1,78 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@Getter
+@Setter
+@TableName("t_scene_resource")
+public class SceneResource implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 权限名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 英文名
+     */
+    @TableField("en_name")
+    private String enName;
+
+    /**
+     * 权限key
+     */
+    @TableField("key_word")
+    private String keyWord;
+
+    /**
+     * 权限图标
+     */
+    @TableField("icon")
+    private String icon;
+
+    /**
+     * 资源描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 版本(v3,v4)
+     */
+    @TableField("version")
+    private String version;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 54 - 0
src/main/java/com/fdkankan/scene/entity/SceneResourceCooperation.java

@@ -0,0 +1,54 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@Getter
+@Setter
+@TableName("t_scene_resource_cooperation")
+public class SceneResourceCooperation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 场景资源id
+     */
+    @TableField("scene_resource_id")
+    private Long sceneResourceId;
+
+    /**
+     * 协作用户的id
+     */
+    @TableField("scene_cooperation_id")
+    private Long sceneCooperationId;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+
+}

+ 73 - 0
src/main/java/com/fdkankan/scene/entity/SceneUpload.java

@@ -0,0 +1,73 @@
+package com.fdkankan.scene.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 lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-19
+ */
+@Getter
+@Setter
+@TableName("t_scene_upload")
+public class SceneUpload implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 文件上传资源表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 场景码
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 文件名称
+     */
+    @TableField("file_path")
+    private String filePath;
+
+    /**
+     * 文件后缀
+     */
+    @TableField("biz_type")
+    private String bizType;
+
+    /**
+     * 文件上传者id
+     */
+    @TableField("upload_user")
+    private Long uploadUser;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+
+}

+ 141 - 0
src/main/java/com/fdkankan/scene/entity/User.java

@@ -0,0 +1,141 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@Getter
+@Setter
+@TableName("t_user")
+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
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 102 - 0
src/main/java/com/fdkankan/scene/entity/UserIncrement.java

@@ -0,0 +1,102 @@
+package com.fdkankan.scene.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 2022-07-18
+ */
+@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
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 生效时间
+     */
+    @TableField("increment_start_time")
+    private Date incrementStartTime;
+
+    @TableField("download_num")
+    private Integer downloadNum;
+
+
+}

+ 217 - 0
src/main/java/com/fdkankan/scene/feign/UserSceenFeign.java

@@ -0,0 +1,217 @@
+//package com.fdkankan.scene.feign;
+//
+//import com.aliyuncs.utils.StringUtils;
+//import com.fdkankan.common.response.ResultData;
+//import com.fdkankan.scene.api.dto.SceneCntDTO;
+//import com.fdkankan.scene.api.dto.SceneInfoDTO;
+//import com.fdkankan.scene.api.dto.ScenePODTO;
+//import com.fdkankan.scene.api.dto.SceneProDTO;
+//import com.fdkankan.scene.entity.SceneCooperation;
+//import com.fdkankan.scene.entity.ScenePO;
+//import com.fdkankan.scene.entity.SceneProPO;
+//import com.fdkankan.scene.service.*;
+//import com.fdkankan.scene.vo.SceneInfoParamVO;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.util.CollectionUtils;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RequestParam;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import java.util.ArrayList;
+//import java.util.List;
+//import java.util.stream.Collectors;
+//
+///**
+// * 提供计算调用
+// */
+//@RestController
+//@RequestMapping("/feign/user/scene")
+//@Slf4j
+//public class UserSceenFeign {
+//
+//    @Autowired
+//    IUserSceneService userSceneService;
+//    @Autowired
+//    ISceneDownloadLogService sceneDownloadLogService;
+//    @Autowired
+//    ISceneEditInfoService sceneEditInfoService;
+//    @Autowired
+//    ISceneService sceneService;
+//    @Autowired
+//    ISceneProService sceneProService;
+//    @Autowired
+//    ISceneResourceCameraService sceneResourceCameraService;
+//    @Autowired
+//    ISceneResourceCooperationService sceneResourceCooperationService;
+//    @Autowired
+//    ISceneCooperationService sceneCooperationService;
+//    @Autowired
+//    IFdkkLaserService fdkkLaserService;
+//    @Autowired
+//    ISceneProEditService sceneProEditService;
+//    @Autowired
+//    ISceneResourceService sceneResourceService;
+//
+//    @PostMapping("/getSceneCnt")
+//    ResultData<SceneCntDTO> getSceneCnt(@RequestParam(value = "userId") Long userId, Long cameraId){
+//        SceneCntDTO sceneCntDTO = userSceneService.getSceneCnt(userId, cameraId);
+//        return ResultData.ok(sceneCntDTO);
+//    }
+//
+//    @PostMapping("/getSceneNumByCameraId")
+//    ResultData<Integer> getSceneNumByCameraId(@RequestParam(value = "cameraId") Long cameraId,
+//                                              @RequestParam(value = "cameraType")Integer cameraType,
+//                                              @RequestParam(value = "snCode")String snCode) {
+//        Integer sceneNum = userSceneService.getSceneNumByCameraId(cameraId,cameraType,snCode);
+//        return ResultData.ok(sceneNum);
+//    }
+//
+//    @PostMapping("/getLastSceneByCameraId")
+//    ResultData<SceneProDTO> getLastSceneByCameraId(@RequestParam(value = "cameraId") Long cameraId){
+//        return ResultData.ok(userSceneService.getLastSceneByCameraId(cameraId));
+//    }
+//
+//    @PostMapping("/updateSceneDownloadLog")
+//    ResultData updateSceneDownloadLog(@RequestParam(value = "num") String num,
+//        @RequestParam(value = "status") Integer status, String url, String reason){
+//        sceneDownloadLogService.updateSceneDownloadLog(num, status, url, reason);
+//        return ResultData.ok();
+//    }
+//
+//    @PostMapping("/getSceneViewInfo")
+//    ResultData<SceneInfoDTO> getSceneViewInfo(@RequestParam(value = "num") String num) throws Exception{
+//        return ResultData.ok(
+//            sceneEditInfoService.getSceneInfo4Download(
+//                SceneInfoParamVO.builder().num(num).build()));
+//    }
+//    @Autowired
+//    private ISceneProAppService sceneProAppService;
+//
+//    @PostMapping("/lockBeyondSpaceScenes")
+//    ResultData lockBeyondSpaceScenes(@RequestParam(value = "usedSpace")Long usedSpace,
+//                                     @RequestParam(value = "totalSpace")Long totalSpace,
+//                                     @RequestParam(value = "cameraId")Long cameraId) throws Exception{
+//        sceneProAppService.lockBeyondSpaceScenes(usedSpace,totalSpace,cameraId);
+//        return ResultData.ok();
+//    }
+//
+//    @PostMapping("/unlockBeyondSpaceScenes")
+//    ResultData unlockBeyondSpaceScenes(@RequestParam(value = "usedSpace")Long usedSpace,
+//                                       @RequestParam(value = "cameraId")Long cameraId) throws Exception{
+//        sceneProAppService.unlockBeyondSpaceScenes(usedSpace,cameraId);
+//        return ResultData.ok();
+//    }
+//    @PostMapping("/findAllByYesterday")
+//    ResultData<List<ScenePO>> findAllByYesterday() throws Exception{
+//        List<ScenePO> allByYesterday = sceneService.findAllByYesterday();
+//        List<ScenePODTO> List = new ArrayList<>();
+//        for (ScenePO scenePO : allByYesterday) {
+//            ScenePODTO scenePODTO = new ScenePODTO();
+//            BeanUtils.copyProperties(scenePO,scenePODTO);
+//            List.add(scenePODTO);
+//        }
+//        return ResultData.ok(List);
+//    }
+//
+//    @PostMapping("/updatePayStatus")
+//    ResultData updatePayStatus(@RequestParam(value = "num")String num ,
+//                               @RequestParam(value = "payStatus")Integer payStatus){
+//        sceneService.updatePayStatus(num,payStatus);
+//        return ResultData.ok();
+//    }
+//
+//    @PostMapping("/updateUserIdByCameraId")
+//    ResultData updateUserIdByCameraId(@RequestParam(value = "userId")Long userId,
+//                                      @RequestParam(value = "cameraId")Long cameraId) throws Exception{
+//
+//        sceneService.updateUserIdByCameraId(userId,cameraId);
+//        sceneProService.updateUserIdByCameraId(userId,cameraId);
+//        return ResultData.ok();
+//    }
+//
+//    @PostMapping("/getSceneCount")
+//    ResultData getSceneCount(@RequestParam(value = "cameraId")Long cameraId,
+//                             @RequestParam(value = "userId")Long userId ,
+//                             @RequestParam(value = "cameraType")Integer cameraType ) throws Exception{
+//        if(cameraId!=null){
+//            return ResultData.ok(sceneProService.getSceneCount(cameraId,null));
+//        }
+//        if(cameraType == null || cameraType != 4){
+//            return ResultData.ok(sceneService.getSceneCount(null,userId));
+//        }
+//        return ResultData.ok(sceneProService.getSceneCount(null,userId));
+//    }
+//
+//
+//    @PostMapping("/disableCooperation")
+//    ResultData disableCooperation(@RequestParam(value = "cameraId")Long cameraId,
+//                                 @RequestParam(value = "snCode")String snCode,
+//                                 @RequestParam(value = "cooperationUserName")String cooperationUserName){
+//
+//        sceneResourceCameraService.deleteByCameraId(cameraId);
+//        deleteCooperation(cameraId);
+//        if(StringUtils.isEmpty(snCode)){
+//            fdkkLaserService.disableCooperation(snCode,cooperationUserName);
+//        }
+//        return ResultData.ok();
+//    }
+//
+//
+//    @PostMapping("/saveCooperation")
+//    ResultData saveCooperation(@RequestParam(value = "cameraId") Long cameraId,
+//                               @RequestParam(value = "resourceIds") String resourceIds,
+//                               @RequestParam(value = "userId") Long userId,
+//                               @RequestParam(value = "snCode")String snCode,
+//                               @RequestParam(value = "cooperationUserName")String cooperationUserName){
+//        sceneResourceCameraService.saveByResourceIds(cameraId,resourceIds);
+//        List<SceneProPO> sceneProPOS = deleteCooperation(cameraId);
+//        sceneCooperationService.saveByResourceIds(sceneProPOS,cameraId,resourceIds,userId);
+//
+//        if(StringUtils.isEmpty(snCode)){
+//            fdkkLaserService.disableCooperation(snCode,cooperationUserName);
+//            fdkkLaserService.enableCameraCooperation(snCode,cooperationUserName);
+//        }
+//        return ResultData.ok();
+//    }
+//
+//    private List<SceneProPO>  deleteCooperation(Long cameraId){
+//        List<SceneProPO> sceneProList = sceneProService.findByCameraIdPro(cameraId);
+//        if(!CollectionUtils.isEmpty(sceneProList)) {
+//            List<String> numList = sceneProList.stream().map(SceneProPO::getNum).collect(Collectors.toList());
+//            List<SceneCooperation> list = sceneCooperationService.getListByNums(numList);
+//            List<Long> cooIds = list.parallelStream().map(SceneCooperation::getId).collect(Collectors.toList());
+//            if(cooIds.size() >0){
+//                //删除相机下每个场景的关联关系
+//                sceneResourceCooperationService.deleteByCooperationIds(cooIds);
+//                sceneCooperationService.updateRecStatusList(cooIds);
+//            }
+//        }
+//        return sceneProList;
+//    }
+//
+//    @PostMapping("/updateImageVersionFromSceneProEdit")
+//    ResultData updateImageVersionFromSceneProEdit(@RequestParam(value = "num" ) String num){
+//        sceneProEditService.updateImageVersionByNum(num);
+//        return ResultData.ok();
+//    }
+//
+//    @PostMapping("/getSceneResourceByCameraId")
+//    ResultData getSceneResourceByCameraId(@RequestParam(value = "cameraId" ) Long cameraId){
+//        return ResultData.ok(sceneResourceService.findByCameraId(cameraId));
+//    }
+//    @PostMapping("/checkDownLoad")
+//    ResultData checkDownLoad(@RequestParam(value = "sceneNum") String sceneNum){
+//        return sceneProService.checkDownLoad(sceneNum);
+//    }
+//
+//    @PostMapping("/findByCameraIds")
+//    ResultData findByCameraIds(@RequestParam(value = "cameraIds") String cameraIds,
+//                                      @RequestParam(value = "startTime") String startTime,
+//                                      @RequestParam(value = "endTime")   String endTime){
+//        return ResultData.ok( sceneProService.findByCameraIds(cameraIds,startTime,endTime));
+//    }
+//}
+//

+ 99 - 0
src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -0,0 +1,99 @@
+package com.fdkankan.scene.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 com.fdkankan.db.base.BaseEntity;
+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") + "\\4dkankan-center-scene";
+
+        generate(path,"scene", getTables(new String[]{
+                "t_scene_resource_cooperation"
+        }));
+
+//        generate(path,"goods", getTables(new String[]{
+//                        "t_camera","t_camera_detail","t_camera_out","t_camera_space","t_camera_version",
+//                        "t_company","t_goods","t_goods_sku","t_cart","t_goods_spec",
+//                        "t_goods_spec_value","t_goods_spu_spec","t_sn_code"
+//        }));
+//
+//        generate(path,"order", getTables(new String[]{
+//                        "t_increment_order","t_invoice","t_order","t_order_item",
+//                        "t_pre_sale","t_space_sdk","t_trade_log","t_commerce_order","t_download_order","t_expansion_order"
+//        }));
+//        generate(path,"order", getTables(new String[]{
+//                        "t_virtual_order"
+//        }));
+//
+//        generate(path,"user", getTables(new String[]{
+//                        "t_user","t_user_increment","t_manager","t_province","t_increment_type","t_intercom_message","t_receiver_info"
+//        }));
+    }
+
+    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.144.164:3306/4dkankan_v4",
+            "root","4Dage@4Dage#@168")
+                .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();
+    }
+}

+ 56 - 0
src/main/java/com/fdkankan/scene/httpclient/FdkankanMiniClient.java

@@ -0,0 +1,56 @@
+package com.fdkankan.scene.httpclient;
+
+import com.dtflys.forest.annotation.Body;
+import com.dtflys.forest.annotation.Header;
+import com.dtflys.forest.annotation.Post;
+import com.dtflys.forest.annotation.Retry;
+import com.dtflys.forest.annotation.Success;
+import com.dtflys.forest.annotation.Var;
+import com.dtflys.forest.callback.OnError;
+import com.dtflys.forest.callback.OnSuccess;
+import com.fdkankan.common.response.Result;
+import com.fdkankan.scene.bean.RequestSceneProV4;
+import com.fdkankan.scene.callback.FdkkMiniReqSuccessCondition;
+import java.util.Map;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/24
+ **/
+@Success(condition = FdkkMiniReqSuccessCondition.class)
+public interface FdkankanMiniClient {
+
+//    @Get(url="{url}"
+////        ,interceptor = TLogForestInterceptor.class    加这个拦截器,打印的tlog日志会详细一些,包括头信息等等
+//    )
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result<String> getDataSyncType(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
+//
+//    @Get("{url}")
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result<UserIncrementBean> getUserIncrementByCameraId(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
+//
+//    @Get("{url}")
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result<CameraBean> getCameraByCameraId(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
+
+//    @Get(url="{url}")
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result<SceneProV3> getSceneProByNum(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
+
+//    @Post(url="{url}")
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result<Map<String, Object>> getIsLogin(@Var("url") String url, @Header("token") String token, OnSuccess<Result> onSuccess, OnError onError);
+//
+//    @Post(
+//        url = "${url}",
+//        contentType = "application/json"
+//    )
+//    @Retry(maxRetryCount = "3", maxRetryInterval = "100")
+//    Result upgradeToV4ResultSync(@Var("url") String url, @Body RequestSceneProV4 param, OnSuccess<Result> onSuccess, OnError onError);
+
+}

+ 131 - 0
src/main/java/com/fdkankan/scene/listener/RabbitMqListener.java

@@ -0,0 +1,131 @@
+//package com.fdkankan.scene.listener;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.fdkankan.rabbitmq.bean.BuildSceneCallMessage;
+//import com.fdkankan.rabbitmq.bean.BuildSceneFailDTMqMessage;
+//import com.fdkankan.rabbitmq.bean.BuildSceneResultMqMessage;
+//import com.fdkankan.scene.service.IBuildSceneDTService;
+//import com.fdkankan.scene.service.IBuildScenePostService;
+//import com.fdkankan.scene.service.IBuildScenePreService;
+//import com.fdkankan.scene.service.impl.BuildSceneDTServiceImpl;
+//import com.rabbitmq.client.Channel;
+//import java.nio.charset.StandardCharsets;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.amqp.core.Message;
+//import org.springframework.amqp.rabbit.annotation.Queue;
+//import org.springframework.amqp.rabbit.annotation.RabbitListener;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * <p>
+// * TODO
+// * </p>
+// *
+// * @author dengsixing
+// * @since 2022/4/19
+// **/
+//@Slf4j
+//@Component
+//public class RabbitMqListener {
+//    @Value("${queue.modeling.modeling-pre}")
+//    private String queueModelingPre;
+//    @Value("${queue.modeling.modeling-post}")
+//    private String queueModelingPost;
+//    @Value("${queue.modeling.modeling-dt}")
+//    private String queueModelingDt;
+//
+//    @Autowired
+//    IBuildScenePreService buildScenePreService;
+//    @Autowired
+//    IBuildScenePostService buildScenePostService;
+//    @Autowired
+//    IBuildSceneDTService buildSceneDTService;
+//
+//
+//
+//    /**
+//     * 开启了手动确认模式,如果没有手动确认,消费者不会重试,当服务重启时会再次消费,因为rabbitmq认为你还没有处理完你的业务
+//     * queuesToDeclare = @Queue("${queue.modeling.modeling-test}"),  如果队列不不存在会自动创建队列
+//     * concurrency = "3"    设置消费线程数,每个线程每次只拉取一条消息消费
+//     */
+////    @RabbitListener(
+////        queuesToDeclare = @Queue("${queue.modeling.modeling-test}"),
+////        concurrency = "1"
+////    )
+////    public void receiveMessageDsx(Channel channel, Message message) throws Exception {
+////        channel.queueDeclare();
+////        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+////        log.info("开始消费消息-" + msg + "-" + Thread.currentThread().getId());
+////        Thread.sleep(5000L);
+////        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+////        log.info("结束消息-" + Thread.currentThread().getId());
+////    }
+//
+//
+//    /**
+//     * 场景计算前置资源准备处理
+//     * @param channel
+//     * @param message
+//     * @throws Exception
+//     */
+//    @RabbitListener(
+//        queuesToDeclare = @Queue("${queue.modeling.modeling-pre}"),
+//        concurrency = "${maxThread.modeling.modeling-pre}"
+//    )
+//    public void buildScenePreHandler(Channel channel, Message message) throws Exception {
+//        Object correlation = message.getMessageProperties().getHeader("spring_returned_message_correlation");
+//        String correlationId = (String) correlation;
+//        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+//        log.info("场景计算资源准备开始,队列名:{},id:{},消息体:{}", queueModelingPre, correlationId, msg);
+//        BuildSceneCallMessage buildSceneMessage = JSONObject.parseObject(msg, BuildSceneCallMessage.class);
+//        Thread.sleep(2000L);
+//        buildScenePreService.buildScenePre(buildSceneMessage);
+//        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+//    }
+//
+//    /**
+//     * 场景计算后置结果处理
+//     * @param channel
+//     * @param message
+//     * @throws Exception
+//     */
+//    @RabbitListener(
+//        queuesToDeclare = @Queue("${queue.modeling.modeling-post}"),
+//        concurrency = "${maxThread.modeling.modeling-post}"
+//    )
+//    public void buildScenePostHandler(Channel channel, Message message) throws Exception {
+//        Object correlation = message.getMessageProperties().getHeader("spring_returned_message_correlation");
+//        String correlationId = (String) correlation;
+//        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+//        log.info("场景计算结果处理开始,队列名:{},id:{},消息体:{}", queueModelingPost, correlationId, msg);
+//        BuildSceneResultMqMessage resultMessage = JSONObject.parseObject(msg, BuildSceneResultMqMessage.class);
+//        Thread.sleep(2000L);
+//        buildScenePostService.buildScenePost(resultMessage);
+//        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+//    }
+//
+//    /**
+//     * 场景计算发送钉钉消息
+//     * @param channel
+//     * @param message
+//     * @throws Exception
+//     */
+//    @RabbitListener(
+//        queuesToDeclare = @Queue("${queue.modeling.modeling-dt}"),
+//        concurrency = "${maxThread.modeling.modeling-dt}"
+//    )
+//    public void buildSceneDTHandler(Channel channel, Message message) throws Exception {
+//        Object correlation = message.getMessageProperties().getHeader("spring_returned_message_correlation");
+//        String correlationId = (String) correlation;
+//        String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+//        log.info("发送钉钉消息处理,队列名:{},id:{},消息体:{}", queueModelingDt, correlationId, msg);
+//        BuildSceneFailDTMqMessage dtMessage = JSONObject.parseObject(msg, BuildSceneFailDTMqMessage.class);
+//        buildSceneDTService.handFail(dtMessage.getReason(), dtMessage.getServerPath(),
+//            dtMessage.getNum(), dtMessage.getHostName(), BuildSceneDTServiceImpl.contentExt);
+//        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+//    }
+//
+//
+//}

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

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

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

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

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ICompanyMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.Company;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 客户企业logo信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@Mapper
+public interface ICompanyMapper extends BaseMapper<Company> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneCooperationMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneCooperation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@Mapper
+public interface ISceneCooperationMapper extends BaseMapper<SceneCooperation> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneDataDownloadMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneDataDownload;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 安居客场景数据下载 Mapper 接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-23
+ */
+@Mapper
+public interface ISceneDataDownloadMapper extends BaseMapper<SceneDataDownload> {
+
+}

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

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

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

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

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

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

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

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

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

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

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

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

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneRepairLogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneRepairLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景数据迁移日志--V4版本稳定后可删除 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-04-22
+ */
+@Mapper
+public interface ISceneRepairLogMapper extends BaseMapper<SceneRepairLog> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneResourceCooperationMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneResourceCooperation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@Mapper
+public interface ISceneResourceCooperationMapper extends BaseMapper<SceneResourceCooperation> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneResourceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneResource;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 场景资源表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+@Mapper
+public interface ISceneResourceMapper extends BaseMapper<SceneResource> {
+
+}

+ 42 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneUpgradeMapper.java

@@ -0,0 +1,42 @@
+package com.fdkankan.scene.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 文件夹表 Mapper 接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-24
+ */
+@Mapper
+public interface ISceneUpgradeMapper extends BaseMapper {
+
+    public void transferScenePro(Long sceneProId);
+
+    public void transferSceneProExt(Long sceneProId);
+
+    public void transferScenePlus(Long sceneProId);
+
+    public void transferScenePlusExt(Long sceneProId);
+
+    public void transferSceneProEdit(Long sceneProEditId);
+
+    public void transferSceneProEditExt(Long sceneProEditId);
+
+    public void deleteSceneProEdit(Long sceneProEditId);
+
+    public void deleteSceneProEditExt(Long sceneProEditId);
+
+    public void deleteScenePlus(Long sceneProId);
+
+    public void deleteScenePlusExt(Long sceneProId);
+
+    public void deleteScenePro(Long sceneProId);
+
+    public void deleteSceneProExt(Long sceneProId);
+
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ISceneUploadMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.SceneUpload;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-19
+ */
+@Mapper
+public interface ISceneUploadMapper extends BaseMapper<SceneUpload> {
+
+}

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

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

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

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

+ 18 - 0
src/main/java/com/fdkankan/scene/service/ICameraDetailService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.CameraDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机子表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ICameraDetailService extends IService<CameraDetail> {
+
+    CameraDetail getByCameraId(long cameraId);
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/service/ICameraService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.Camera;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 相机主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ICameraService extends IService<Camera> {
+
+    Camera findByChildName(String childName);
+
+}

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

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.Company;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 客户企业logo信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ICompanyService extends IService<Company> {
+
+}

+ 24 - 0
src/main/java/com/fdkankan/scene/service/IFileConvertService.java

@@ -0,0 +1,24 @@
+package com.fdkankan.scene.service;
+
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/5/17
+ **/
+public interface IFileConvertService {
+
+    void convertTxtToModeldata(MultipartFile file, HttpServletResponse response) throws Exception;
+
+    void convertTxtToDam(MultipartFile file, HttpServletResponse response) throws Exception;
+
+    void convertTxtToLzma(MultipartFile file, HttpServletResponse response) throws Exception;
+
+
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/service/ISceneCooperationService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneCooperation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ISceneCooperationService extends IService<SceneCooperation> {
+
+    SceneCooperation getByNum(String num);
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/service/ISceneDataDownloadService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneDataDownload;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 安居客场景数据下载 服务类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-23
+ */
+public interface ISceneDataDownloadService extends IService<SceneDataDownload> {
+
+    SceneDataDownload findBySceneNum(String sceneNum);
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/service/ISceneEditControlsService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneEditControls;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+public interface ISceneEditControlsService extends IService<SceneEditControls> {
+
+    SceneEditControls getBySceneEditId(long sceneEditInfoId);
+
+}

+ 24 - 0
src/main/java/com/fdkankan/scene/service/ISceneEditInfoExtService.java

@@ -0,0 +1,24 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.SceneEditInfoExt;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-07
+ */
+public interface ISceneEditInfoExtService extends IService<SceneEditInfoExt> {
+
+    SceneEditInfoExt getBySceneProId(long sceneProId);
+
+    SceneEditInfoExt getByScenePlusId(long scenePlusId);
+
+    SceneEditInfoExt getByEditInfoId(long editInfoId);
+
+    void updateToursByNum(String num, Integer tours);
+
+}

+ 84 - 0
src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -0,0 +1,84 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.SceneEditInfo;
+import com.fdkankan.scene.vo.BallScreenVideoParamVO;
+import com.fdkankan.scene.vo.BaseDataParamVO;
+import com.fdkankan.scene.vo.DeleteSidParamVO;
+import com.fdkankan.scene.vo.DownloadVO;
+import com.fdkankan.scene.vo.FileNameAndDataParamVO;
+import com.fdkankan.scene.vo.FileParamVO;
+import com.fdkankan.scene.vo.RenameCadParamVO;
+import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
+import com.fdkankan.scene.vo.SceneEditInfoParamVO;
+import com.fdkankan.scene.vo.SceneEditInfoVO;
+import com.fdkankan.scene.vo.SceneInfoParamVO;
+import com.fdkankan.scene.vo.SceneInfoVO;
+import java.io.IOException;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-01-18
+ */
+public interface ISceneEditInfoService extends IService<SceneEditInfo> {
+
+    SceneEditInfoVO saveScene(SceneEditInfoParamVO param);
+
+    SceneEditInfo getBySceneProId(long sceneProId);
+
+    SceneEditInfo getByScenePlusId(long scenePlusId);
+
+    ResultData publicScene(SceneEditInfoParamVO param) throws Exception;
+
+    SceneInfoVO getSceneInfo(SceneInfoParamVO param) throws Exception;
+
+//    ResultData saveUpload(SaveUploadParamVO param) throws Exception;
+
+    ResultData saveCad(BaseDataParamVO param) throws Exception;
+
+    ResultData resetCad(String num);
+
+    ResultData renameCad(RenameCadParamVO param) throws IOException;
+
+    void upgradeVersionById(Long id);
+
+    void upgradeSceneJsonVersion(String num, int version) throws IOException ;
+
+    ResultData uploadPanorama(String num, MultipartFile file) throws Exception;
+
+    ResultData downloadPanorama(FileParamVO param) throws Exception;
+
+    void saveTagsToSceneEditInfo(String num, SceneEditInfo sceneEditInfo);
+
+    ResultData saveVideoBox(FileNameAndDataParamVO param) throws Exception;
+
+    ResultData deleteVideoBox(DeleteSidParamVO param) throws Exception;
+
+    ResultData saveBoxPhoto(BaseDataParamVO param) throws Exception;
+
+    ResultData deleteBoxPhoto(DeleteSidParamVO param) throws Exception;
+
+    DownloadVO downloadBallScreenVideo(BallScreenVideoParamVO param);
+
+    ResultData uploadBallScreenVideo(String num,String fileName,MultipartFile file) throws Exception;
+
+    void upgradeVersionToSceneJson(String num) throws Exception;
+
+    ResultData sceneSync(String num, String type, String floorPlanJson, String ajkJson, String cameraJson, MultipartFile[] files) throws Exception;
+
+    ResultData checkKey(SceneCheckKeyParamVO param) throws Exception;
+
+    ResultData addMosaics(@RequestBody @Validated BaseDataParamVO param) throws Exception;
+
+
+
+
+}

+ 31 - 0
src/main/java/com/fdkankan/scene/service/ISceneEditService.java

@@ -0,0 +1,31 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.web.user.SSOUser;
+import com.fdkankan.scene.vo.BaseDataParamVO;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+import com.fdkankan.scene.vo.LocalesParamVO;
+import com.fdkankan.scene.vo.SceneAuthVO;
+import java.io.IOException;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * <p>
+ * 场景编辑
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/3/11
+ **/
+public interface ISceneEditService {
+
+    SceneAuthVO getAuth(String num, SSOUser ssoUser) throws Exception;
+
+    ResultData locales(LocalesParamVO param) throws Exception;
+
+    ResultData saveTour(BaseDataParamVO param) throws IOException;
+
+    ResultData deleteTour(BaseSceneParamVO param) throws Exception;
+
+}

+ 18 - 0
src/main/java/com/fdkankan/scene/service/IScenePlusExtService.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.ScenePlusExt;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-16
+ */
+public interface IScenePlusExtService extends IService<ScenePlusExt> {
+
+    ScenePlusExt getScenePlusExtByPlusId(long plusId);
+
+}

+ 31 - 0
src/main/java/com/fdkankan/scene/service/IScenePlusService.java

@@ -0,0 +1,31 @@
+package com.fdkankan.scene.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.ScenePlus;
+import com.fdkankan.scene.vo.SceneCheckKeyParamVO;
+import java.util.List;
+
+/**
+ * <p>
+ * 场景主表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-03-16
+ */
+public interface IScenePlusService extends IService<ScenePlus> {
+
+    ScenePlus getScenePlusByNum(String num);
+
+    ResultData checkKey(SceneCheckKeyParamVO param) throws Exception;
+
+    ResultData updateScenePlusUserIdByCameraId(List<Long> cameraIdList, Long userId);
+
+    ResultData moveScene(List<String> numList, Long cameraId, Long userId);
+
+    ScenePlus checkSceneAvail(String num);
+
+    ResultData updateViewCount(String num) throws Exception;
+
+}

+ 44 - 0
src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -0,0 +1,44 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.entity.ScenePro;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.vo.BaseDataParamVO;
+import com.fdkankan.scene.vo.DeleteHotIconParamVO;
+import com.fdkankan.scene.vo.DeleteHotParamVO;
+import com.fdkankan.scene.vo.FileNameAndDataParamVO;
+import com.fdkankan.scene.vo.SaveTagsParamVO;
+import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ * pro场景表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-11
+ */
+public interface ISceneProService extends IService<ScenePro> {
+
+    ScenePro findBySceneNum(String sceneNum);
+
+    ResultData saveInitialPage(FileNameAndDataParamVO param) throws Exception;
+
+    ResultData addOrUpdateTag(SaveTagsParamVO param) throws Exception;
+
+    ResultData deleteTag(DeleteHotParamVO param) throws Exception;
+
+    ResultData listTags(String num) throws Exception;
+
+    ResultData deleteIcons(DeleteHotIconParamVO param) throws Exception;
+
+    ResultData saveRoam(BaseDataParamVO param) throws Exception;
+
+    ResultData saveTagsVisible(SaveTagsVisibleParamVO param) throws Exception;
+
+    ResultData downloadTexData(String num) throws Exception ;
+
+    ResultData uploadObjAndImg(String num, MultipartFile file) throws Exception;
+
+}

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

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneRepairLog;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 场景数据迁移日志--V4版本稳定后可删除 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-04-22
+ */
+public interface ISceneRepairLogService extends IService<SceneRepairLog> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneResourceCooperation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ISceneResourceCooperationService extends IService<SceneResourceCooperation> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/service/ISceneResourceService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.SceneResource;
+import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
+/**
+ * <p>
+ * 场景资源表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-18
+ */
+public interface ISceneResourceService extends IService<SceneResource> {
+
+    List<SceneResource> findByCooperationId(Long resourceCooperationId);
+
+}

+ 19 - 0
src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -0,0 +1,19 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.vo.BaseSceneParamVO;
+
+/**
+ * <p>
+ * 场景表 服务类
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2021-12-23
+ */
+public interface ISceneService  {
+
+
+    ResultData downLoadZSData(BaseSceneParamVO param) throws Exception;
+
+}

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


Some files were not shown because too many files changed in this diff