Browse Source

代码复制

lyhzzz 3 years ago
parent
commit
45c24a72c9
100 changed files with 6779 additions and 6 deletions
  1. 143 6
      pom.xml
  2. 33 0
      src/main/java/com/fdkankan/manage/ManageApplication.java
  3. 197 0
      src/main/java/com/fdkankan/manage/aop/VisitLogInterceptor.java
  4. 61 0
      src/main/java/com/fdkankan/manage/common/CameraTypeEnum.java
  5. 25 0
      src/main/java/com/fdkankan/manage/common/Dict.java
  6. 32 0
      src/main/java/com/fdkankan/manage/config/MenuInit.java
  7. 102 0
      src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java
  8. 50 0
      src/main/java/com/fdkankan/manage/config/StpInterfaceImpl.java
  9. 34 0
      src/main/java/com/fdkankan/manage/config/WebAppConfig.java
  10. 12 0
      src/main/java/com/fdkankan/manage/constant/CameraConstant.java
  11. 51 0
      src/main/java/com/fdkankan/manage/constant/CameraOutTypeEnum.java
  12. 67 0
      src/main/java/com/fdkankan/manage/controller/AppFileController.java
  13. 29 0
      src/main/java/com/fdkankan/manage/controller/BaseController.java
  14. 98 0
      src/main/java/com/fdkankan/manage/controller/CameraController.java
  15. 48 0
      src/main/java/com/fdkankan/manage/controller/CameraOrderController.java
  16. 63 0
      src/main/java/com/fdkankan/manage/controller/CameraVersionController.java
  17. 39 0
      src/main/java/com/fdkankan/manage/controller/CommonController.java
  18. 58 0
      src/main/java/com/fdkankan/manage/controller/CompanyController.java
  19. 68 0
      src/main/java/com/fdkankan/manage/controller/DataController.java
  20. 35 0
      src/main/java/com/fdkankan/manage/controller/DownOrderController.java
  21. 71 0
      src/main/java/com/fdkankan/manage/controller/EmployNoteController.java
  22. 76 0
      src/main/java/com/fdkankan/manage/controller/ExcelController.java
  23. 30 0
      src/main/java/com/fdkankan/manage/controller/FollowHeartController.java
  24. 35 0
      src/main/java/com/fdkankan/manage/controller/IncrementOrderController.java
  25. 39 0
      src/main/java/com/fdkankan/manage/controller/IntercomMessageController.java
  26. 107 0
      src/main/java/com/fdkankan/manage/controller/InvoiceController.java
  27. 36 0
      src/main/java/com/fdkankan/manage/controller/LoginController.java
  28. 62 0
      src/main/java/com/fdkankan/manage/controller/LookSpaceController.java
  29. 115 0
      src/main/java/com/fdkankan/manage/controller/NewsController.java
  30. 48 0
      src/main/java/com/fdkankan/manage/controller/OperLogController.java
  31. 55 0
      src/main/java/com/fdkankan/manage/controller/OverallController.java
  32. 122 0
      src/main/java/com/fdkankan/manage/controller/SceneController.java
  33. 89 0
      src/main/java/com/fdkankan/manage/controller/SpaceSdkController.java
  34. 70 0
      src/main/java/com/fdkankan/manage/controller/SysMenuController.java
  35. 66 0
      src/main/java/com/fdkankan/manage/controller/SysRoleController.java
  36. 64 0
      src/main/java/com/fdkankan/manage/controller/SysUserController.java
  37. 111 0
      src/main/java/com/fdkankan/manage/controller/UserController.java
  38. 105 0
      src/main/java/com/fdkankan/manage/entity/Agent.java
  39. 59 0
      src/main/java/com/fdkankan/manage/entity/AppFile.java
  40. 83 0
      src/main/java/com/fdkankan/manage/entity/Camera.java
  41. 146 0
      src/main/java/com/fdkankan/manage/entity/CameraDetail.java
  42. 63 0
      src/main/java/com/fdkankan/manage/entity/CameraOut.java
  43. 89 0
      src/main/java/com/fdkankan/manage/entity/CameraSpace.java
  44. 95 0
      src/main/java/com/fdkankan/manage/entity/CameraVersion.java
  45. 113 0
      src/main/java/com/fdkankan/manage/entity/Company.java
  46. 124 0
      src/main/java/com/fdkankan/manage/entity/DownloadOrder.java
  47. 89 0
      src/main/java/com/fdkankan/manage/entity/EmployNote.java
  48. 118 0
      src/main/java/com/fdkankan/manage/entity/IncrementOrder.java
  49. 89 0
      src/main/java/com/fdkankan/manage/entity/IntercomMessage.java
  50. 229 0
      src/main/java/com/fdkankan/manage/entity/Invoice.java
  51. 85 0
      src/main/java/com/fdkankan/manage/entity/InvoiceRegister.java
  52. 88 0
      src/main/java/com/fdkankan/manage/entity/LookSpace.java
  53. 91 0
      src/main/java/com/fdkankan/manage/entity/News.java
  54. 62 0
      src/main/java/com/fdkankan/manage/entity/OperLog.java
  55. 199 0
      src/main/java/com/fdkankan/manage/entity/Order.java
  56. 112 0
      src/main/java/com/fdkankan/manage/entity/OrderItem.java
  57. 275 0
      src/main/java/com/fdkankan/manage/entity/Scene.java
  58. 50 0
      src/main/java/com/fdkankan/manage/entity/SceneCooperation.java
  59. 47 0
      src/main/java/com/fdkankan/manage/entity/SceneCopyLog.java
  60. 74 0
      src/main/java/com/fdkankan/manage/entity/SceneDownloadLog.java
  61. 227 0
      src/main/java/com/fdkankan/manage/entity/ScenePro.java
  62. 281 0
      src/main/java/com/fdkankan/manage/entity/SceneProEdit.java
  63. 50 0
      src/main/java/com/fdkankan/manage/entity/SceneResourceCamera.java
  64. 50 0
      src/main/java/com/fdkankan/manage/entity/SceneResourceCooperation.java
  65. 102 0
      src/main/java/com/fdkankan/manage/entity/SpaceSdk.java
  66. 89 0
      src/main/java/com/fdkankan/manage/entity/SysMenu.java
  67. 70 0
      src/main/java/com/fdkankan/manage/entity/SysRole.java
  68. 39 0
      src/main/java/com/fdkankan/manage/entity/SysRoleMenu.java
  69. 76 0
      src/main/java/com/fdkankan/manage/entity/SysUser.java
  70. 138 0
      src/main/java/com/fdkankan/manage/entity/User.java
  71. 98 0
      src/main/java/com/fdkankan/manage/entity/UserIncrement.java
  72. 98 0
      src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  73. 20 0
      src/main/java/com/fdkankan/manage/httpClient/FdKKClient.java
  74. 13 0
      src/main/java/com/fdkankan/manage/httpClient/LaserClient.java
  75. 19 0
      src/main/java/com/fdkankan/manage/httpClient/OverallClient.java
  76. 22 0
      src/main/java/com/fdkankan/manage/httpClient/address/FdkkAddressSource.java
  77. 22 0
      src/main/java/com/fdkankan/manage/httpClient/address/LaserAddressSource.java
  78. 22 0
      src/main/java/com/fdkankan/manage/httpClient/address/OverallAddressSource.java
  79. 11 0
      src/main/java/com/fdkankan/manage/httpClient/vo/OverallParam.java
  80. 11 0
      src/main/java/com/fdkankan/manage/httpClient/vo/OverallVo.java
  81. 18 0
      src/main/java/com/fdkankan/manage/mapper/IAgentMapper.java
  82. 18 0
      src/main/java/com/fdkankan/manage/mapper/IAppFileMapper.java
  83. 25 0
      src/main/java/com/fdkankan/manage/mapper/ICameraDetailMapper.java
  84. 23 0
      src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java
  85. 18 0
      src/main/java/com/fdkankan/manage/mapper/ICameraOutMapper.java
  86. 18 0
      src/main/java/com/fdkankan/manage/mapper/ICameraSpaceMapper.java
  87. 18 0
      src/main/java/com/fdkankan/manage/mapper/ICameraVersionMapper.java
  88. 22 0
      src/main/java/com/fdkankan/manage/mapper/ICompanyMapper.java
  89. 26 0
      src/main/java/com/fdkankan/manage/mapper/IDataMapper.java
  90. 22 0
      src/main/java/com/fdkankan/manage/mapper/IDownloadOrderMapper.java
  91. 18 0
      src/main/java/com/fdkankan/manage/mapper/IEmployNoteMapper.java
  92. 23 0
      src/main/java/com/fdkankan/manage/mapper/IIncrementOrderMapper.java
  93. 18 0
      src/main/java/com/fdkankan/manage/mapper/IIntercomMessageMapper.java
  94. 24 0
      src/main/java/com/fdkankan/manage/mapper/IInvoiceMapper.java
  95. 18 0
      src/main/java/com/fdkankan/manage/mapper/IInvoiceRegisterMapper.java
  96. 18 0
      src/main/java/com/fdkankan/manage/mapper/ILookSpaceMapper.java
  97. 23 0
      src/main/java/com/fdkankan/manage/mapper/INewsMapper.java
  98. 23 0
      src/main/java/com/fdkankan/manage/mapper/IOrderItemMapper.java
  99. 22 0
      src/main/java/com/fdkankan/manage/mapper/IOrderMapper.java
  100. 0 0
      src/main/java/com/fdkankan/manage/mapper/ISceneCooperationMapper.java

+ 143 - 6
pom.xml

@@ -1,12 +1,149 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
-    <groupId>org.example</groupId>
-    <artifactId>4dkankan-center-manage</artifactId>
-    <version>1.0-SNAPSHOT</version>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.fdkankan.manage</groupId>
+  <artifactId>4dkankan-center-manage</artifactId>
+  <version>1.0.0</version>
+  <packaging>jar</packaging>
+
+  <parent>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-parent</artifactId>
+    <version>2.3.12.RELEASE</version>
+    <relativePath/>
+  </parent>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>com.fdkankan</groupId>
+      <artifactId>4dkankan-common-utils</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>com.fdkankan</groupId>
+      <artifactId>4dkankan-utils-redis</artifactId>
+      <version>2.0.0-SNAPSHOT</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.fdkankan</groupId>
+      <artifactId>4dkankan-utils-mongodb</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>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-aop</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+      <version>2.2.7.RELEASE</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.alibaba.cloud</groupId>
+      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+      <version>2.2.7.RELEASE</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>fastjson</artifactId>
+      <version>1.2.83</version>
+    </dependency>
+
+
+
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-validation</artifactId>
+    </dependency>
+
+
+    <!--htt请求工具-->
+    <dependency>
+      <groupId>com.dtflys.forest</groupId>
+      <artifactId>forest-spring-boot-starter</artifactId>
+      <version>1.5.24</version>
+    </dependency>
+
+<!--    分布式日志追踪-->
+    <dependency>
+      <groupId>com.yomahub</groupId>
+      <artifactId>tlog-web-spring-boot-starter</artifactId>
+      <version>1.3.6</version>
+    </dependency>
+
+    <dependency>
+      <groupId>com.alibaba</groupId>
+      <artifactId>easyexcel</artifactId>
+      <version>3.1.0</version>
+    </dependency>
+
+    <!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
+    <dependency>
+      <groupId>cn.dev33</groupId>
+      <artifactId>sa-token-spring-boot-starter</artifactId>
+      <version>1.30.0</version>
+    </dependency>
+    <!-- Sa-Token 整合 jwt -->
+    <dependency>
+      <groupId>cn.dev33</groupId>
+      <artifactId>sa-token-jwt</artifactId>
+      <version>1.30.0</version>
+    </dependency>
+
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <testFailureIgnore>true</testFailureIgnore>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>8</source>
+          <target>8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+
+  </build>
 
 
 </project>

+ 33 - 0
src/main/java/com/fdkankan/manage/ManageApplication.java

@@ -0,0 +1,33 @@
+package com.fdkankan.manage;
+
+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;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/5/27
+ **/
+@SpringBootApplication
+@EnableTransactionManagement//开启事务
+@EnableDiscoveryClient
+@EnableScheduling
+@ComponentScan(basePackages = {"com.fdkankan.*"})
+@MapperScan("com.fdkankan.**.mapper")
+@ForestScan(basePackages = "com.fdkankan.manage.httpclient")
+public class ManageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ManageApplication.class, args);
+    }
+
+}

+ 197 - 0
src/main/java/com/fdkankan/manage/aop/VisitLogInterceptor.java

@@ -0,0 +1,197 @@
+package com.fdkankan.manage.aop;
+
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
+import cn.hutool.http.ContentType;
+import cn.hutool.http.useragent.UserAgent;
+import cn.hutool.http.useragent.UserAgentUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.manage.config.SaTokenConfigure;
+import com.fdkankan.manage.entity.OperLog;
+import com.fdkankan.manage.entity.SysUser;
+import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.redis.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+
+@Component
+@Aspect
+@Slf4j
+public class VisitLogInterceptor {
+
+	@Autowired
+	private RedisUtil redisUtil;
+
+	@Autowired
+	private MongoTemplate mongoTemplate;
+
+	@Autowired
+	private ISysUserService userService;
+
+	@Value("${server.servlet.context-path:null}")
+	private String contextPath;
+
+	// 切入点表达式
+	@Pointcut("execution(public * com.fdkankan.manage.controller..*.*(..))")
+	public void privilege() {
+	}
+
+	@Around("privilege()")
+	public Object around(ProceedingJoinPoint pjp) throws Throwable {
+
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+
+		//获取客户端ip
+		String clientIP = ServletUtil.getClientIP(request);
+
+		//获取uri
+		String uri = request.getRequestURI();
+		if(StrUtil.isNotEmpty(contextPath)){
+			uri = uri.replaceFirst(contextPath, "");
+		}
+
+		//获取请求方式
+		String method = request.getMethod();
+
+		//获取浏览器信息
+		String browser = this.getBrowser(request);
+		//获取操作路径
+		String requestPath = this.getRequestPath(uri);
+		//获取参数
+		String params = this.getParams(pjp, request);
+
+        //放行
+		Object result = pjp.proceed();
+		String resultStr = JSON.toJSONString(result);
+		JSONObject jsonObject = JSON.parseObject(resultStr);
+		String msg = "操作失败";
+		if(jsonObject.getInteger("code")== null || jsonObject.getInteger("code").equals(ServerCode.SUCCESS.code())){
+			msg = "操作成功";
+		}
+		//获取用户信息 如果已登录,从token中获取用户信息,如果是登录接口,查询数据库获取用户信息
+		Long userId =null;
+		String userName =null;
+		String nickName =null;
+		try {
+			 userId =   Long.valueOf(StpUtil.getExtra("userId").toString());
+			 userName = (String)StpUtil.getExtra("userName");
+			 nickName = (String)StpUtil.getExtra("nickName");
+		}catch (Exception e){
+			e.printStackTrace();
+			JSONObject paramObj = JSONObject.parseObject(params);
+			userName = paramObj.getString("userName");
+			SysUser sysUser = userService.getByUserName(userName);
+			if(sysUser != null){
+				userId = sysUser.getId();
+				nickName = sysUser.getNickName();
+			}
+		}
+		//写入mongodb
+		OperLog operLog = new OperLog();
+		operLog.setUserId(userId);
+		operLog.setUserName(userName);
+		operLog.setNickName(nickName);
+		operLog.setRequestPath(requestPath);
+		operLog.setUri(uri);
+		operLog.setMethod(method);
+		operLog.setParams(params);
+		operLog.setIp(clientIP);
+		operLog.setBrowser(browser);
+		operLog.setCreateTime(Calendar.getInstance().getTime());
+		operLog.setResult(msg);
+		operLog.setOperationType("manage");
+		mongoTemplate.insert(operLog);
+
+		return result;
+	}
+
+	private String getRequestPath(String uri) {
+		if(uri.contains("/login")){
+			return "登录";
+		}
+		JSONObject jsonObject = SaTokenConfigure.manageMenuUrl.get(uri);
+
+		if(StringUtils.isEmpty(jsonObject)){
+			return null;
+		}
+		List<String> list = new ArrayList<>();
+		getMenuName(list,jsonObject.getString("id"));
+		Collections.reverse(list);
+		StringBuilder requestPath = new StringBuilder();
+		for (String path : list) {
+			requestPath.append("[").append(path).append("]").append("->");
+		}
+		int i = requestPath.lastIndexOf("->");
+		if(i < 0){
+			return requestPath.toString();
+		}
+		return requestPath.substring(0,i);
+	}
+
+	private int getMenuName( List<String> list,String menuId){
+		JSONObject jsonObject = SaTokenConfigure.manageMenuId.get(menuId);
+		if(org.springframework.util.StringUtils.isEmpty(jsonObject)){
+			return -1;
+		}
+		list.add( jsonObject.getString("name"));
+		String parentId = jsonObject.getString("parentId");
+		if(!StringUtils.isEmpty(parentId)){
+			return getMenuName(list,parentId);
+		}
+		return 1;
+	}
+
+
+	private String getParams(JoinPoint pjp, HttpServletRequest request){
+
+		// 获取参数名称
+		String[] parameterNamesArgs = ((MethodSignature) pjp.getSignature()).getParameterNames();
+		//获取请求参数值
+		Object[] args = pjp.getArgs();
+
+		Map<String, Object> paramMap = new HashMap<>();
+		String contentType = request.getContentType();
+		if(ContentType.JSON.getValue().equals(contentType)){
+			return JSON.toJSONString(args[0]);
+		}else{
+			for (int i = 0; i < args.length; i++) {
+				if(args[i] instanceof MultipartFile){
+					paramMap.put(parameterNamesArgs[i], ((MultipartFile) args[i]).getOriginalFilename());
+					continue;
+				}
+				paramMap.put(parameterNamesArgs[i], args[i]);
+			}
+		}
+		return JSON.toJSONString(paramMap);
+	}
+
+	private String getBrowser(HttpServletRequest request){
+		String userAgentStr = request.getHeader("User-Agent");
+		UserAgent userAgent = UserAgentUtil.parse(userAgentStr);
+		String browserType = userAgent.getBrowser().toString();
+		String browserVersion = userAgent.getVersion();
+		String browserFormat = "%s(版本%s)";
+		return  String.format(browserFormat, browserType, browserVersion);
+	}
+
+}
+

+ 61 - 0
src/main/java/com/fdkankan/manage/common/CameraTypeEnum.java

@@ -0,0 +1,61 @@
+package com.fdkankan.manage.common;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum CameraTypeEnum {
+    DOUBLE_EYE(0,"KK-","4DKKLITE_","旧双目相机"),
+    FDKK_PRO(1,"KK-","4DKKPRO_","四维看看pro八目相机"),
+    FDKK_LITE(2,"KK-","4DKKLITE_","四维看看lite"),
+    ZHIHOUSE_REDHOUSE(5,"KK-","4DKKLITE_","指房宝小红屋相机"),
+    DOUBLE_EYE_TURN(9,"KJ-","4DKKLITE_","双目转台"),
+    LASER_TURN(10,"SS-","4DKKLA_","激光转台");
+
+
+    private int type;
+    private String sceneNumPrefix;
+    private String wifiNamePrefix;
+    private String desc;
+
+    public int getType() {
+        return type;
+    }
+
+    public String getSceneNumPrefix() {
+        return sceneNumPrefix;
+    }
+
+    public String getWifiNamePrefix() {
+        return wifiNamePrefix;
+    }
+
+
+    static Map<Integer,CameraTypeEnum> typeMaps = new HashMap<>(5);
+    static Map<String,Integer> typePrefixMap = new HashMap<>(5);
+
+    static{
+        for (CameraTypeEnum typeEnum : CameraTypeEnum.values()) {
+            typeMaps.put(typeEnum.getType(),typeEnum);
+            typePrefixMap.put(typeEnum.getWifiNamePrefix(),typeEnum.getType());
+        }
+    }
+
+    CameraTypeEnum(Integer type, String sceneNumPrefix, String wifiNamePrefix, String desc) {
+        this.type = type;
+        this.sceneNumPrefix = sceneNumPrefix;
+        this.wifiNamePrefix = wifiNamePrefix;
+        this.desc = desc;
+    }
+
+    public static String getSceneNumPrefixByType(Integer type){
+        if(typeMaps.containsKey(type)){
+            return typeMaps.get(type).getSceneNumPrefix();
+        }
+        return "";
+    }
+
+    public static Integer getTypeByWifiNamePrefix(String wifiNamePrefix){
+        return typePrefixMap.get(wifiNamePrefix);
+    }
+
+}

+ 25 - 0
src/main/java/com/fdkankan/manage/common/Dict.java

@@ -0,0 +1,25 @@
+package com.fdkankan.manage.common;
+
+import com.fdkankan.common.constant.CommonStatus;
+
+import java.lang.annotation.*;
+
+/**
+ * <p>
+        此注解用于对方法返回对象做字典转换
+        使用方法:
+        1、在你需要做字段转换的service函数或者dao函数上添加此注解
+        2、在你的返回的数据模型类中需要做字典转换的字段上添加此注解,并且enumClazz值为你对应的字典枚举类
+            注意你的字段必须要有一个相应的字段作为接收字段,比如你的字段名为type,那你必须有个typeStr作为接收字段
+ * </p>
+ * @author dengsixing
+ * @date 2022/6/2
+ * @param null
+ * @return null
+ **/
+@Target({ElementType.FIELD, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Dict {
+    Class<?> enumClazz() default CommonStatus.class;
+}

+ 32 - 0
src/main/java/com/fdkankan/manage/config/MenuInit.java

@@ -0,0 +1,32 @@
+package com.fdkankan.manage.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.manage.entity.SysMenu;
+import com.fdkankan.manage.service.ISysMenuService;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+@Component
+@Slf4j
+public class MenuInit {
+
+    @Autowired
+    ISysMenuService sysMenuService;
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @PostConstruct
+    public void initMenu(){
+        List<SysMenu> list = sysMenuService.list();
+        String result = JSONObject.toJSONString(list);
+        redisUtil.set(RedisKey.MANAGE_MENU,result );
+        log.info("项目启动加载系统菜单权限至redis:{}",result);
+    }
+}

+ 102 - 0
src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java

@@ -0,0 +1,102 @@
+package com.fdkankan.manage.config;
+
+import cn.dev33.satoken.context.SaHolder;
+import cn.dev33.satoken.filter.SaServletFilter;
+import cn.dev33.satoken.jwt.StpLogicJwtForMixin;
+import cn.dev33.satoken.router.SaRouter;
+import cn.dev33.satoken.stp.StpLogic;
+import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.common.utils.HttpMethod;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.redis.constant.RedisKey;
+import com.fdkankan.redis.util.RedisUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+
+@Configuration
+public class SaTokenConfigure {
+
+    public static HashMap<String, JSONObject> manageMenuUrl = new HashMap<>();
+    public static HashMap<String, JSONObject> manageMenuId = new HashMap<>();
+
+    @Autowired
+    RedisUtil redisUtil;
+    // 注册Sa-Token的拦截器
+    @Bean
+    public SaServletFilter getSaServletFilter() {
+        return new SaServletFilter()
+                // 指定 拦截路由 与 放行路由
+                .addInclude("/**").addExclude("/favicon.ico")
+                // 认证函数: 每次请求执行
+                .setAuth(obj -> {
+                    System.out.println("---------- 进入Sa-Token全局认证 -----------");
+                    // 登录认证 -- 拦截所有路由,并排除/user/doLogin 用于开放登录
+                    SaRouter.match("/**", "/service/manage/login", r ->checkLogin() );
+                    String menu = redisUtil.get(RedisKey.MANAGE_MENU);
+                    if(StringUtils.isBlank(menu)){
+                        SaRouter.match("/**", r -> StpUtil.checkRole("super-admin"));
+                    }
+                    JSONArray menuArray = JSONObject.parseArray(menu);
+                    for (Object o : menuArray) {
+                        JSONObject jsonObject = (JSONObject)  o;
+                        String url = jsonObject.getString("url");
+                        String perm = jsonObject.getString("perms");
+                        manageMenuId.put(jsonObject.getString("id"),jsonObject);
+                        if(StringUtils.isEmpty(url) || StringUtils.isEmpty(perm)){
+                            continue;
+                        }
+                        SaRouter.match(url, r -> StpUtil.checkPermission(perm));
+                        manageMenuUrl.put(jsonObject.getString("url"),jsonObject);
+                    }
+                })
+
+                // 异常处理函数:每次认证函数发生异常时执行此函数
+                .setError(e -> {
+                    System.out.println("---------- 进入Sa-Token异常处理 -----------");
+                    SaHolder.getResponse().setHeader("Content-Type", "application/json;charset=UTF-8");
+                    return JSONObject.toJSONString(ResultData.error(-1,e.getMessage()));
+                })
+                // 前置函数:在每次认证函数之前执行
+                .setBeforeAuth(r -> {
+                    // ---------- 设置一些安全响应头 ----------
+                    SaHolder.getResponse()
+                            .setHeader("Access-Control-Allow-Origin", "*")
+                            .setHeader("Access-Control-Allow-Methods", "*")
+                            .setHeader("Access-Control-Max-Age", "3600")
+                            .setHeader("Access-Control-Allow-Headers", "*")
+                            .setServer("4dkk");
+
+                    // 跳过对 OPTIONS 请求的检查,否则这里会鉴权失败,导致 springboot 配置的 addCorsMappings 跨域不执行
+                    if (SaHolder.getRequest().getMethod().equals(HttpMethod.OPTIONS.toString())) {
+                        SaRouter.back();
+                    }
+                });
+
+    }
+
+    private void checkLogin(){
+        if(!redisUtil.hasKey(String.format(RedisKey.TOKEN_V3,StpUtil.getTokenValue()))){
+            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
+        }
+        StpUtil.checkLogin();
+    }
+
+
+    // Sa-Token 整合 jwt
+    //Stateless 无状态模式 纯jwt
+    //Mixin 混入模式 jwt 与 Redis 逻辑混合
+    //Simple 简单模式   Token风格替换
+    @Bean
+    public StpLogic getStpLogicJwt() {
+        return new StpLogicJwtForMixin();
+    }
+}
+

+ 50 - 0
src/main/java/com/fdkankan/manage/config/StpInterfaceImpl.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.config;
+
+import cn.dev33.satoken.stp.StpInterface;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+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 org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class StpInterfaceImpl implements StpInterface {
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Override
+    public List<String> getPermissionList(Object loginId, String loginType) {
+        String redisKey = String.format(RedisKey.MANAGE_PERM_USER, loginId);
+        String permString = redisUtil.get(redisKey);
+        if(StringUtils.isBlank(permString)){
+            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
+        }
+        JSONArray jsonArray = JSONObject.parseArray(permString);
+        List<String> permList = jsonArray.toJavaList(String.class)
+                .parallelStream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
+        //从redis 中获取登录用户权限
+        return permList;
+    }
+
+    @Override
+    public List<String> getRoleList(Object loginId, String loginType) {
+        //从redis 中获取登录用户角色
+        String redisKey = String.format(RedisKey.MANAGE_ROLE_USER, loginId);
+        String roleString = redisUtil.get(redisKey);
+        if(StringUtils.isBlank(roleString)){
+            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
+        }
+        JSONArray jsonArray = JSONObject.parseArray(roleString);
+        List<String> roleList = jsonArray.toJavaList(String.class)
+                .parallelStream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
+        return roleList;
+    }
+}

+ 34 - 0
src/main/java/com/fdkankan/manage/config/WebAppConfig.java

@@ -0,0 +1,34 @@
+package com.fdkankan.manage.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+
+@Configuration
+public class WebAppConfig implements WebMvcConfigurer {
+
+
+	@Override
+	public void addCorsMappings(CorsRegistry registry) {
+		registry.addMapping("/**")
+				.allowCredentials(true)
+				.allowedHeaders("*")
+				.allowedOrigins("*")
+				.allowedMethods("*");
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		WebMvcConfigurer.super.addInterceptors(registry);
+	}
+
+	@Override
+	public void addResourceHandlers(ResourceHandlerRegistry registry) {
+		WebMvcConfigurer.super.addResourceHandlers(registry);
+	}
+
+}
+

+ 12 - 0
src/main/java/com/fdkankan/manage/constant/CameraConstant.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.constant;
+
+public class CameraConstant {
+
+    public static final String CHILD_PASSWORD_VALUE = "4dkankan@4dage";
+
+    public static final String WIFI_PASSWORD_VALUE = "12345678";
+
+    public static final String DEFAULT_AGENT = "4dage";
+
+
+}

+ 51 - 0
src/main/java/com/fdkankan/manage/constant/CameraOutTypeEnum.java

@@ -0,0 +1,51 @@
+package com.fdkankan.manage.constant;
+
+public enum CameraOutTypeEnum {
+    NORMAL_SALES(0,"正常销售"),
+    STAFF_USE(1,"员工自用"),
+    GIFT_GIVING(2,"礼品赠送"),
+    OTHER(3,"其他");
+
+
+    int code;
+    String msg;
+
+    CameraOutTypeEnum(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+    public static CameraOutTypeEnum getByCode(int code){
+        CameraOutTypeEnum[] values = CameraOutTypeEnum.values();
+        for (CameraOutTypeEnum value : values) {
+            if(value.code == code){
+                return value;
+            }
+        }
+        return null;
+    }
+    public static CameraOutTypeEnum getByMsg(String msg){
+        CameraOutTypeEnum[] values = CameraOutTypeEnum.values();
+        for (CameraOutTypeEnum value : values) {
+            if(value.msg.equalsIgnoreCase(msg)){
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 67 - 0
src/main/java/com/fdkankan/manage/controller/AppFileController.java

@@ -0,0 +1,67 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.FileMd5Util;
+import com.fdkankan.manage.entity.AppFile;
+import com.fdkankan.manage.service.IAppFileService;
+import com.fdkankan.manage.vo.request.AppFileParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 产品管理/app管理
+ */
+@RestController
+@RequestMapping("/service/manage/appFile")
+public class AppFileController {
+
+    @Autowired
+    IAppFileService appFileService;
+
+
+    @PostMapping(value = "/upload", consumes = { "multipart/form-data" })
+    private ResultData upload(@RequestParam(required = false) MultipartFile file) {
+        // 将文件转字节-> 字符串
+        String filePath = appFileService.upload(file);
+        String md5 = FileMd5Util.getFileMD5(filePath);
+        Map<String,String> result = new HashMap<>(2);
+        result.put("md5",md5);
+        return ResultData.ok(md5);
+    }
+
+    @PostMapping(value = "/add")
+    private ResultData add(@RequestBody AppFile param) {
+        appFileService.saveByParam(param);
+        return ResultData.ok();
+    }
+
+    @GetMapping(value = "/agentList")
+    private ResultData agentList(@RequestParam(required = false) String agentName ) {
+        return ResultData.ok(appFileService.agentList(agentName));
+    }
+
+    @PostMapping(value = "/list")
+    private ResultData list(@RequestBody AppFileParam param) {
+        return ResultData.ok(appFileService.pageList(param));
+    }
+
+    @PostMapping(value = "/delete")
+    private ResultData delete(@RequestBody AppFile param) {
+        if(ObjectUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        appFileService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+
+}
+

+ 29 - 0
src/main/java/com/fdkankan/manage/controller/BaseController.java

@@ -0,0 +1,29 @@
+package com.fdkankan.manage.controller;
+
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class BaseController {
+    @Autowired
+    protected HttpServletRequest request;
+
+    @Autowired
+    protected HttpServletResponse response;
+
+    protected String getToken(){
+        return request.getHeader("token");
+    }
+
+    protected Long getUserId(){
+        String token = request.getHeader("token");
+        DecodedJWT jwt = JWT.decode(token);
+        return jwt.getClaim("userId").asLong();
+    }
+
+}

+ 98 - 0
src/main/java/com/fdkankan/manage/controller/CameraController.java

@@ -0,0 +1,98 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.ICompanyService;
+import com.fdkankan.manage.service.IOrderService;
+import com.fdkankan.manage.vo.request.CameraInOutParam;
+import com.fdkankan.manage.vo.request.CameraParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 设备管理
+ */
+@RestController
+@RequestMapping("/service/manage/camera")
+public class CameraController {
+
+    @Autowired
+    ICameraService cameraService;
+    @Autowired
+    ICompanyService companyService;
+    @Autowired
+    IOrderService orderService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CameraParam param){
+        return ResultData.ok(cameraService.pageList(param));
+    }
+
+    /**
+     *  入库
+     *  wifiName  wifi名称
+     */
+    @PostMapping("/in")
+    public ResultData in(@RequestBody CameraInOutParam param) {
+        cameraService.in(param.getWifiName());
+        return ResultData.ok();
+    }
+
+    /**
+     * 获取参数下拉框列表
+     * @param type               0客户名称下拉框,1订单号下拉框,
+     * @param companyName        客户名称
+     * @param orderSn            订单号
+     */
+    @GetMapping("/getParam")
+    public ResultData getOutParam(@RequestParam(required = false,defaultValue = "0") Integer type,
+                                  @RequestParam(required = false) String companyName,
+                                  @RequestParam(required = false) String orderSn){
+        switch (type){
+            case 0:
+                return ResultData.ok(companyService.getCompanyName(companyName));
+            case 1:
+                return ResultData.ok(orderService.getOrderSn(orderSn));
+            default:
+                throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+    }
+
+    /**
+     * 相机出库
+     * outType          出库类型
+     * companyName      客户名称
+     * orderSn          订单号
+     */
+    @PostMapping("/out")
+    public ResultData out(@RequestBody CameraInOutParam param) {
+        cameraService.out(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 出库信息修改
+     * outType          出库类型
+     * companyName      客户名称
+     * orderSn          订单号
+     */
+    @PostMapping("/update")
+    public ResultData update(@RequestBody CameraInOutParam param) {
+        cameraService.updateCamera(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 入库信息删除
+     * id      相机id
+     */
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody CameraParam param){
+        cameraService.deleteCamera(param.getId());
+        return ResultData.ok();
+    }
+}
+

+ 48 - 0
src/main/java/com/fdkankan/manage/controller/CameraOrderController.java

@@ -0,0 +1,48 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IOrderItemService;
+import com.fdkankan.manage.service.IOrderService;
+import com.fdkankan.manage.vo.request.OrderParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 相机订单
+ */
+@RestController
+@RequestMapping("/service/manage/order/camera")
+public class CameraOrderController {
+
+    @Autowired
+    IOrderService orderService;
+    @Autowired
+    IOrderItemService orderItemService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody OrderParam param){
+        return ResultData.ok(orderService.pageList(param));
+    }
+
+    @GetMapping("/item")
+    public ResultData item(@RequestParam (required = false) Long id){
+        if(id == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return ResultData.ok(orderItemService.getByOrderId(id));
+    }
+
+    @GetMapping("/export")
+    public void export(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+        orderService.export(req,resp);
+    }
+
+
+}
+

+ 63 - 0
src/main/java/com/fdkankan/manage/controller/CameraVersionController.java

@@ -0,0 +1,63 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.CameraVersion;
+import com.fdkankan.manage.service.ICameraVersionService;
+import com.fdkankan.manage.vo.request.CameraVersionParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+/**
+ * 固件管理
+ */
+@RestController
+@RequestMapping("/service/manage/cameraVersion")
+public class CameraVersionController {
+
+    @Autowired
+    ICameraVersionService cameraVersionService;
+
+    /**
+     * 上传文件
+     * type     相机类型,1八目,2双目,不传默认八目
+     * file       文件流
+     * version    版本
+     * description  描述
+     */
+    @PostMapping(value = "/addAndUpload", consumes = { "multipart/form-data" })
+    public ResultData upload(@RequestParam("file") MultipartFile file,
+                         @RequestParam("version") String version,
+                         @RequestParam("description") String description,
+                         @RequestParam("minVersion") String minVersion,
+                         @RequestParam(value = "type",defaultValue = "1") Integer type) throws IOException {
+        cameraVersionService.addAndUpload(file,version,description,minVersion,type);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody CameraVersion param){
+        cameraVersionService.updateByParam(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody CameraVersion param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        cameraVersionService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CameraVersionParam param){
+        return ResultData.ok(cameraVersionService.pageList(param));
+    }
+}
+

+ 39 - 0
src/main/java/com/fdkankan/manage/controller/CommonController.java

@@ -0,0 +1,39 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ICommonService;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/7
+ **/
+@RestController
+@RequestMapping("/service/manage/common")
+public class CommonController {
+
+    @Autowired
+    private ICommonService commonService;
+
+    /**
+     * 文件上传
+     * @param file 文件
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping(value = "/upload/files", method = RequestMethod.POST)
+    public ResultData uploads(
+        @RequestParam(value = "file") MultipartFile file) throws Exception {
+        return commonService.uploadFile(file);
+    }
+
+}

+ 58 - 0
src/main/java/com/fdkankan/manage/controller/CompanyController.java

@@ -0,0 +1,58 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.Company;
+import com.fdkankan.manage.service.ICameraDetailService;
+import com.fdkankan.manage.service.ICompanyService;
+import com.fdkankan.manage.vo.request.CompanyParam;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ *客户管理
+ */
+@RestController
+@RequestMapping("/service/manage/company")
+public class CompanyController {
+
+    @Autowired
+    ICompanyService companyService;
+    @Autowired
+    ICameraDetailService cameraDetailService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CompanyParam param){
+        return ResultData.ok(companyService.pageList(param));
+    }
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody Company param){
+        companyService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+    @PostMapping("/update")
+    public ResultData update(@RequestBody Company param){
+        companyService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody Company param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Long count = cameraDetailService.getCountByCompanyId(param.getId());
+        if(count >0){
+            throw new BusinessException(-1,"删除失败,请先解绑设备");
+        }
+        companyService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+}
+

+ 68 - 0
src/main/java/com/fdkankan/manage/controller/DataController.java

@@ -0,0 +1,68 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IDataService;
+import com.fdkankan.manage.service.ISysRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 统计分析
+ */
+@RestController
+@RequestMapping("/service/manage/data")
+public class DataController {
+
+    @Autowired
+    IDataService dataService;
+    @Autowired
+    ISysRoleService sysRoleService;
+
+    /**
+     *统计新增用户数
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/user")
+    public ResultData userData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.userData(type));
+    }
+
+    /**
+     *统计相机数据
+     */
+    @GetMapping("/camera")
+    public ResultData camera(){
+        return ResultData.ok(dataService.cameraData());
+    }
+
+    /**
+     *统计权益订单
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/increment")
+    public ResultData incrementData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.incrementData(type));
+    }
+
+    /**
+     *统计下载订单
+     * @param type  0:日 ,1:月,2:年
+     */
+    @GetMapping("/down")
+    public ResultData downData(@RequestParam(required = false,defaultValue = "0") Integer type){
+        return ResultData.ok(dataService.downData(type));
+    }
+    /**
+     *统计场景数量订单
+     * @param type  0:日 ,1:月,2:年
+     * @param cameraType 0 看看,1看见,2深时
+     */
+    @GetMapping("/sceneNum")
+    public ResultData sceneNum(@RequestParam(required = false,defaultValue = "0") Integer type,
+                               @RequestParam(required = false,defaultValue = "0") Integer cameraType){
+        return ResultData.ok(dataService.sceneNum(type,cameraType));
+    }
+}

+ 35 - 0
src/main/java/com/fdkankan/manage/controller/DownOrderController.java

@@ -0,0 +1,35 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IDownloadOrderService;
+import com.fdkankan.manage.vo.request.OrderParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 相机订单
+ */
+@RestController
+@RequestMapping("/service/manage/order/down")
+public class DownOrderController {
+
+    @Autowired
+    IDownloadOrderService downloadOrderService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody OrderParam param){
+        return ResultData.ok(downloadOrderService.pageList(param));
+    }
+
+
+    @GetMapping("/export")
+    public void export(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+        downloadOrderService.export(req,resp);
+    }
+
+}
+

+ 71 - 0
src/main/java/com/fdkankan/manage/controller/EmployNoteController.java

@@ -0,0 +1,71 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.manage.entity.EmployNote;
+import com.fdkankan.manage.service.IEmployNoteService;
+import com.fdkankan.manage.vo.request.EmployNoteParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ *招聘管理
+ */
+@RestController
+@RequestMapping("/service/manage/employNote")
+public class EmployNoteController {
+
+    @Autowired
+    IEmployNoteService employNoteService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody EmployNoteParam param){
+        return ResultData.ok(employNoteService.pageList(param));
+    }
+
+    @PostMapping("/addOrUpdate")
+    public ResultData addOrUpdate(@RequestBody EmployNote param){
+        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        param.setIsPush(null);
+        param.setIsTop(null);
+        employNoteService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody EmployNote param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        employNoteService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    /**
+     * 发布撤回
+     *  isPush 0 撤回,1发布
+     *  id    id
+     */
+    @PostMapping("/isPush")
+    public ResultData isPush(@RequestBody EmployNote param){
+        employNoteService.isPush(param.getIsPush(),param.getId());
+        return ResultData.ok();
+    }
+
+    /**
+     * 置顶
+     *  isTop 0 撤回,1置顶
+     *  id    id
+     */
+    @PostMapping("/isTop")
+    public ResultData isTop(@RequestBody EmployNote param){
+        employNoteService.isTop(param.getIsTop(),param.getId());
+        return ResultData.ok();
+    }
+}
+

+ 76 - 0
src/main/java/com/fdkankan/manage/controller/ExcelController.java

@@ -0,0 +1,76 @@
+package com.fdkankan.manage.controller;
+
+import com.alibaba.nacos.common.codec.Base64;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IExcelService;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+@RestController
+@RequestMapping("/service/manage/excel")
+public class ExcelController {
+
+    @Autowired
+    IExcelService excelService;
+
+    /**
+     * 下载出入库模板
+     * type 0 入库模板, 1出库模板 ,2 客户关联模板
+     */
+    @GetMapping("/downTemplate")
+    public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
+                               HttpServletResponse res, HttpServletRequest req) throws IOException {
+        String fileName = "";
+        switch (type){
+            case 0 : fileName = "cameraIn.xlsx"; break;
+            case 1 : fileName = "cameraOut.xlsx"; break;
+            case 2 : fileName = "cameraCompany.xlsx"; break;
+            default: throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        String path = this.getClass().getResource("/template/" + fileName).getPath();
+        OutputStream os = res.getOutputStream();
+        try {
+            String agent = req.getHeader("USER-AGENT");
+            if (agent != null && !agent.contains("MSIE") && !agent.contains("like Gecko")) {// FF
+                String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes(StandardCharsets.UTF_8))))
+                        + "?=";
+                res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
+            } else { // IE
+                String enableFileName = URLEncoder.encode(fileName, "UTF-8");
+                res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
+            }
+            os.write(FileUtils.readFileToByteArray(new File(path)));
+            os.flush();
+        } finally {
+            os.close();
+        }
+    }
+    /**
+     * 导入excel
+     * type 0 入库模板, 1出库模板 ,2 客户关联模板
+     */
+    @PostMapping("cameraUploadExcel")
+    public ResultData cameraUploadExcel(@RequestParam(required = false) MultipartFile file,
+                                  @RequestParam(required = false,defaultValue = "0") Integer type) throws IOException {
+        return ResultData.ok(excelService.uploadExcel(file,type));
+    }
+
+    @PostMapping("companyUploadExcel")
+    public ResultData companyUploadExcel(@RequestParam(required = false) MultipartFile file) throws IOException {
+        return ResultData.ok(excelService.uploadExcel(file,2));
+    }
+
+
+}

+ 30 - 0
src/main/java/com/fdkankan/manage/controller/FollowHeartController.java

@@ -0,0 +1,30 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.response.ResultData;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/service/manage/followHeart")
+public class FollowHeartController {
+
+
+    @PostMapping("/list")
+    public ResultData list(){
+        return ResultData.ok();
+    }
+
+    @PostMapping("/sameScreen")
+    public ResultData sameScreen(){
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(){
+        return ResultData.ok();
+    }
+
+}
+

+ 35 - 0
src/main/java/com/fdkankan/manage/controller/IncrementOrderController.java

@@ -0,0 +1,35 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IIncrementOrderService;
+import com.fdkankan.manage.vo.request.OrderParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 权益订单
+ */
+@RestController
+@RequestMapping("/service/manage/order/increment")
+public class IncrementOrderController {
+
+    @Autowired
+    IIncrementOrderService incrementOrderService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody OrderParam param){
+        return ResultData.ok(incrementOrderService.pageList(param));
+    }
+
+
+    @GetMapping("/export")
+    public void export(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+        incrementOrderService.export(req,resp);
+    }
+
+}
+

+ 39 - 0
src/main/java/com/fdkankan/manage/controller/IntercomMessageController.java

@@ -0,0 +1,39 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IIntercomMessageService;
+import com.fdkankan.manage.vo.request.IntercomMessageParam;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * 咨询留言表
+ */
+@RestController
+@RequestMapping("/service/manage/intercomMessage")
+public class IntercomMessageController {
+
+    @Autowired
+    IIntercomMessageService iIntercomMessageService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody IntercomMessageParam param){
+        return ResultData.ok(iIntercomMessageService.pageList(param));
+    }
+
+    /**
+     * 处理留言
+     * id               留言id
+     * noteContent      备注
+     */
+    @PostMapping("/handle")
+    public ResultData handle(@RequestBody IntercomMessageParam param ){
+        iIntercomMessageService.handle(param);
+        return ResultData.ok();
+    }
+}
+

+ 107 - 0
src/main/java/com/fdkankan/manage/controller/InvoiceController.java

@@ -0,0 +1,107 @@
+package com.fdkankan.manage.controller;
+
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.IExcelService;
+import com.fdkankan.manage.service.IInvoiceService;
+import com.fdkankan.manage.vo.InvoicePageParamVO;
+import com.fdkankan.manage.vo.InvoiceVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * 发票管理
+ */
+@RestController
+@RequestMapping("/service/manage/invoice")
+public class InvoiceController {
+
+    @Autowired
+    private IInvoiceService invoiceService;
+    @Autowired
+    private IExcelService excelService;
+
+    /**
+     * <p>
+            发票管理列表
+     * </p>
+     * @author dengsixing
+     * @date 2022/6/1
+     * @param param
+     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.fdkankan.manage.vo.InvoiceVO>
+     **/
+    @PostMapping("/pageInvoice")
+    public Page<InvoiceVO> pageInvoice(@RequestBody InvoicePageParamVO param){
+        return invoiceService.pageInvoice(param);
+    }
+
+    /**
+     * 开票登记
+     * @param id 发票申请id
+     * @param invoiceNum
+     * @param shipNum
+     * @param file
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/invoiceRegister")
+    public ResultData invoiceRegister(
+        @RequestParam("id") Long id, @RequestParam("invoiceNum") String invoiceNum, String shipNum,
+        @RequestParam(value = "file", required = false) MultipartFile file) throws Exception{
+        return invoiceService.invoiceRegister((Long) StpUtil.getLoginId(), id, invoiceNum, shipNum, file);
+    }
+
+    /**
+     * 开票详情
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/getInvoiceRegisterDetail")
+    public ResultData getInvoiceRegisterDetail(@RequestParam("id") Long id) throws Exception{
+        return invoiceService.getInvoiceRegisterDetail(id);
+    }
+
+    /**
+     * 导出发票申请
+     * @param param
+     * @throws IOException
+     */
+    @PostMapping("/export")
+    public void export(HttpServletRequest request,HttpServletResponse response,
+                       @RequestBody InvoicePageParamVO param) throws Exception {
+        param.setPageNum(1);
+        param.setPageSize(5000);
+        Page<InvoiceVO> invoiceVOPage = invoiceService.pageInvoice(param);
+
+        ExcelWriter excelWriter = null;
+        try {
+            excelWriter = EasyExcel.write(response.getOutputStream(),InvoiceVO.class).build();
+            for (int pageNum = 1; pageNum <= invoiceVOPage.getPages(); pageNum ++ ) {
+                if(pageNum >1){
+                    param.setPageNum(pageNum);
+                    invoiceVOPage = invoiceService.pageInvoice(param);
+                }
+                excelService.commonExport(request,response,"开票申请数据",invoiceVOPage.getRecords(),excelWriter);
+            }
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            if(excelWriter != null){
+                excelWriter.finish();
+            }
+        }
+
+    }
+}
+

+ 36 - 0
src/main/java/com/fdkankan/manage/controller/LoginController.java

@@ -0,0 +1,36 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.impl.ManageService;
+import com.fdkankan.manage.vo.request.ManageLoginRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 登录 登出
+ */
+@RestController
+@RequestMapping("/service/manage/")
+public class LoginController {
+
+
+    @Autowired
+    ManageService manageService;
+
+    /**
+     * 登录
+     */
+    @PostMapping("/login")
+    public ResultData login(@RequestBody ManageLoginRequest param) {
+        return ResultData.ok(manageService.login(param.getUserName(),param.getPassword()));
+    }
+    /**
+     * 登出
+     */
+    @GetMapping("/logout")
+    public ResultData logout() {
+        manageService.logout();
+        return ResultData.ok();
+    }
+
+}

+ 62 - 0
src/main/java/com/fdkankan/manage/controller/LookSpaceController.java

@@ -0,0 +1,62 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.LookSpace;
+import com.fdkankan.manage.service.ILookSpaceService;
+import com.fdkankan.manage.vo.request.LookSpaceParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 看看空间 废弃不在使用
+ */
+@RestController
+@RequestMapping("/service/manage/lookSpace")
+public class LookSpaceController {
+
+    @Autowired
+    ILookSpaceService lookSpaceService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody LookSpaceParam param){
+        return  ResultData.ok(lookSpaceService.pageList(param));
+    }
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody LookSpaceParam param){
+        lookSpaceService.add(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody LookSpaceParam param){
+        lookSpaceService.updateByParam(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody LookSpaceParam param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        lookSpaceService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    /**
+     *  发布或撤回
+     *  isPush 0 撤回,1发布
+     */
+    @PostMapping("/isPush")
+    public ResultData isPush(@RequestBody LookSpace param){
+        if(param.getId() == null || param.getIsPush() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        lookSpaceService.isPush(param.getIsPush(),param.getId());
+        return ResultData.ok();
+    }
+}
+

+ 115 - 0
src/main/java/com/fdkankan/manage/controller/NewsController.java

@@ -0,0 +1,115 @@
+package com.fdkankan.manage.controller;
+
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.News;
+import com.fdkankan.manage.service.INewsService;
+import com.fdkankan.manage.vo.BaseParamVO;
+import com.fdkankan.manage.vo.NewsDisplayParamVO;
+import com.fdkankan.manage.vo.NewsPublicParamVO;
+import com.fdkankan.manage.vo.NewsPutTopParamVO;
+import com.fdkankan.manage.vo.PageNewsParamVO;
+import com.fdkankan.manage.vo.PageNewsVO;
+import com.fdkankan.manage.vo.SaveNewsParamVO;
+import com.fdkankan.manage.vo.UpdateNewsParamVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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;
+
+/**
+ * 新闻管理
+ */
+@RestController
+@RequestMapping("/service/manage/news")
+public class NewsController {
+
+    @Autowired
+    private INewsService newsService;
+
+    /**
+     * 新闻列表
+     * @param param
+     * @return
+     */
+    @PostMapping("/pageNews")
+    public Page<PageNewsVO> pageNews(@RequestBody PageNewsParamVO param){
+        return newsService.pageNews(param);
+    }
+
+    /**
+     * 新闻列表
+     * @param param
+     * @return
+     */
+    @PostMapping("/publicNews")
+    public ResultData publicNews(@RequestBody @Validated NewsPublicParamVO param){
+        return newsService.publicNews((Long) StpUtil.getLoginId(), param);
+    }
+
+    /**
+     * 修改是否显示
+     * @param param
+     * @return
+     */
+    @PostMapping("/display")
+    public ResultData display(@RequestBody @Validated NewsDisplayParamVO param){
+        return newsService.display((Long) StpUtil.getLoginId(), param);
+    }
+
+    /**
+     * 修改是否置顶
+     * @param param
+     * @return
+     */
+    @PostMapping("/putTop")
+    public ResultData putTop(@RequestBody @Validated NewsPutTopParamVO param){
+        return newsService.putTop((Long) StpUtil.getLoginId(), param);
+    }
+
+    /**
+     * 修改是否置顶
+     * @param param
+     * @return
+     */
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody @Validated BaseParamVO param){
+        return newsService.delete((Long) StpUtil.getLoginId(), param);
+    }
+
+    /**
+     * 获取新闻详情
+     * @param param
+     * @return
+     */
+    @PostMapping("/getNewsDetail")
+    public News getNewsDetail(@RequestBody @Validated BaseParamVO param){
+        return newsService.getNewsDetail(param);
+    }
+
+    /**
+     * 保存
+     * @param param
+     * @return
+     */
+    @PostMapping("/addNews")
+    public ResultData addNews(@RequestBody @Validated SaveNewsParamVO param){
+        return newsService.addNews((Long) StpUtil.getLoginId(), param);
+    }
+
+    /**
+     * 保存
+     * @param param
+     * @return
+     */
+    @PostMapping("/updateNews")
+    public ResultData updateNews(@RequestBody @Validated UpdateNewsParamVO param){
+        return newsService.updateNews((Long) StpUtil.getLoginId(), param);
+    }
+
+}
+

+ 48 - 0
src/main/java/com/fdkankan/manage/controller/OperLogController.java

@@ -0,0 +1,48 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.OperLogService;
+import com.fdkankan.manage.vo.OperLogPageParamVO;
+import com.fdkankan.mongodb.base.MongoPageResult;
+import com.fdkankan.redis.util.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+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;
+
+/**
+ * 日志管理
+ **/
+@RestController
+@RequestMapping("/service/manage/operLog")
+public class OperLogController {
+
+    @Autowired
+    MongoTemplate mongoTemplate;
+
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Autowired
+    private OperLogService operLogService;
+
+    /**
+     * 操作日志列表
+     * @param param
+     * @return
+     */
+    @PostMapping("/pageOperLog")
+    public ResultData pageOperLog(@RequestBody OperLogPageParamVO param){
+
+        MongoPageResult mongoPageResult = operLogService.pageOperLog(param);
+
+        return ResultData.ok(mongoPageResult);
+
+    }
+
+
+
+
+}

+ 55 - 0
src/main/java/com/fdkankan/manage/controller/OverallController.java

@@ -0,0 +1,55 @@
+package com.fdkankan.manage.controller;
+
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.httpClient.OverallClient;
+import com.fdkankan.manage.httpClient.vo.OverallParam;
+import com.fdkankan.manage.httpClient.vo.OverallVo;
+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;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 全景看看作品
+ */
+@RestController
+@RequestMapping("/service/manage/overall")
+public class OverallController {
+
+    @Resource
+    OverallClient overallClient;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody OverallParam param){
+        OverallVo vo = overallClient.list(param, StpUtil.getTokenValue());
+        if(vo.getCode() != 0 ){
+            return ResultData.error(vo.getCode(),vo.getMsg());
+        }
+        Object data = vo.getData();
+        JSONObject dataObj = JSONObject.parseObject(JSONObject.toJSONString(data));
+        JSONArray array = dataObj.getJSONArray("list");
+        List<Object> list = new ArrayList<>(array);
+        long total = dataObj.getLongValue("total");
+        return ResultData.ok(new PageInfo<>(param.getPageNum(), param.getPageSize(), total, list));
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody OverallParam param){
+        OverallVo vo = overallClient.delete(param.getId(), StpUtil.getTokenValue());
+        if(vo.getCode() != 0 ){
+            return ResultData.error(vo.getCode(),vo.getMsg());
+        }
+        return ResultData.ok(vo.getData());
+    }
+
+}
+

+ 122 - 0
src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -0,0 +1,122 @@
+package com.fdkankan.manage.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.httpClient.FdKKClient;
+import com.fdkankan.manage.service.IDownService;
+import com.fdkankan.manage.service.ISceneProService;
+import com.fdkankan.manage.vo.request.SceneParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+
+
+/**
+ * 相机场景管理
+ */
+@RestController
+@RequestMapping("/service/manage/scene")
+public class SceneController {
+
+    @Autowired
+    ISceneProService sceneProService;
+    @Autowired
+    IDownService downService;
+    @Resource
+    FdKKClient fdKKClient;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody SceneParam param){
+        return ResultData.ok(sceneProService.pageList(param));
+    }
+
+    /**
+     * 场景迁移
+     * num     迁移场景码
+     * snCode  迁移至相机snCode
+     */
+    @PostMapping("/move")
+    public ResultData move(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum()) || StringUtils.isEmpty(param.getSnCode())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sceneProService.move(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 场景复制
+     * num      场景码
+     */
+    @PostMapping("/copy")
+    public ResultData copy(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sceneProService.copy(param.getNum());
+        return ResultData.ok();
+    }
+
+    /**
+     * 场景删除
+     * num      场景码
+     */
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sceneProService.deleteByNum(param.getNum());
+        return ResultData.ok();
+    }
+
+    /**
+     * 检查下载
+     * num      场景码
+     */
+    @GetMapping("/checkDownLoad")
+    public ResultData checkDownLoad(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.checkDownLoad(num));
+    }
+
+    /**
+     * 下载场景
+     * num      场景码
+     */
+    @GetMapping("/downScene")
+    public ResultData downScene(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.down(num));
+    }
+
+    /**
+     * 下载场景进度条
+     * num      场景码
+     */
+    @GetMapping("/downloadProcess")
+    public ResultData downloadProcess(@RequestParam(required = false) String num){
+        return ResultData.ok(downService.downloadProcess(num));
+    }
+
+    /**
+     * 场景重算
+     * num      场景码
+     */
+    @GetMapping("/rebuildScene")
+    public ResultData rebuild(@RequestParam(required = false) String num){
+        HashMap<String,Object> paramMap = new HashMap<>();
+        paramMap.put("num",num);
+        JSONObject jsonObject = fdKKClient.rebuildScene(paramMap);
+        Integer code = jsonObject.getInteger("code");
+        if(code != 0){
+            return ResultData.error(code,jsonObject.getString("msg"));
+        }
+        return ResultData.ok();
+    }
+}
+

+ 89 - 0
src/main/java/com/fdkankan/manage/controller/SpaceSdkController.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.SpaceSdk;
+import com.fdkankan.manage.service.ISpaceSdkService;
+import com.fdkankan.manage.vo.request.SpaceSdkParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * Space Target SDK
+ */
+@RestController
+@RequestMapping("/service/manage/spaceSdk")
+public class SpaceSdkController {
+
+    @Autowired
+    ISpaceSdkService spaceSdkService;
+
+    /**
+     * 上传文件
+     * @param file
+     * @param version
+     * @param imprintCh
+     * @param imprintEn
+     * @param isTop
+     * @param platformType
+     */
+    @PostMapping(value = "/upload", consumes = { "multipart/form-data" })
+    private String upload(@RequestParam("file") MultipartFile file,
+                          @RequestParam("version") String version,
+                          @RequestParam("imprintCh") String imprintCh,
+                          @RequestParam("imprintEn") String imprintEn,
+                          @RequestParam("isTop") Integer isTop,
+                          @RequestParam("platformType") Integer platformType) {
+
+        try {
+            return spaceSdkService.upload(file, version,imprintCh,imprintEn,isTop,platformType);
+        }catch (Exception e){
+            throw new BusinessException(-1,"上传失败!");
+        }
+    }
+
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody SpaceSdkParam param){
+        return ResultData.ok(spaceSdkService.pageList(param));
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SpaceSdk param){
+        spaceSdkService.updateByEntity(param);
+        return  ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SpaceSdkParam param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        spaceSdkService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    /**
+     * 上下架
+     */
+    @PostMapping(value = "/online")
+    private ResultData online(@RequestBody SpaceSdkParam param) {
+        spaceSdkService.online(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 置顶
+     */
+    @PostMapping(value = "/top")
+    private ResultData top(@RequestBody SpaceSdkParam param) {
+        spaceSdkService.top(param);
+        return ResultData.ok();
+
+    }
+}
+

+ 70 - 0
src/main/java/com/fdkankan/manage/controller/SysMenuController.java

@@ -0,0 +1,70 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.request.RequestBase;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.manage.entity.SysMenu;
+import com.fdkankan.manage.service.ISysMenuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * 系统菜单
+ */
+@RestController
+@RequestMapping("/service/manage/sysMenu")
+public class SysMenuController extends BaseController{
+
+    @Autowired
+    ISysMenuService menuService;
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody SysMenu param){
+        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        menuService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SysMenu param){
+        if(StringUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        param.setUpdateTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+        menuService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SysMenu param){
+        menuService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody RequestBase param){
+        return ResultData.ok(menuService.pageList(param));
+    }
+
+    @PostMapping("/allShowList")
+    public ResultData allShowList(){
+        return ResultData.ok(menuService.allShowList());
+    }
+
+    @GetMapping("/getByUserId")
+    public ResultData getByUserId(){
+        return ResultData.ok(menuService.getByUserId(getUserId()));
+    }
+    @GetMapping("/getByRoleId")
+    public ResultData getByRoleId(@RequestParam(required = false) Long roleId){
+        return ResultData.ok(menuService.getByRoleId(null,roleId));
+    }
+
+}
+

+ 66 - 0
src/main/java/com/fdkankan/manage/controller/SysRoleController.java

@@ -0,0 +1,66 @@
+package com.fdkankan.manage.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.SysRole;
+import com.fdkankan.manage.service.ISysRoleService;
+import com.fdkankan.manage.vo.request.SysRoleMenuParam;
+import com.fdkankan.manage.vo.request.SysRoleParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 系统角色
+ */
+@RestController
+@RequestMapping("/service/manage/sysRole")
+public class SysRoleController extends BaseController{
+
+    @Autowired
+    ISysRoleService roleService;
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody SysRoleParam param){
+        param.setCreateUserId(getUserId());
+        roleService.addOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SysRoleParam param){
+        if(StringUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        roleService.addOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SysRoleParam param){
+        roleService.delete(param.getId());
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody SysRoleParam param){
+        return ResultData.ok(roleService.pageList(param));
+    }
+
+    @GetMapping("/allList")
+    public ResultData allList(){
+        LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysRole::getStatus,1);
+        return ResultData.ok(roleService.list(wrapper));
+    }
+
+    @PostMapping("/giveMenu")
+    public ResultData giveMenu(@RequestBody SysRoleMenuParam param){
+        roleService.giveMenu(param);
+        return ResultData.ok();
+    }
+}
+

+ 64 - 0
src/main/java/com/fdkankan/manage/controller/SysUserController.java

@@ -0,0 +1,64 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ISysUserService;
+import com.fdkankan.manage.vo.request.SysUserParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+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;
+
+/**
+ * 系统用户
+ */
+@RestController
+@RequestMapping("/service/manage/sysUser")
+public class SysUserController  extends BaseController{
+
+    @Autowired
+    ISysUserService sysUserService;
+
+    @PostMapping("/add")
+    public ResultData add(@RequestBody SysUserParam param){
+        param.setCreateUserId(getUserId());
+        sysUserService.addOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SysUserParam param){
+        if(StringUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sysUserService.addOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody SysUserParam param){
+        if(StringUtils.isEmpty(param.getId())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sysUserService.removeById(param.getId());
+        return ResultData.ok();
+    }
+    @PostMapping("/rePassword")
+    public ResultData rePassword(@RequestBody SysUserParam param){
+        if(StringUtils.isEmpty(param.getId()) && StringUtils.isEmpty(param.getPassword())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sysUserService.addOrUpdate(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody SysUserParam param){
+        return ResultData.ok(sysUserService.pageList(param));
+    }
+}
+

+ 111 - 0
src/main/java/com/fdkankan/manage/controller/UserController.java

@@ -0,0 +1,111 @@
+package com.fdkankan.manage.controller;
+
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.IUserIncrementService;
+import com.fdkankan.manage.service.IUserService;
+import com.fdkankan.manage.vo.request.CameraParam;
+import com.fdkankan.manage.vo.request.UserIncrementParam;
+import com.fdkankan.manage.vo.request.UserParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 用户管理
+ */
+@RestController
+@RequestMapping("/service/manage/user")
+public class UserController {
+
+    @Autowired
+    IUserService userService;
+    @Autowired
+    IUserIncrementService userIncrementService;
+    @Autowired
+    ICameraService cameraService;
+
+    /**
+     * 分页列表
+     */
+    @PostMapping("/list")
+    public ResultData list(@RequestBody UserParam param){
+        return ResultData.ok(userService.pageList(param));
+    }
+
+    /**
+     *  权益详情
+     */
+    @PostMapping("/getIncrementListByUserId")
+    public ResultData getIncrementListByUserId(@RequestBody UserParam param){
+        return ResultData.ok(userIncrementService.pageList(param.getId(),param.getPageNum(),param.getPageSize()));
+    }
+
+    /**
+     *  权益延期
+     *  id      权益id
+     *  year    延期年限
+     */
+    @PostMapping("/incrementDelay")
+    public ResultData IncrementDelay(@RequestBody UserIncrementParam param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userIncrementService.delayById(param.getId(),param.getYear());
+        return ResultData.ok();
+    }
+
+    /**
+     * 添加用户权益
+     * userId 用户id
+     * incrementEndTime 权益到期日期
+     */
+    @PostMapping("/addUserIncrement")
+    public ResultData addUserIncrement(@RequestBody UserIncrementParam param){
+        if(param.getUserId() == null || StringUtils.isEmpty(param.getIncrementEndTime())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userIncrementService.add(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 添加下载次数
+     * userId        用户id
+     * count        下载次数
+     */
+    @PostMapping("/addDownNum")
+    public ResultData addDownNum(@RequestBody UserIncrementParam param){
+        if(param.getUserId() == null || param.getCount() == null){
+            throw  new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        userService.addDownNum(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 获取相机详情
+     * userId          用户id
+     */
+    @PostMapping("/getCameraDetail")
+    public ResultData getCameraDetail(@RequestBody CameraParam cameraParam){
+        if(cameraParam.getUserId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return ResultData.ok(cameraService.pageList(cameraParam));
+    }
+
+    /**
+     * 解绑相机
+     * @param cameraId      相机id
+     */
+    @GetMapping("/unbindCamera")
+    public ResultData unbindCamera(@RequestParam(required = false)Long cameraId){
+        cameraService.unbindCamera(cameraId);
+        return ResultData.ok();
+    }
+}
+

+ 105 - 0
src/main/java/com/fdkankan/manage/entity/Agent.java

@@ -0,0 +1,105 @@
+package com.fdkankan.manage.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-05-27
+ */
+@Getter
+@Setter
+@TableName("t_agent")
+public class Agent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 代理商Id
+     */
+    @TableField("agent_id")
+    private String agentId;
+
+    /**
+     * 代理商公司名称
+     */
+    @TableField("agent_name")
+    private String agentName;
+
+    /**
+     * 代理商密码
+     */
+    @TableField("agent_password")
+    private String agentPassword;
+
+    /**
+     * 代理商区域
+     */
+    @TableField("agent_area")
+    private String agentArea;
+
+    /**
+     * 代理商邮箱
+     */
+    @TableField("agent_email")
+    private String agentEmail;
+
+    /**
+     * 代理商电话
+     */
+    @TableField("agent_phone")
+    private String agentPhone;
+
+    /**
+     * 状态:1-正常,0-冻结
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 代理数量
+     */
+    @TableField("agent_num")
+    private Integer agentNum;
+
+    /**
+     * 代理商所在的国家
+     */
+    @TableField("agent_country")
+    private String agentCountry;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+
+}

+ 59 - 0
src/main/java/com/fdkankan/manage/entity/AppFile.java

@@ -0,0 +1,59 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-14
+ */
+@Getter
+@Setter
+@TableName("t_app_file")
+public class AppFile implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("file_server_type")
+    private String fileServerType;
+
+    @TableField("agent")
+    private String agent;
+
+    @TableField("app_type")
+    private String appType;
+
+    @TableField("url")
+    private String url;
+
+    @TableField("md5")
+    private String md5;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("version")
+    private String version;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+
+}

+ 83 - 0
src/main/java/com/fdkankan/manage/entity/Camera.java

@@ -0,0 +1,83 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机主表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@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 String 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 String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    private Integer isOut;
+}

+ 146 - 0
src/main/java/com/fdkankan/manage/entity/CameraDetail.java

@@ -0,0 +1,146 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机子表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@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 String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("user_camera_version")
+    private String userCameraVersion;
+
+    @TableField("app_version")
+    private String appVersion;
+
+    @TableField("last_request_time")
+    private String lastRequestTime;
+
+
+}

+ 63 - 0
src/main/java/com/fdkankan/manage/entity/CameraOut.java

@@ -0,0 +1,63 @@
+package com.fdkankan.manage.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-06-16
+ */
+@Getter
+@Setter
+@TableName("t_camera_out")
+public class CameraOut implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 相机id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 订单id
+     */
+    @TableField("order_id")
+    private Long orderId;
+
+    /**
+     * 经销商
+     */
+    @TableField("agent_name")
+    private String agentName;
+
+    /**
+     * 0:测试使用,1:线上出库,2:经销商出库
+     */
+    @TableField("type")
+    private Integer type;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 89 - 0
src/main/java/com/fdkankan/manage/entity/CameraSpace.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机容量表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_camera_space")
+public class CameraSpace implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 容量类型,0表示基础容量,1表示期限容量,2表示扩容容量
+     */
+    @TableField("space_type")
+    private Integer spaceType;
+
+    /**
+     * 生效时间
+     */
+    @TableField("space_start_time")
+    private String spaceStartTime;
+
+    /**
+     * 结束时间
+     */
+    @TableField("space_end_time")
+    private String spaceEndTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+
+}

+ 95 - 0
src/main/java/com/fdkankan/manage/entity/CameraVersion.java

@@ -0,0 +1,95 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 相机版本表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+@Getter
+@Setter
+@TableName("t_camera_version")
+public class CameraVersion implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 文件rul
+     */
+    @TableField("file_url")
+    private String fileUrl;
+
+    /**
+     * 文件MD5
+     */
+    @TableField("file_md5")
+    private String fileMd5;
+
+    /**
+     * 描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 相机版本
+     */
+    @TableField("version")
+    private String version;
+
+    /**
+     * 相机类型,1八目,2双目, 3转台双目, 4激光转台
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 活动状态:A: 生效,I: 禁用
+     */
+    @TableField("status")
+    private String status;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 修改日期
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 相机版本(最小)
+     */
+    @TableField("min_version")
+    private String minVersion;
+
+
+}

+ 113 - 0
src/main/java/com/fdkankan/manage/entity/Company.java

@@ -0,0 +1,113 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 客户企业logo信息
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@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 String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 是否启用弹性 伸缩
+     */
+    @TableField("calculate_flexibility")
+    private Boolean calculateFlexibility;
+
+    /**
+     * 数据同步类型
+     */
+    @TableField("data_sync")
+    private String dataSync;
+
+    /**
+     * 客户描述
+     */
+    @TableField("company_desc")
+    private String companyDesc;
+
+
+}

+ 124 - 0
src/main/java/com/fdkankan/manage/entity/DownloadOrder.java

@@ -0,0 +1,124 @@
+package com.fdkankan.manage.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.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 下载次数订单表
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-31
+ */
+@Getter
+@Setter
+@TableName("t_download_order")
+public class DownloadOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 金额
+     */
+    @TableField("amount")
+    private BigDecimal amount;
+
+    /**
+     * 支付宝的交易号或者微信支付订单号
+     */
+    @TableField("number")
+    private String number;
+
+    /**
+     * 付款方式,0表示微信,1表示支付宝,2表示paypal,3表示其他
+     */
+    @TableField("pay_type")
+    private Integer payType;
+
+    /**
+     * 状态,0或-1表示未付款,-2表示已退款,1表示已付款
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 状态,1增加下载次数
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 交易时间
+     */
+    @TableField("trade_time")
+    private Date tradeTime;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 购买数量
+     */
+    @TableField("count")
+    private Integer count;
+
+    /**
+     * 0表示国内订单,1表示国外订单
+     */
+    @TableField("abroad")
+    private Integer abroad;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableLogic
+    @TableField("rec_status")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 场景码
+     */
+    @TableField("scene_num")
+    private String sceneNum;
+
+    /**
+     * 场景名
+     */
+    @TableField("scene_name")
+    private String sceneName;
+
+
+}

+ 89 - 0
src/main/java/com/fdkankan/manage/entity/EmployNote.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-30
+ */
+@Getter
+@Setter
+@TableName("t_employ_note")
+public class EmployNote implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 招聘表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 职位名称
+     */
+    @TableField("work_name")
+    private String workName;
+
+    /**
+     * 工作地点
+     */
+    @TableField("work_address")
+    private String workAddress;
+
+    /**
+     * 薪资待遇
+     */
+    @TableField("salary")
+    private String salary;
+
+    /**
+     * 招聘人数
+     */
+    @TableField("employ_num")
+    private Integer employNum;
+
+    /**
+     * 是否发布 0 否,1是
+     */
+    @TableField("is_push")
+    private Integer isPush;
+
+    /**
+     * 是否置顶 0否,1是
+     */
+    @TableField("is_top")
+    private Integer isTop;
+
+    /**
+     * 工作职责
+     */
+    @TableField("work_content")
+    private String workContent;
+
+    /**
+     * 任职资格
+     */
+    @TableField("qualification")
+    private String qualification;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 118 - 0
src/main/java/com/fdkankan/manage/entity/IncrementOrder.java

@@ -0,0 +1,118 @@
+package com.fdkankan.manage.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.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 增值权益订单表
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-31
+ */
+@Getter
+@Setter
+@TableName("t_increment_order")
+public class IncrementOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 金额
+     */
+    @TableField("amount")
+    private BigDecimal amount;
+
+    /**
+     * 支付宝的交易号或者微信支付订单号
+     */
+    @TableField("number")
+    private String number;
+
+    /**
+     * 付款方式,0表示微信,1表示支付宝,2表示paypal,3表示其他
+     */
+    @TableField("pay_type")
+    private Integer payType;
+
+    /**
+     * 状态,0或-1表示未付款,-2表示已退款,1表示已付款
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 状态,1表示新增值权益,2表示续费增值权益  3表示增值权益1月
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 交易时间
+     */
+    @TableField("trade_time")
+    private Date tradeTime;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 增值权益表t_user_increment的id,status为2时才有
+     */
+    @TableField("increment_id")
+    private Long incrementId;
+
+    /**
+     * 购买数量
+     */
+    @TableField("count")
+    private Integer count;
+
+    /**
+     * 0表示国内订单,1表示国外订单
+     */
+    @TableField("abroad")
+    private Integer abroad;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableLogic
+    @TableField("rec_status")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 89 - 0
src/main/java/com/fdkankan/manage/entity/IntercomMessage.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 咨询留言表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-30
+ */
+@Getter
+@Setter
+@TableName("t_intercom_message")
+public class IntercomMessage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 内容
+     */
+    @TableField("content")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 电话
+     */
+    @TableField("phone")
+    private String phone;
+
+    /**
+     * 备注等级
+     */
+    @TableField("note_type")
+    private Integer noteType;
+
+    /**
+     * 备注内容
+     */
+    @TableField("note_content")
+    private String noteContent;
+
+    /**
+     * 状态, 0:已处理,1未处理
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 联系方式:邮箱、电话……
+     */
+    @TableField("contact")
+    private String contact;
+
+
+}

+ 229 - 0
src/main/java/com/fdkankan/manage/entity/Invoice.java

@@ -0,0 +1,229 @@
+package com.fdkankan.manage.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.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@TableName("t_invoice")
+public class Invoice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单表t_order的id
+     */
+    @TableField("order_id")
+    private Long orderId;
+
+    /**
+     * 订单表t_virtual_order的id  消费
+     */
+    @TableField("virtual_order_id")
+    private Long virtualOrderId;
+
+    /**
+     * 订单表t_increment_order的id  权益
+     */
+    @TableField("increment_order_id")
+    private Long incrementOrderId;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 发票类型,1表示不需要发票,2表示增值税普通发票,3表示增值税专用发票
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 发票抬头(个人还是公司)
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 税号
+     */
+    @TableField("code")
+    private String code;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 公司名称
+     */
+    @TableField("organized_name")
+    private String organizedName;
+
+    /**
+     * 公司地址
+     */
+    @TableField("organized_address")
+    private String organizedAddress;
+
+    /**
+     * 注册电话
+     */
+    @TableField("register_phone")
+    private String registerPhone;
+
+    /**
+     * 开户银行
+     */
+    @TableField("bank_name")
+    private String bankName;
+
+    /**
+     * 银行账户
+     */
+    @TableField("bank_account")
+    private String bankAccount;
+
+    /**
+     * 0表示购买相机,1表示充值,2会员权益, 3下载订单
+     */
+    @TableField("consume_type")
+    private Integer consumeType;
+
+    /**
+     * 开票金额
+     */
+    @TableField("money")
+    private BigDecimal money;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 0:发票未开,1:发票已开,2:已发出
+     */
+    @TableField("finish")
+    private Integer finish;
+
+    /**
+     * 电子发票收件邮箱
+     */
+    @TableField("email_address")
+    private String emailAddress;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableLogic(value="A",delval = "I")
+    @TableField("rec_status")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 收货地址
+     */
+    @TableField("ship_address")
+    private String shipAddress;
+
+    /**
+     * 收货地区
+     */
+    @TableField("ship_area")
+    private String shipArea;
+
+    /**
+     * 收货地区路径
+     */
+    @TableField("ship_area_path")
+    private String shipAreaPath;
+
+    /**
+     * 收货手机
+     */
+    @TableField("ship_mobile")
+    private String shipMobile;
+
+    /**
+     * 收货人姓名
+     */
+    @TableField("ship_name")
+    private String shipName;
+
+    /**
+     * 收货电话
+     */
+    @TableField("ship_phone")
+    private String shipPhone;
+
+    /**
+     * 收货邮编
+     */
+    @TableField("ship_zip_code")
+    private String shipZipCode;
+
+    /**
+     * 发送状态:0未发送,1快递发送,2邮箱发送
+     */
+    @TableField("send")
+    private Integer send;
+
+    /**
+     * 快递公司
+     */
+    @TableField("express_company")
+    private String expressCompany;
+
+    /**
+     * 快递单号
+     */
+    @TableField("express_number")
+    private String expressNumber;
+
+    /**
+     * 电子发票存放url
+     */
+    @TableField("e_invoice")
+    private String eInvoice;
+
+    /**
+     * 备注
+     */
+    @TableField("remarks")
+    private String remarks;
+
+    /**
+     * 订单表t_download_order的id  权益
+     */
+    @TableField("download_order_id")
+    private Long downloadOrderId;
+
+    /**
+     * 开票状态(0-否,1-是)
+     */
+    @TableField("invoiced")
+    private Integer invoiced;
+
+}

+ 85 - 0
src/main/java/com/fdkankan/manage/entity/InvoiceRegister.java

@@ -0,0 +1,85 @@
+package com.fdkankan.manage.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.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 开票登记表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-02
+ */
+@Data
+@TableName("t_invoice_register")
+public class InvoiceRegister {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @TableField("invoice_id")
+    private Long invoiceId;
+
+    /**
+     * 发票编号
+     */
+    @TableField("invoice_num")
+    private String invoiceNum;
+
+    /**
+     * 快递单号
+     */
+    @TableField("ship_num")
+    private String shipNum;
+
+    /**
+     * 电子发票url
+     */
+    @TableField("invoice_url")
+    private String invoiceUrl;
+
+    /**
+     * 创建人id
+     */
+    @TableField("creater_id")
+    private Long createrId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 修改人id
+     */
+    @TableField("updater_id")
+    private Long updaterId;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 0-有效,1-删除, 2-禁用
+     */
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+
+}

+ 88 - 0
src/main/java/com/fdkankan/manage/entity/LookSpace.java

@@ -0,0 +1,88 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-30
+ */
+@Getter
+@Setter
+@TableName("t_look_space")
+public class LookSpace implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 看看空间
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 视频标题
+     */
+    @TableField("video_title")
+    private String videoTitle;
+
+    /**
+     * 视频文件
+     */
+    @TableField("video_file")
+    private String videoFile;
+
+    /**
+     * 创建者id
+     */
+    @TableField("create_user_id")
+    private Long createUserId;
+
+    /**
+     * 是否显示0否,1是
+     */
+    @TableField("is_show")
+    private Integer isShow;
+
+    /**
+     * 排序
+     */
+    @TableField("sort")
+    private Integer sort;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 修改时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 发布时间
+     */
+    @TableField("push_time")
+    private String pushTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 是否发布,0否,1是
+     */
+    @TableField("is_push")
+    private Integer isPush;
+
+}

+ 91 - 0
src/main/java/com/fdkankan/manage/entity/News.java

@@ -0,0 +1,91 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkankan.db.base.BaseEntity;
+import java.io.Serializable;
+import java.sql.Blob;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-06
+ */
+@Getter
+@Setter
+@TableName("t_news")
+public class News extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 来源
+     */
+    @TableField("source")
+    private String source;
+
+    /**
+     * 新闻类型(1-链接,2-图文)
+     */
+    @TableField("new_type")
+    private Integer newType;
+
+    /**
+     * 是否显示(0-否,1-是)
+     */
+    @TableField("display")
+    private Integer display;
+
+    /**
+     * 是否置顶(0-否,1-是)
+     */
+    @TableField("is_top")
+    private Integer isTop;
+
+    /**
+     * 是否发布(0-否,1-是)
+     */
+    @TableField("is_public")
+    private Integer isPublic;
+
+    /**
+     * 标题
+     */
+    @TableField("title")
+    private String title;
+
+    /**
+     * 新闻内容
+     */
+    @TableField("content")
+    private String content;
+
+    /**
+     * 封面图url
+     */
+    @TableField("cover_image_url")
+    private String coverImageUrl;
+
+    /**
+     * 发布时间
+     */
+    @TableField("public_time")
+    private Date publicTime;
+
+    /**
+     * 置顶时间
+     */
+    @TableField("top_time")
+    private Date topTime;
+}

+ 62 - 0
src/main/java/com/fdkankan/manage/entity/OperLog.java

@@ -0,0 +1,62 @@
+package com.fdkankan.manage.entity;
+
+import com.fdkankan.mongodb.base.BaseMongoEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+/**
+ * 操作日志
+ */
+@Data
+@Document("OperLog")
+public class OperLog extends BaseMongoEntity{
+
+
+    /**
+     * 用户id
+     */
+    @Field("userId")
+    private Long userId;
+
+    /**
+     * 账号
+     */
+    @Field("userName")
+    private String userName;
+
+    /**
+     * 姓名
+     */
+    @Field("nickName")
+    private String nickName;
+
+    /**请求路径*/
+    @Field("requestPath")
+    private String requestPath;
+
+    /**请求url*/
+    @Field("uri")
+    private String uri;
+
+    /**请求方式*/
+    @Field("method")
+    private String method;
+
+    /**请求方式*/
+    @Field("params")
+    private String params;
+
+    /**请求ip*/
+    @Field("ip")
+    private String ip;
+
+    @Field("browser")
+    private String browser;
+
+    @Field("result")
+    private String result;
+
+    @Field("operationType")
+    private String operationType;
+}

+ 199 - 0
src/main/java/com/fdkankan/manage/entity/Order.java

@@ -0,0 +1,199 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 订单表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Getter
+@Setter
+@TableName("t_order")
+public class Order implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 下单时间
+     */
+    @TableField("order_time")
+    private Date orderTime;
+
+    /**
+     * 交易号
+     */
+    @TableField("trade_num")
+    private String tradeNum;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 商品总数
+     */
+    @TableField("goods_total_count")
+    private Integer goodsTotalCount;
+
+    /**
+     * 商品总额
+     */
+    @TableField("goods_amount")
+    private BigDecimal goodsAmount;
+
+    /**
+     * 订单总额
+     */
+    @TableField("total_amount")
+    private BigDecimal totalAmount;
+
+    /**
+     * 订单状态(未处理unprocessed、已确认processed、已完成completed、已取消invalid、过期expire)
+     */
+    @TableField("order_status")
+    private String orderStatus;
+
+    /**
+     * 付款状态(未付款unpaid、已付款paid、已取消cancel, 部分支付partPayment, 部分退款partRefund, 全额退款refunded)
+     */
+    @TableField("payment_status")
+    private String paymentStatus;
+
+    /**
+     * 配送状态(未发货unshipped、部分发货partShipped、已发货shipped、部分退货partReshiped、已退货reshiped、已收货received)
+     */
+    @TableField("shipping_status")
+    private String shippingStatus;
+
+    /**
+     * 已付金额
+     */
+    @TableField("paid_amount")
+    private BigDecimal paidAmount;
+
+    /**
+     * 付款方式,0表示微信,1表示支付宝,2表示paypal,3表示其他,4表示货到付款
+     */
+    @TableField("payment_type_name")
+    private Integer paymentTypeName;
+
+    /**
+     * 快递费
+     */
+    @TableField("express_amount")
+    private BigDecimal expressAmount;
+
+    /**
+     * 配送方式:快递运输、自提、同城速递
+     */
+    @TableField("delivery_type_name")
+    private String deliveryTypeName;
+
+    /**
+     * 收货地址
+     */
+    @TableField("ship_address")
+    private String shipAddress;
+
+    /**
+     * 收货地区
+     */
+    @TableField("ship_area")
+    private String shipArea;
+
+    /**
+     * 收货地区路径
+     */
+    @TableField("ship_area_path")
+    private String shipAreaPath;
+
+    /**
+     * 收货手机
+     */
+    @TableField("ship_mobile")
+    private String shipMobile;
+
+    /**
+     * 收货人姓名
+     */
+    @TableField("ship_name")
+    private String shipName;
+
+    /**
+     * 收货电话
+     */
+    @TableField("ship_phone")
+    private String shipPhone;
+
+    /**
+     * 收货邮编
+     */
+    @TableField("ship_zip_code")
+    private String shipZipCode;
+
+    /**
+     * 完成时间
+     */
+    @TableField("finish_time")
+    private String finishTime;
+
+    /**
+     * 买家附言
+     */
+    @TableField("memo")
+    private String memo;
+
+    /**
+     * 商家备注
+     */
+    @TableField("comment")
+    private String comment;
+
+    /**
+     * 0表示国内订单,1表示国外订单
+     */
+    @TableField("abroad")
+    private Integer abroad;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 112 - 0
src/main/java/com/fdkankan/manage/entity/OrderItem.java

@@ -0,0 +1,112 @@
+package com.fdkankan.manage.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.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 订单项表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-23
+ */
+@Getter
+@Setter
+@TableName("t_order_item")
+public class OrderItem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 商品名称
+     */
+    @TableField("goods_name")
+    private String goodsName;
+
+    /**
+     * 商品价格
+     */
+    @TableField("goods_price")
+    private BigDecimal goodsPrice;
+
+    /**
+     * 商品数量
+     */
+    @TableField("goods_count")
+    private Integer goodsCount;
+
+    /**
+     * 商品编码
+     */
+    @TableField("goods_sn")
+    private String goodsSn;
+
+    /**
+     * sku编号,唯一
+     */
+    @TableField("sku_sn")
+    private String skuSn;
+
+    /**
+     * 商品表t_goods的id
+     */
+    @TableField("goods_id")
+    private Long goodsId;
+
+    /**
+     * 订单表t_order的id
+     */
+    @TableField("order_id")
+    private Long orderId;
+
+    /**
+     * 快递公司
+     */
+    @TableField("express_name")
+    private String expressName;
+
+    /**
+     * 快递单号
+     */
+    @TableField("express_num")
+    private String expressNum;
+
+    /**
+     * 配送状态
+     */
+    @TableField("shipping_status")
+    private String shippingStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 275 - 0
src/main/java/com/fdkankan/manage/entity/Scene.java

@@ -0,0 +1,275 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Getter
+@Setter
+@TableName("t_scene")
+public class Scene 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 String 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表示欠费
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 大场景的密钥
+     */
+    @TableField("scene_key")
+    private String sceneKey;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private Integer version;
+
+    /**
+     * 表示缩略图是否存在
+     */
+    @TableField("thumb_status")
+    private Integer thumbStatus;
+
+    /**
+     * 0表示默认,1表示自己上传
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 标记大小
+     */
+    @TableField("floor_logo_size")
+    private Integer floorLogoSize;
+
+    /**
+     * 要上传的热点的id集合,用逗号隔开
+     */
+    @TableField("hots_ids")
+    private String hotsIds;
+
+    /**
+     * 表示初始点信息
+     */
+    @TableField("entry")
+    private String entry;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 风格
+     */
+    @TableField("style")
+    private Integer style;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 背景音乐名称
+     */
+    @TableField("bg_music")
+    private String bgMusic;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 普通录屏文件地址
+     */
+    @TableField("screencap_voice_src")
+    private String screencapVoiceSrc;
+
+    /**
+     * 旧版录屏数据地址
+     */
+    @TableField("screencap_music")
+    private String screencapMusic;
+
+    /**
+     * 录屏文件个数
+     */
+    @TableField("screencap_len")
+    private Integer screencapLen;
+
+    /**
+     * 录音文件地址
+     */
+    @TableField("screencap_voice_sound")
+    private String screencapVoiceSound;
+
+    /**
+     * 选择的类型,sound为screencapVoiceSound,file为screencapVoiceSrc
+     */
+    @TableField("screencap_voice_type")
+    private String screencapVoiceType;
+
+    /**
+     * 录屏文件地址
+     */
+    @TableField("play_data")
+    private String playData;
+
+    /**
+     * 算法类型
+     */
+    @TableField("algorithm")
+    private String algorithm;
+
+    /**
+     * oss服务商
+     */
+    @TableField("oss")
+    private String oss;
+
+    /**
+     * 重新建模的版本
+     */
+    @TableField("floor_edit_ver")
+    private Integer floorEditVer;
+
+    /**
+     * 正式发布重新建模的版本
+     */
+    @TableField("floor_publish_ver")
+    private Integer floorPublishVer;
+
+    /**
+     * 使用容量
+     */
+    @TableField("space")
+    private Long space;
+
+    /**
+     * 录屏图片存放文件
+     */
+    @TableField("screencap_thumb")
+    private String screencapThumb;
+
+
+}

+ 50 - 0
src/main/java/com/fdkankan/manage/entity/SceneCooperation.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@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 String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 47 - 0
src/main/java/com/fdkankan/manage/entity/SceneCopyLog.java

@@ -0,0 +1,47 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-22
+ */
+@Getter
+@Setter
+@TableName("t_scene_copy_log")
+public class SceneCopyLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("old_num")
+    private String oldNum;
+
+    @TableField("new_num")
+    private String newNum;
+
+    @TableField("copy_user_id")
+    private Integer copyUserId;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 74 - 0
src/main/java/com/fdkankan/manage/entity/SceneDownloadLog.java

@@ -0,0 +1,74 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-23
+ */
+@Getter
+@Setter
+@TableName("t_scene_download_log")
+public class SceneDownloadLog implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 场景码
+     */
+    @TableField("scene_num")
+    private String sceneNum;
+
+    /**
+     * 场景版本
+     */
+    @TableField("scene_version")
+    private Integer sceneVersion;
+
+    /**
+     * 场景打包之后的连接
+     */
+    @TableField("download_url")
+    private String downloadUrl;
+
+    /**
+     * 0下载中,1下载成功,2下载失败
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 下载版本v3,v4
+     */
+    @TableField("sys_version")
+    private String sysVersion;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 227 - 0
src/main/java/com/fdkankan/manage/entity/ScenePro.java

@@ -0,0 +1,227 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * pro场景表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@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 String createTime;
+
+    /**
+     * 0表示未建好,1表示建好,-1表示出错,-2表示不要在官网上显示
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 原始的大场景数据(七牛)
+     */
+    @TableField("data_source")
+    private String dataSource;
+
+    /**
+     * 用户表t_user的id
+     */
+    @TableField("user_id")
+    private Long userId;
+
+    /**
+     * 0表示未付款,1表示付款了,-1表示欠费,-2表示容量不足
+     */
+    @TableField("pay_status")
+    private Integer payStatus;
+
+    /**
+     * 相机主表t_camera的id
+     */
+    @TableField("camera_id")
+    private Long cameraId;
+
+    /**
+     * 手机id
+     */
+    @TableField("phone_id")
+    private String phoneId;
+
+    /**
+     * 场景logo
+     */
+    @TableField("scene_logo")
+    private String sceneLogo;
+
+    /**
+     * 大场景序号
+     */
+    @TableField("num")
+    private String num;
+
+    /**
+     * 0表示其他,1表示文博,2表示地产,3表示电商,4表示餐饮,5表示家居,99一件换装虚拟房源
+     */
+    @TableField("scene_type")
+    private Integer sceneType;
+
+    /**
+     * 1表示推荐,0表示正常
+     */
+    @TableField("recommend")
+    private Integer recommend;
+
+    /**
+     * 浏览次数
+     */
+    @TableField("view_count")
+    private Integer viewCount;
+
+    /**
+     * 拍摄数量
+     */
+    @TableField("shoot_count")
+    private Integer shootCount;
+
+    /**
+     * 所有资源文件名
+     */
+    @TableField("files_name")
+    private String filesName;
+
+    /**
+     * 点位视频
+     */
+    @TableField("videos")
+    private String videos;
+
+    /**
+     * 要gps定位
+     */
+    @TableField("gps")
+    private String gps;
+
+    /**
+     * 方案:1是双目,2是转台,3是六目,4是八目,10获取4k图,11获取2k,12获取1k
+     */
+    @TableField("scene_scheme")
+    private Integer sceneScheme;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String 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;
+
+
+}

+ 281 - 0
src/main/java/com/fdkankan/manage/entity/SceneProEdit.java

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

+ 50 - 0
src/main/java/com/fdkankan/manage/entity/SceneResourceCamera.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景资源和相机关联表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Getter
+@Setter
+@TableName("t_scene_resource_camera")
+public class SceneResourceCamera 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("camera_id")
+    private Long cameraId;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 50 - 0
src/main/java/com/fdkankan/manage/entity/SceneResourceCooperation.java

@@ -0,0 +1,50 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 场景资源和协作用户关联表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@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 String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 102 - 0
src/main/java/com/fdkankan/manage/entity/SpaceSdk.java

@@ -0,0 +1,102 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * space sdk表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-14
+ */
+@Getter
+@Setter
+@TableName("t_space_sdk")
+public class SpaceSdk implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 版本
+     */
+    @TableField("version")
+    private String version;
+
+    /**
+     * 版本说明(中文)
+     */
+    @TableField("imprint_ch")
+    private String imprintCh;
+
+    /**
+     * 版本说明(英文)
+     */
+    @TableField("imprint_en")
+    private String imprintEn;
+
+    /**
+     * 发布时间
+     */
+    @TableField("publish_time")
+    private Date publishTime;
+
+    /**
+     * 是否置顶 1 -置顶  0-不置顶
+     */
+    @TableField("is_top")
+    private Integer isTop;
+
+    /**
+     * 状态 0 - 未发布 1 -发布  2-下架
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 1 : Unity  2: UE4
+     */
+    @TableField("platform_type")
+    private String platformType;
+
+    /**
+     * 文件名
+     */
+    @TableField("file_name")
+    private String fileName;
+
+    /**
+     * 文件路径
+     */
+    @TableField("file_url")
+    private String fileUrl;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+
+}

+ 89 - 0
src/main/java/com/fdkankan/manage/entity/SysMenu.java

@@ -0,0 +1,89 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-09
+ */
+@Getter
+@Setter
+@TableName("sys_menu")
+public class SysMenu implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 系统菜单表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 菜单名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 菜单路由
+     */
+    @TableField("url")
+    private String url;
+
+    /**
+     * 菜单图标
+     */
+    @TableField("icon")
+    private String icon;
+
+    /**
+     * 父id
+     */
+    @TableField("parent_id")
+    private Long parentId;
+
+    /**
+     * 类型0菜单,1按钮
+     */
+    @TableField("type")
+    private Integer type;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 排序字段
+     */
+    @TableField("sort")
+    private Integer sort;
+
+    /**
+     * 是否显示 0 不显示,1显示
+     */
+    @TableField("is_show")
+    private Integer isShow;
+
+    /**
+     * 权限表达式
+     */
+    @TableField("perms")
+    private String perms;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 70 - 0
src/main/java/com/fdkankan/manage/entity/SysRole.java

@@ -0,0 +1,70 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-09
+ */
+@Getter
+@Setter
+@TableName("sys_role")
+public class SysRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 角色表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 角色名称
+     */
+    @TableField("role_name")
+    private String roleName;
+
+    /**
+     * 角色类型
+     */
+    @TableField("role_type")
+    private String roleType;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 创建者id
+     */
+    @TableField("create_user_id")
+    private Long createUserId;
+
+    /**
+     * 是否禁用 0禁用 1启用
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 角色说明
+     */
+    @TableField("description")
+    private String description;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 39 - 0
src/main/java/com/fdkankan/manage/entity/SysRoleMenu.java

@@ -0,0 +1,39 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-09
+ */
+@Getter
+@Setter
+@TableName("sys_role_menu")
+public class SysRoleMenu implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 菜单角色关系表
+     */
+    @TableId("id")
+    private Long id;
+
+    @TableField("role_id")
+    private Long roleId;
+
+    @TableField("menu_id")
+    private Long menuId;
+
+
+}

+ 76 - 0
src/main/java/com/fdkankan/manage/entity/SysUser.java

@@ -0,0 +1,76 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-09
+ */
+@Getter
+@Setter
+@TableName("sys_user")
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 系统用户表
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 账号
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 密码
+     */
+    @TableField("password")
+    private String password;
+    /**
+     * 昵称
+     */
+    @TableField("nick_name")
+    private String nickName;
+
+    /**
+     * 角色id
+     */
+    @TableField("role_id")
+    private Long roleId;
+
+    /**
+     * 创建者id
+     */
+    @TableField("create_user_id")
+    private Long createUserId;
+
+    /**
+     * 是否禁用 0禁用,1启用
+     */
+    @TableField("status")
+    private Integer status;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 138 - 0
src/main/java/com/fdkankan/manage/entity/User.java

@@ -0,0 +1,138 @@
+package com.fdkankan.manage.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-06-16
+ */
+@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 String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 98 - 0
src/main/java/com/fdkankan/manage/entity/UserIncrement.java

@@ -0,0 +1,98 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 用户增值权益表
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@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 String incrementEndTime;
+
+    /**
+     * 是否过期(1过期,0未过期)
+     */
+    @TableField("is_expired")
+    private Integer isExpired;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 扩容订单集合
+     */
+    @TableField("order_sn")
+    private String orderSn;
+
+    /**
+     * 生效时间
+     */
+    @TableField("increment_start_time")
+    private String incrementStartTime;
+
+    @TableField("download_num")
+    private Integer downloadNum;
+
+
+}

+ 98 - 0
src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -0,0 +1,98 @@
+package com.fdkankan.manage.generate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class AutoGenerate {
+
+
+    public static void main(String[] args) {
+
+        String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
+
+        generate(path,"manage", getTables(new String[]{
+                "t_employ_note"
+        }));
+
+//        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.25.146.52:3306/4dkankan_v2",
+                "root","4dkk2020test%")
+                .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();
+    }
+}

+ 20 - 0
src/main/java/com/fdkankan/manage/httpClient/FdKKClient.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.httpClient;
+
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.annotation.Address;
+import com.dtflys.forest.annotation.Get;
+import com.dtflys.forest.annotation.Query;
+import com.fdkankan.manage.httpClient.address.FdkkAddressSource;
+
+import java.util.HashMap;
+
+/**
+ * 获取,调用4dkk服务
+ */
+@Address(source = FdkkAddressSource.class)
+public interface FdKKClient {
+
+
+    @Get("/api/scene/rebuildScene")
+    JSONObject rebuildScene( @Query HashMap<String, Object> param);
+}

+ 13 - 0
src/main/java/com/fdkankan/manage/httpClient/LaserClient.java

@@ -0,0 +1,13 @@
+package com.fdkankan.manage.httpClient;
+
+import com.dtflys.forest.annotation.Address;
+import com.fdkankan.manage.httpClient.address.LaserAddressSource;
+
+/**
+ * 获取,调用4dkk服务
+ */
+@Address(source = LaserAddressSource.class)
+public interface LaserClient {
+
+
+}

+ 19 - 0
src/main/java/com/fdkankan/manage/httpClient/OverallClient.java

@@ -0,0 +1,19 @@
+package com.fdkankan.manage.httpClient;
+
+import com.dtflys.forest.annotation.*;
+import com.fdkankan.manage.httpClient.address.OverallAddressSource;
+import com.fdkankan.manage.httpClient.vo.OverallParam;
+import com.fdkankan.manage.httpClient.vo.OverallVo;
+
+/**
+ * 获取,调用全景看看服务
+ */
+@Address(source = OverallAddressSource.class)
+public interface OverallClient {
+
+    @Post("/manage/age/list")
+    OverallVo list(@JSONBody OverallParam param, @Header("token") String token);
+
+    @Post("/manage/age/remove/{id}")
+    OverallVo delete(@Var("id") String id, @Header("token") String token);
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/httpClient/address/FdkkAddressSource.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.httpClient.address;
+
+import com.dtflys.forest.callback.AddressSource;
+import com.dtflys.forest.http.ForestAddress;
+import com.dtflys.forest.http.ForestRequest;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class FdkkAddressSource implements AddressSource {
+
+    @Value("${4dkk.fdService.basePath}")
+    private String basePath;
+
+    @Value("${4dkk.fdService.port}")
+    private String port;
+
+    @Override
+    public ForestAddress getAddress(ForestRequest forestRequest) {
+        return new ForestAddress("","",Integer.valueOf(port),basePath);
+    }
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/httpClient/address/LaserAddressSource.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.httpClient.address;
+
+import com.dtflys.forest.callback.AddressSource;
+import com.dtflys.forest.http.ForestAddress;
+import com.dtflys.forest.http.ForestRequest;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class LaserAddressSource implements AddressSource {
+
+    @Value("${4dkk.laserService.basePath}")
+    private String basePath;
+
+    @Value("${4dkk.laserService.port}")
+    private String port;
+
+    @Override
+    public ForestAddress getAddress(ForestRequest forestRequest) {
+        return new ForestAddress("","",Integer.valueOf(port),basePath);
+    }
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/httpClient/address/OverallAddressSource.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.httpClient.address;
+
+import com.dtflys.forest.callback.AddressSource;
+import com.dtflys.forest.http.ForestAddress;
+import com.dtflys.forest.http.ForestRequest;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class OverallAddressSource implements AddressSource {
+
+    @Value("${4dkk.overallService.basePath}")
+    private String basePath;
+
+    @Value("${4dkk.overallService.port}")
+    private String port;
+
+    @Override
+    public ForestAddress getAddress(ForestRequest forestRequest) {
+        return new ForestAddress("","",Integer.valueOf(port),basePath);
+    }
+}

+ 11 - 0
src/main/java/com/fdkankan/manage/httpClient/vo/OverallParam.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.httpClient.vo;
+
+import lombok.Data;
+
+@Data
+public class OverallParam {
+    private String id;
+    private Long pageNum = 1L;
+    private Long pageSize = 10L;
+    private String searchKey;
+}

+ 11 - 0
src/main/java/com/fdkankan/manage/httpClient/vo/OverallVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.httpClient.vo;
+
+import lombok.Data;
+
+@Data
+public class OverallVo {
+    private Integer code ;
+    private Object data;
+    private String msg;
+    private String timestamp;
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IAgentMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.Agent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 代理商表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-27
+ */
+@Mapper
+public interface IAgentMapper extends BaseMapper<Agent> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IAppFileMapper.java

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

+ 25 - 0
src/main/java/com/fdkankan/manage/mapper/ICameraDetailMapper.java

@@ -0,0 +1,25 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.GroupByCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相机子表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraDetailMapper extends BaseMapper<CameraDetail> {
+
+    List<GroupByCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
+
+    List<GroupByCount> getCountGroupByCompanyId();
+}

+ 23 - 0
src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.vo.request.CameraParam;
+import com.fdkankan.manage.vo.response.CameraDetailVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机主表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraMapper extends BaseMapper<Camera> {
+
+
+    Page<CameraDetailVo> pageList(Page<CameraDetailVo> page, CameraParam param);
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/ICameraOutMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraOut;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机出库表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-16
+ */
+@Mapper
+public interface ICameraOutMapper extends BaseMapper<CameraOut> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/ICameraSpaceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraSpace;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机容量表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-17
+ */
+@Mapper
+public interface ICameraSpaceMapper extends BaseMapper<CameraSpace> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/ICameraVersionMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.CameraVersion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机版本表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-15
+ */
+@Mapper
+public interface ICameraVersionMapper extends BaseMapper<CameraVersion> {
+
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/mapper/ICompanyMapper.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.Company;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.CompanyParam;
+import com.fdkankan.manage.vo.response.CompanyVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 客户企业logo信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Mapper
+public interface ICompanyMapper extends BaseMapper<Company> {
+
+    Page<CompanyVo> pageList(Page<CompanyVo> page, CompanyParam param);
+}

+ 26 - 0
src/main/java/com/fdkankan/manage/mapper/IDataMapper.java

@@ -0,0 +1,26 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.vo.response.DataGroupByCount;
+import com.fdkankan.manage.vo.response.OrderDataGroupByCount;
+import com.fdkankan.manage.vo.response.SceneDataGroupByCount;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface IDataMapper {
+
+    List<DataGroupByCount> cameraDataUnBindGroupByType();
+
+    List<DataGroupByCount> cameraDataBindGroupByType();
+
+    List<DataGroupByCount> userDataGroupBy(@Param("dateFormat")String dateFormat);
+
+    List<OrderDataGroupByCount> incrementDataGroupBy(@Param("dateFormat")String dateFormat);
+
+    List<OrderDataGroupByCount> downDataGroupBy(@Param("dateFormat")String dateFormat);
+
+
+    List<SceneDataGroupByCount> sceneNumDataGroupBy(@Param("dateFormat")String dateFormat, @Param("type") Integer type);
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/mapper/IDownloadOrderMapper.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.DownloadOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.OrderParam;
+import com.fdkankan.manage.vo.response.DownOrderVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 下载次数订单表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-31
+ */
+@Mapper
+public interface IDownloadOrderMapper extends BaseMapper<DownloadOrder> {
+
+    Page<DownOrderVo> pageList(Page<DownOrderVo> page, OrderParam param);
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IEmployNoteMapper.java

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

+ 23 - 0
src/main/java/com/fdkankan/manage/mapper/IIncrementOrderMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.IncrementOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.OrderParam;
+import com.fdkankan.manage.vo.response.IncrementOrderVo;
+import com.fdkankan.manage.vo.response.OrderVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 增值权益订单表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-31
+ */
+@Mapper
+public interface IIncrementOrderMapper extends BaseMapper<IncrementOrder> {
+
+    Page<IncrementOrderVo> pageList(Page<OrderVo> page, OrderParam param);
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IIntercomMessageMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.IntercomMessage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 咨询留言表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-30
+ */
+@Mapper
+public interface IIntercomMessageMapper extends BaseMapper<IntercomMessage> {
+
+}

+ 24 - 0
src/main/java/com/fdkankan/manage/mapper/IInvoiceMapper.java

@@ -0,0 +1,24 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.Invoice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.InvoicePageParamVO;
+import com.fdkankan.manage.vo.InvoiceVO;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 发票表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-31
+ */
+@Mapper
+public interface IInvoiceMapper extends BaseMapper<Invoice> {
+
+    Page<InvoiceVO> pageInvoice(Page page, InvoicePageParamVO param);
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IInvoiceRegisterMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.InvoiceRegister;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 开票登记表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-02
+ */
+@Mapper
+public interface IInvoiceRegisterMapper extends BaseMapper<InvoiceRegister> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/ILookSpaceMapper.java

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

+ 23 - 0
src/main/java/com/fdkankan/manage/mapper/INewsMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.News;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.PageNewsParamVO;
+import com.fdkankan.manage.vo.PageNewsVO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-06
+ */
+@Mapper
+public interface INewsMapper extends BaseMapper<News> {
+
+    Page<PageNewsVO> pageNews(Page<PageNewsVO> page, PageNewsParamVO param);
+
+}

+ 23 - 0
src/main/java/com/fdkankan/manage/mapper/IOrderItemMapper.java

@@ -0,0 +1,23 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.OrderItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.response.OrderItemVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 订单项表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-23
+ */
+@Mapper
+public interface IOrderItemMapper extends BaseMapper<OrderItem> {
+
+    List<OrderItemVo> getByOrderId(@Param("orderId") Long orderId);
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/mapper/IOrderMapper.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.manage.entity.Order;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.OrderParam;
+import com.fdkankan.manage.vo.response.OrderVo;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 订单表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Mapper
+public interface IOrderMapper extends BaseMapper<Order> {
+
+    Page<OrderVo> pageList(Page<OrderVo> page, OrderParam param);
+}

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


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