Selaa lähdekoodia

commit-2022年5月9日14:30

xiewenjie 3 vuotta sitten
vanhempi
commit
b64ab239c4
56 muutettua tiedostoa jossa 1313 lisäystä ja 41 poistoa
  1. 46 0
      pom.xml
  2. 3 1
      src/main/java/com/fdkk/fdkkmeta/FdkkMetaApplication.java
  3. 74 0
      src/main/java/com/fdkk/fdkkmeta/base/BaseEntity.java
  4. 7 0
      src/main/java/com/fdkk/fdkkmeta/base/IBaseMapper.java
  5. 55 0
      src/main/java/com/fdkk/fdkkmeta/base/IBaseService.java
  6. 23 0
      src/main/java/com/fdkk/fdkkmeta/base/RequestBase.java
  7. 97 0
      src/main/java/com/fdkk/fdkkmeta/base/impl/BaseServiceImpl.java
  8. 123 0
      src/main/java/com/fdkk/fdkkmeta/config/DruidConfig.java
  9. 48 0
      src/main/java/com/fdkk/fdkkmeta/config/MyBatisPlusConfig.java
  10. 27 0
      src/main/java/com/fdkk/fdkkmeta/config/datasource/DynamicDataSource.java
  11. 45 0
      src/main/java/com/fdkk/fdkkmeta/config/datasource/DynamicDataSourceContextHolder.java
  12. 77 0
      src/main/java/com/fdkk/fdkkmeta/config/properties/DruidProperties.java
  13. 44 0
      src/main/java/com/fdkk/fdkkmeta/ctroller/DevController.java
  14. 2 2
      src/main/java/com/fdkk/fdkkmeta/entity/dto/BaseDto.java
  15. 1 1
      src/main/java/com/fdkk/fdkkmeta/entity/dto/PushDto.java
  16. 1 1
      src/main/java/com/fdkk/fdkkmeta/entity/dto/RotateDto.java
  17. 2 2
      src/main/java/com/fdkk/fdkkmeta/entity/dto/RouteDto.java
  18. 1 1
      src/main/java/com/fdkk/fdkkmeta/entity/dto/UserOnlineDto.java
  19. 18 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/BreakpointsEntity.java
  20. 23 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/MoveFrameEntity.java
  21. 16 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RecordEntity.java
  22. 16 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RoomEntity.java
  23. 22 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RotateFrameEntity.java
  24. 17 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/SceneEntity.java
  25. 24 0
      src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/UserEntity.java
  26. 1 1
      src/main/java/com/fdkk/fdkkmeta/entity/po/PointPO.java
  27. 1 1
      src/main/java/com/fdkk/fdkkmeta/entity/po/RoutePO.java
  28. 2 2
      src/main/java/com/fdkk/fdkkmeta/entity/vo/PointsVO.java
  29. 19 0
      src/main/java/com/fdkk/fdkkmeta/enums/DataSourceType.java
  30. 30 0
      src/main/java/com/fdkk/fdkkmeta/handler/MyMetaObjectHandler.java
  31. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/BreakpointsMapper.java
  32. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/MoveFramesMapper.java
  33. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/RecordMapper.java
  34. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/RoomMapper.java
  35. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/RotateFrameMapper.java
  36. 16 0
      src/main/java/com/fdkk/fdkkmeta/mapper/UserMapper.java
  37. 13 0
      src/main/java/com/fdkk/fdkkmeta/service/BreakpointsService.java
  38. 13 0
      src/main/java/com/fdkk/fdkkmeta/service/MoveFrameService.java
  39. 15 0
      src/main/java/com/fdkk/fdkkmeta/service/RecordService.java
  40. 16 0
      src/main/java/com/fdkk/fdkkmeta/service/RoomService.java
  41. 14 0
      src/main/java/com/fdkk/fdkkmeta/service/RotateFrameService.java
  42. 13 0
      src/main/java/com/fdkk/fdkkmeta/service/UserService.java
  43. 27 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/BreakpointsServiceImpl.java
  44. 27 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/MoveFrameServiceImpl.java
  45. 34 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/RoomServiceImpl.java
  46. 28 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/RotateFrameImpl.java
  47. 28 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/RrcordFrameImpl.java
  48. 18 0
      src/main/java/com/fdkk/fdkkmeta/service/impl/UserImpl.java
  49. 4 5
      src/main/java/com/fdkk/fdkkmeta/socketIO/SocketIoServer.java
  50. 1 18
      src/main/java/com/fdkk/fdkkmeta/test/test.java
  51. 1 1
      src/main/java/com/fdkk/fdkkmeta/util/TrtcUtil.java
  52. 1 1
      src/main/java/com/fdkk/fdkkmeta/util/kesar/AStar.java
  53. 2 3
      src/main/java/com/fdkk/fdkkmeta/util/kesar/GetRoute.java
  54. 1 1
      src/main/java/com/fdkk/fdkkmeta/util/kesar/MapInfo.java
  55. 81 0
      src/main/resources/application-dev.yml
  56. 15 0
      src/main/resources/mybatis/mybatis-config.xml

+ 46 - 0
pom.xml

@@ -26,12 +26,30 @@
         <socketio.version>1.7.19</socketio.version>
         <fastjson.version>1.2.79</fastjson.version>
         <tls.version>2.0</tls.version>
+        <mybatis-plus-boot-starter.version>3.4.3.1</mybatis-plus-boot-starter.version>
+        <druid.version>1.2.6</druid.version>
+        <pagehelper.boot.version>1.3.1</pagehelper.boot.version>
+
     </properties>
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>${mybatis-plus-boot-starter.version}</version>
+        </dependency>
             <dependency>
                 <groupId>com.github.tencentyun</groupId>
                 <artifactId>tls-sig-api-v2</artifactId>
@@ -48,6 +66,12 @@
             <optional>true</optional>
         </dependency>
         <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
@@ -63,7 +87,29 @@
             <artifactId>fastjson</artifactId>
             <version>${fastjson.version}</version>
         </dependency>
+        <!-- pagehelper 分页插件 -->
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+            <version>${pagehelper.boot.version}</version>
+        </dependency>
         <!-- https://mvnrepository.com/artifact/ws.schild/jave-nativebin-linux64 -->
+        <!-- 阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>${druid.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.sun</groupId>
+                    <artifactId>tools</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun</groupId>
+                    <artifactId>jconsole</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
 
         <dependency>
             <groupId>com.lmax</groupId>

+ 3 - 1
src/main/java/com/fdkk/fdkkmeta/FdkkMetaApplication.java

@@ -1,13 +1,15 @@
 package com.fdkk.fdkkmeta;
 
 import com.fdkk.fdkkmeta.config.TrtcConfig;
+import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
-@SpringBootApplication
 @EnableScheduling
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class , PageHelperAutoConfiguration.class})
 public class FdkkMetaApplication {
 
 

+ 74 - 0
src/main/java/com/fdkk/fdkkmeta/base/BaseEntity.java

@@ -0,0 +1,74 @@
+package com.fdkk.fdkkmeta.base;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Entity基类
+ *
+ * @author fdkk
+ */
+@Data
+public abstract class BaseEntity implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value="id", type= IdType.AUTO)
+    private Long id;
+
+    /** 搜索值 */
+    @TableField(exist = false)
+    private String searchValue;
+
+    /** 创建者 */
+    private String createBy;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//set
+    @TableField(value = "create_time",fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 更新者 */
+    private String updateBy;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//set
+    @TableField(value = "update_time",fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 备注 */
+    private String remark;
+
+    @TableField(value = "deleted")
+    @TableLogic(value = "0",delval = "1")
+    private Integer deleted;
+
+
+    /** 请求参数 */
+    @TableField(exist = false)
+    private Map<String, Object> params;
+
+
+    public Map<String, Object> getParams()
+    {
+        if (params == null)
+        {
+            params = new HashMap<>();
+        }
+        return params;
+    }
+
+    public void setParams(Map<String, Object> params)
+    {
+        this.params = params;
+    }
+}

+ 7 - 0
src/main/java/com/fdkk/fdkkmeta/base/IBaseMapper.java

@@ -0,0 +1,7 @@
+package com.fdkk.fdkkmeta.base;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface IBaseMapper<T> extends BaseMapper<T> {
+
+}

+ 55 - 0
src/main/java/com/fdkk/fdkkmeta/base/IBaseService.java

@@ -0,0 +1,55 @@
+package com.fdkk.fdkkmeta.base;
+
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.pagehelper.PageInfo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public interface IBaseService<T> extends IService<T> {
+
+
+
+    /**
+     * 根据实体参数返回一行记录
+     * @param condition
+     * @return
+     */
+    T getOne(T condition);
+
+
+    /**
+     * 根据实体参数返回列表数据
+     * @param condition
+     * @return
+     */
+    List<T> list(T condition);
+
+    /**
+     * 分页查询
+     * @param page
+     * @param condition
+     * @return
+     */
+    PageInfo<T> listByPage(RequestBase page, T condition);
+
+    /**
+     * 分页查询
+     * @param page
+     * @param queryWrapper
+     * @return
+     */
+    PageInfo<T> listByPage(RequestBase page, Wrapper<T> queryWrapper);
+
+    /**
+     * 分页查询
+     * @param page
+     * @return
+     */
+    PageInfo<T> listByPage(RequestBase page);
+
+    T findById(Serializable id);
+
+}

+ 23 - 0
src/main/java/com/fdkk/fdkkmeta/base/RequestBase.java

@@ -0,0 +1,23 @@
+package com.fdkk.fdkkmeta.base;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RequestBase implements Serializable {
+
+    private int pageNum=1;
+
+    private int pageSize=20;
+
+    private String orderBy="id";
+
+    private Boolean isALL=false;
+
+    private String sortBy="DESC";
+
+    private int start;
+
+    private String lastId="";
+}

+ 97 - 0
src/main/java/com/fdkk/fdkkmeta/base/impl/BaseServiceImpl.java

@@ -0,0 +1,97 @@
+package com.fdkk.fdkkmeta.base.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.base.RequestBase;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Transactional
+@Slf4j
+public abstract class BaseServiceImpl<M extends IBaseMapper<T>, T> extends ServiceImpl<M, T> implements IBaseService<T> {
+
+    @Override
+    public boolean save(T entity) {
+        return super.save(entity);
+    }
+
+    @Override
+    public boolean updateById(T entity) {
+        return super.updateById(entity);
+    }
+
+    @Override
+    public boolean removeById(Serializable id) {
+        return super.removeById(id);
+    }
+
+    @Override
+    public T getOne(T condition) {
+        return super.getOne(new QueryWrapper<>(condition), false);
+    }
+
+    @Override
+    public T getOne(Wrapper<T> queryWrapper) {
+        return getOne(queryWrapper, false);
+    }
+
+    @Override
+    public List<T> list(T condition) {
+        return super.list(new QueryWrapper<>(condition));
+    }
+
+    @Override
+    public PageInfo<T>  listByPage(RequestBase page, T condition) {
+        if (ObjectUtil.isNotNull(page)) {
+            if (!page.getIsALL()){
+                PageHelper.startPage(page.getPageNum(), page.getPageSize());
+                if (StrUtil.isNotEmpty(page.getOrderBy())) {
+                    PageHelper.orderBy(page.getOrderBy() + " " + page.getSortBy());
+                }
+            }
+        }
+        return  new PageInfo<T>(super.list(new QueryWrapper<>(condition)));
+    }
+
+    @Override
+    public PageInfo<T> listByPage(RequestBase page, Wrapper<T> queryWrapper) {
+        if (ObjectUtil.isNotNull(page)) {
+            if (!page.getIsALL()){
+                PageHelper.startPage(page.getPageNum(),page.getPageSize());
+                if (StrUtil.isNotEmpty(page.getOrderBy())){
+                    PageHelper.orderBy(page.getOrderBy()+" "+page.getSortBy());
+                }
+            }
+        }
+        return new PageInfo<T>(super.list(queryWrapper));
+    }
+
+    @Override
+    public PageInfo<T> listByPage(RequestBase page) {
+        if (ObjectUtil.isNotNull(page)) {
+            if (!page.getIsALL()){
+                PageHelper.startPage(page.getPageNum(), page.getPageSize());
+                if (StrUtil.isNotEmpty(page.getOrderBy())) {
+                    PageHelper.orderBy(page.getOrderBy() + " " + page.getSortBy());
+                }
+            }
+        }
+        return new PageInfo<T>(super.list());
+    }
+
+    @Override
+    public T findById(Serializable id) {
+        return getById(id);
+    }
+
+}

+ 123 - 0
src/main/java/com/fdkk/fdkkmeta/config/DruidConfig.java

@@ -0,0 +1,123 @@
+package com.fdkk.fdkkmeta.config;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
+import com.alibaba.druid.util.Utils;
+import com.fdkk.fdkkmeta.config.datasource.DynamicDataSource;
+import com.fdkk.fdkkmeta.config.properties.DruidProperties;
+import com.fdkk.fdkkmeta.enums.DataSourceType;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import javax.servlet.*;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * druid 配置多数据源
+ *
+ * @author fdkk
+ */
+@Configuration
+public class DruidConfig
+{
+    @Bean
+    @ConfigurationProperties("spring.datasource.druid.master")
+    public DataSource masterDataSource(DruidProperties druidProperties)
+    {
+        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
+        return druidProperties.dataSource(dataSource);
+    }
+
+    @Bean
+    @ConfigurationProperties("spring.datasource.druid.slave")
+    @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
+    public DataSource slaveDataSource(DruidProperties druidProperties)
+    {
+        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
+        return druidProperties.dataSource(dataSource);
+    }
+
+    @Bean(name = "dynamicDataSource")
+    @Primary
+    public DynamicDataSource dataSource(DataSource masterDataSource)
+    {
+        Map<Object, Object> targetDataSources = new HashMap<>();
+        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
+        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
+        return new DynamicDataSource(masterDataSource, targetDataSources);
+    }
+
+    /**
+     * 设置数据源
+     *
+     * @param targetDataSources 备选数据源集合
+     * @param sourceName 数据源名称
+     * @param beanName bean名称
+     */
+    public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
+    {
+        try
+        {
+            DataSource dataSource = SpringUtil.getBean(beanName);
+            targetDataSources.put(sourceName, dataSource);
+        }
+        catch (Exception e)
+        {
+        }
+    }
+
+    /**
+     * 去除监控页面底部的广告
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    @Bean
+    @ConditionalOnProperty(name = "spring.datasource.druid.statViewServlet.enabled", havingValue = "true")
+    public FilterRegistrationBean removeDruidFilterRegistrationBean(DruidStatProperties properties)
+    {
+        // 获取web监控页面的参数
+        DruidStatProperties.StatViewServlet config = properties.getStatViewServlet();
+        // 提取common.js的配置路径
+        String pattern = config.getUrlPattern() != null ? config.getUrlPattern() : "/druid/*";
+        String commonJsPattern = pattern.replaceAll("\\*", "js/common.js");
+        final String filePath = "support/http/resources/js/common.js";
+        // 创建filter进行过滤
+        Filter filter = new Filter()
+        {
+            @Override
+            public void init(javax.servlet.FilterConfig filterConfig) throws ServletException
+            {
+            }
+            @Override
+            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+                    throws IOException, ServletException
+            {
+                chain.doFilter(request, response);
+                // 重置缓冲区,响应头不会被重置
+                response.resetBuffer();
+                // 获取common.js
+                String text = Utils.readFromResource(filePath);
+                // 正则替换banner, 除去底部的广告信息
+                text = text.replaceAll("<a.*?banner\"></a><br/>", "");
+                text = text.replaceAll("powered.*?shrek.wang</a>", "");
+                response.getWriter().write(text);
+            }
+            @Override
+            public void destroy()
+            {
+            }
+        };
+        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
+        registrationBean.setFilter(filter);
+        registrationBean.addUrlPatterns(commonJsPattern);
+        return registrationBean;
+    }
+}

+ 48 - 0
src/main/java/com/fdkk/fdkkmeta/config/MyBatisPlusConfig.java

@@ -0,0 +1,48 @@
+package com.fdkk.fdkkmeta.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@Configuration
+@EnableTransactionManagement
+@MapperScan({"com.fdkk.**.mapper"})
+public class MyBatisPlusConfig {
+    /*
+     * 分页插件,自动识别数据库类型
+     * 多租户,请参考官网【插件扩展】
+     */
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
+     */
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        //向Mybatis过滤器链中添加分页拦截器
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        //还可以添加其他的拦截器
+        // 阻断插件
+        interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
+        return interceptor;
+    }
+    @Bean
+    ConfigurationCustomizer mybatisConfigurationCustomizer() {
+        return configuration -> configuration.addInterceptor(new com.github.pagehelper.PageInterceptor());
+    }
+
+    /**
+     * 如果是对全表的删除或更新操作,就会终止该操作
+     * https://baomidou.com/guide/interceptor-block-attack.html
+     */
+    public BlockAttackInnerInterceptor blockAttackInnerInterceptor()
+    {
+        return new BlockAttackInnerInterceptor();
+    }
+}

+ 27 - 0
src/main/java/com/fdkk/fdkkmeta/config/datasource/DynamicDataSource.java

@@ -0,0 +1,27 @@
+package com.fdkk.fdkkmeta.config.datasource;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+import javax.sql.DataSource;
+import java.util.Map;
+
+/**
+ * 动态数据源
+ *
+ * @author fdkk
+ */
+public class DynamicDataSource extends AbstractRoutingDataSource
+{
+    public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources)
+    {
+        super.setDefaultTargetDataSource(defaultTargetDataSource);
+        super.setTargetDataSources(targetDataSources);
+        super.afterPropertiesSet();
+    }
+
+    @Override
+    protected Object determineCurrentLookupKey()
+    {
+        return DynamicDataSourceContextHolder.getDataSourceType();
+    }
+}

+ 45 - 0
src/main/java/com/fdkk/fdkkmeta/config/datasource/DynamicDataSourceContextHolder.java

@@ -0,0 +1,45 @@
+package com.fdkk.fdkkmeta.config.datasource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 数据源切换处理
+ *
+ * @author fdkk
+ */
+public class DynamicDataSourceContextHolder
+{
+    public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class);
+
+    /**
+     * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本,
+     *  所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
+     */
+    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();
+
+    /**
+     * 设置数据源的变量
+     */
+    public static void setDataSourceType(String dsType)
+    {
+        log.info("切换到{}数据源", dsType);
+        CONTEXT_HOLDER.set(dsType);
+    }
+
+    /**
+     * 获得数据源的变量
+     */
+    public static String getDataSourceType()
+    {
+        return CONTEXT_HOLDER.get();
+    }
+
+    /**
+     * 清空数据源变量
+     */
+    public static void clearDataSourceType()
+    {
+        CONTEXT_HOLDER.remove();
+    }
+}

+ 77 - 0
src/main/java/com/fdkk/fdkkmeta/config/properties/DruidProperties.java

@@ -0,0 +1,77 @@
+package com.fdkk.fdkkmeta.config.properties;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * druid 配置属性
+ *
+ * @author fdkk
+ */
+@Configuration
+public class DruidProperties
+{
+    @Value("${spring.datasource.druid.initialSize}")
+    private int initialSize;
+
+    @Value("${spring.datasource.druid.minIdle}")
+    private int minIdle;
+
+    @Value("${spring.datasource.druid.maxActive}")
+    private int maxActive;
+
+    @Value("${spring.datasource.druid.maxWait}")
+    private int maxWait;
+
+    @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
+    private int timeBetweenEvictionRunsMillis;
+
+    @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
+    private int minEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
+    private int maxEvictableIdleTimeMillis;
+
+    @Value("${spring.datasource.druid.validationQuery}")
+    private String validationQuery;
+
+    @Value("${spring.datasource.druid.testWhileIdle}")
+    private boolean testWhileIdle;
+
+    @Value("${spring.datasource.druid.testOnBorrow}")
+    private boolean testOnBorrow;
+
+    @Value("${spring.datasource.druid.testOnReturn}")
+    private boolean testOnReturn;
+
+    public DruidDataSource dataSource(DruidDataSource datasource)
+    {
+        /** 配置初始化大小、最小、最大 */
+        datasource.setInitialSize(initialSize);
+        datasource.setMaxActive(maxActive);
+        datasource.setMinIdle(minIdle);
+
+        /** 配置获取连接等待超时的时间 */
+        datasource.setMaxWait(maxWait);
+
+        /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+
+        /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+        datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+
+        /**
+         * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+         */
+        datasource.setValidationQuery(validationQuery);
+        /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+        datasource.setTestWhileIdle(testWhileIdle);
+        /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnBorrow(testOnBorrow);
+        /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+        datasource.setTestOnReturn(testOnReturn);
+        return datasource;
+    }
+}

+ 44 - 0
src/main/java/com/fdkk/fdkkmeta/ctroller/DevController.java

@@ -0,0 +1,44 @@
+package com.fdkk.fdkkmeta.ctroller;
+
+/**
+ * @author Xiewj
+ * @date 2021/12/29
+ */
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RoomEntity;
+import com.fdkk.fdkkmeta.service.RoomService;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+import java.awt.geom.AffineTransform;
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/dev")
+@Slf4j
+public class DevController   {
+    @Autowired
+    RoomService roomService;
+
+    /**
+     * test
+     *
+     * @return
+     */
+    @PostMapping("/test")
+    public String test() {
+        RoomEntity a=new RoomEntity();
+        a.setSceneId("1");
+        roomService.save(a);
+        List<RoomEntity> bySceneId = roomService.findBySceneId("1");
+        return bySceneId.toString();
+    }
+}

+ 2 - 2
src/main/java/com/fdkk/fdkkmeta/entity/dto/BaseDto.java

@@ -1,6 +1,6 @@
-package com.fdkk.fdkkmeta.entity.dto;
+package com.fdkk.fdkkmeta.domain.dto;
 
-import com.fdkk.fdkkmeta.entity.po.PointPO;
+import com.fdkk.fdkkmeta.domain.po.PointPO;
 import lombok.*;
 
 /**

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/entity/dto/PushDto.java

@@ -1,4 +1,4 @@
-package com.fdkk.fdkkmeta.entity.dto;
+package com.fdkk.fdkkmeta.domain.dto;
 
 import lombok.*;
 

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/entity/dto/RotateDto.java

@@ -1,4 +1,4 @@
-package com.fdkk.fdkkmeta.entity.dto;
+package com.fdkk.fdkkmeta.domain.dto;
 
 import lombok.*;
 

+ 2 - 2
src/main/java/com/fdkk/fdkkmeta/entity/dto/RouteDto.java

@@ -1,6 +1,6 @@
-package com.fdkk.fdkkmeta.entity.dto;
+package com.fdkk.fdkkmeta.domain.dto;
 
-import com.fdkk.fdkkmeta.entity.po.PointPO;
+import com.fdkk.fdkkmeta.domain.po.PointPO;
 import lombok.Data;
 
 /**

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/entity/dto/UserOnlineDto.java

@@ -1,4 +1,4 @@
-package com.fdkk.fdkkmeta.entity.dto;
+package com.fdkk.fdkkmeta.domain.dto;
 
 import lombok.*;
 

+ 18 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/BreakpointsEntity.java

@@ -0,0 +1,18 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("breakpoints")
+public class BreakpointsEntity extends BaseEntity {
+    private String sceneId;
+    private String pointId;
+    private String position;
+
+}

+ 23 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/MoveFrameEntity.java

@@ -0,0 +1,23 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("moveframe")
+public class MoveFrameEntity extends BaseEntity {
+    private String frameId;
+    private Integer frameIndex;
+    private String directory;
+    private String fileName;
+    private Integer startBreakPointId;
+    private Integer endBreakPointId;
+    private String angle;
+    private String sceneId;
+
+}

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RecordEntity.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("record")
+public class RecordEntity extends BaseEntity {
+    private String traceId;
+    private String state;
+}

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RoomEntity.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("room")
+public class RoomEntity extends BaseEntity {
+    private String roomId;
+    private String sceneId;
+}

+ 22 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/RotateFrameEntity.java

@@ -0,0 +1,22 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("rotateframe")
+public class RotateFrameEntity extends BaseEntity {
+    private String frameId;
+    private String frameIndex;
+    private String sceneId;
+    private String directory;
+    private String fileName;
+    private String cameraPosition;
+    private String cameraAngle;
+    private String breakPointId;
+}

+ 17 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/SceneEntity.java

@@ -0,0 +1,17 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("scene")
+public class SceneEntity extends BaseEntity {
+    private String sceneId;
+    private String low_model_src;
+    private String name;
+}

+ 24 - 0
src/main/java/com/fdkk/fdkkmeta/domain/entity/mysql/UserEntity.java

@@ -0,0 +1,24 @@
+package com.fdkk.fdkkmeta.domain.entity.mysql;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fdkk.fdkkmeta.base.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author Xiewj
+ * @date 2022/5/9
+ */
+@Data
+@TableName("user")
+public class UserEntity extends BaseEntity {
+    private String nick_name;
+    private String skinId;
+    private String avatarId;
+    private String onlineTime;
+    private String offlineTime;
+    private String breakPointId;
+    private String playerAngle;
+    private String sceneId;
+    private String sessionId;
+    private String frameId;
+}

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/entity/po/PointPO.java

@@ -1,4 +1,4 @@
-package com.fdkk.fdkkmeta.entity.po;
+package com.fdkk.fdkkmeta.domain.po;
 
 import lombok.Data;
 

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/entity/po/RoutePO.java

@@ -1,4 +1,4 @@
-package com.fdkk.fdkkmeta.entity.po;
+package com.fdkk.fdkkmeta.domain.po;
 
 import lombok.Data;
 

+ 2 - 2
src/main/java/com/fdkk/fdkkmeta/entity/vo/PointsVO.java

@@ -1,6 +1,6 @@
-package com.fdkk.fdkkmeta.entity.vo;
+package com.fdkk.fdkkmeta.domain.vo;
 
-import com.fdkk.fdkkmeta.entity.po.PointPO;
+import com.fdkk.fdkkmeta.domain.po.PointPO;
 import lombok.Data;
 
 /**

+ 19 - 0
src/main/java/com/fdkk/fdkkmeta/enums/DataSourceType.java

@@ -0,0 +1,19 @@
+package com.fdkk.fdkkmeta.enums;
+
+/**
+ * 数据源
+ *
+ * @author fdkk
+ */
+public enum DataSourceType
+{
+    /**
+     * 主库
+     */
+    MASTER,
+
+    /**
+     * 从库
+     */
+    SLAVE
+}

+ 30 - 0
src/main/java/com/fdkk/fdkkmeta/handler/MyMetaObjectHandler.java

@@ -0,0 +1,30 @@
+package com.fdkk.fdkkmeta.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @description: 处理createTime,updateTime字段的插入和更新
+ * @author: Xiewj
+ * @date: 2021-08-16 15:32:55
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class);
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        // 起始版本 3.3.3(推荐)
+        this.strictUpdateFill(metaObject, "updateTime", () ->new Date(), Date.class);
+    }
+}

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/BreakpointsMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.BreakpointsEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("BreakpointsMapper")
+public interface BreakpointsMapper extends IBaseMapper<BreakpointsEntity> {
+}
+

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/MoveFramesMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("MoveFramesMapper")
+public interface MoveFramesMapper extends IBaseMapper<MoveFrameEntity> {
+}
+

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/RecordMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RecordEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("RecordMapper")
+public interface RecordMapper extends IBaseMapper<RecordEntity> {
+}
+

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/RoomMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RoomEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("RoomMapper")
+public interface RoomMapper extends IBaseMapper<RoomEntity> {
+}
+

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/RotateFrameMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RotateFrameEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("RotateFrameMapper")
+public interface RotateFrameMapper extends IBaseMapper<RotateFrameEntity> {
+}
+

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/mapper/UserMapper.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.mapper;
+
+import com.fdkk.fdkkmeta.base.IBaseMapper;
+import com.fdkk.fdkkmeta.domain.entity.mysql.UserEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author Xiewj
+ * @date 2021/11/22
+ */
+@Mapper
+@Component("UserMapper")
+public interface UserMapper extends IBaseMapper<UserEntity> {
+}
+

+ 13 - 0
src/main/java/com/fdkk/fdkkmeta/service/BreakpointsService.java

@@ -0,0 +1,13 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.BreakpointsEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface BreakpointsService extends IBaseService<BreakpointsEntity> {
+    List<BreakpointsEntity>     findBySceneId(String sceneId);
+}

+ 13 - 0
src/main/java/com/fdkk/fdkkmeta/service/MoveFrameService.java

@@ -0,0 +1,13 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface MoveFrameService extends IBaseService<MoveFrameEntity> {
+    List<MoveFrameEntity> findBySceneId(String sceneId);
+}

+ 15 - 0
src/main/java/com/fdkk/fdkkmeta/service/RecordService.java

@@ -0,0 +1,15 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RoomEntity;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RecordEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface RecordService extends IBaseService<RecordEntity> {
+    List<RecordEntity> findByTraceId(String traceId);
+
+}

+ 16 - 0
src/main/java/com/fdkk/fdkkmeta/service/RoomService.java

@@ -0,0 +1,16 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RoomEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface RoomService extends IBaseService<RoomEntity> {
+    List<RoomEntity> findBySceneId(String sceneId);
+    List<RoomEntity> findByRoomId(String roomId);
+
+}

+ 14 - 0
src/main/java/com/fdkk/fdkkmeta/service/RotateFrameService.java

@@ -0,0 +1,14 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RotateFrameEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface RotateFrameService extends IBaseService<RotateFrameEntity> {
+    List<RotateFrameEntity> findBySceneId(String sceneId);
+}

+ 13 - 0
src/main/java/com/fdkk/fdkkmeta/service/UserService.java

@@ -0,0 +1,13 @@
+package com.fdkk.fdkkmeta.service;
+
+import com.fdkk.fdkkmeta.base.IBaseService;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RotateFrameEntity;
+import com.fdkk.fdkkmeta.domain.entity.mysql.UserEntity;
+
+import java.util.List;
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+public interface UserService extends IBaseService<UserEntity> {
+}

+ 27 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/BreakpointsServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.fdkkmeta.mapper.BreakpointsMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.BreakpointsEntity;
+import com.fdkk.fdkkmeta.service.BreakpointsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class BreakpointsServiceImpl extends BaseServiceImpl<BreakpointsMapper, BreakpointsEntity> implements BreakpointsService {
+    @Override
+    public List<BreakpointsEntity> findBySceneId(String sceneId) {
+        LambdaQueryWrapper<BreakpointsEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(BreakpointsEntity::getSceneId, sceneId);
+        return list(wrapper);
+    }
+}

+ 27 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/MoveFrameServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.fdkkmeta.mapper.MoveFramesMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.MoveFrameEntity;
+import com.fdkk.fdkkmeta.service.MoveFrameService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class MoveFrameServiceImpl extends BaseServiceImpl<MoveFramesMapper, MoveFrameEntity> implements MoveFrameService {
+    @Override
+    public List<MoveFrameEntity> findBySceneId(String sceneId) {
+        LambdaQueryWrapper<MoveFrameEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(MoveFrameEntity::getSceneId, sceneId);
+        return list(wrapper);
+    }
+}

+ 34 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/RoomServiceImpl.java

@@ -0,0 +1,34 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.fdkkmeta.mapper.RoomMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RoomEntity;
+import com.fdkk.fdkkmeta.service.RoomService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class RoomServiceImpl extends BaseServiceImpl<RoomMapper, RoomEntity> implements RoomService {
+    @Override
+    public List<RoomEntity> findBySceneId(String sceneId) {
+        LambdaQueryWrapper<RoomEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(RoomEntity::getSceneId, sceneId);
+        return list(wrapper);
+    }
+
+    @Override
+    public List<RoomEntity> findByRoomId(String roomId) {
+        LambdaQueryWrapper<RoomEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(RoomEntity::getRoomId, roomId);
+        return list(wrapper);
+    }
+}

+ 28 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/RotateFrameImpl.java

@@ -0,0 +1,28 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.fdkkmeta.mapper.RotateFrameMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RotateFrameEntity;
+import com.fdkk.fdkkmeta.service.RotateFrameService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class RotateFrameImpl extends BaseServiceImpl<RotateFrameMapper, RotateFrameEntity> implements RotateFrameService {
+    @Override
+    public List<RotateFrameEntity> findBySceneId(String sceneId) {
+        LambdaQueryWrapper<RotateFrameEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(RotateFrameEntity::getSceneId, sceneId);
+        return list(wrapper);
+    }
+
+}

+ 28 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/RrcordFrameImpl.java

@@ -0,0 +1,28 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fdkk.fdkkmeta.mapper.RecordMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.RecordEntity;
+import com.fdkk.fdkkmeta.service.RecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class RrcordFrameImpl extends BaseServiceImpl<RecordMapper, RecordEntity> implements RecordService {
+    @Override
+    public List<RecordEntity> findByTraceId(String traceId) {
+        LambdaQueryWrapper<RecordEntity> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(RecordEntity::getTraceId, traceId);
+        return list(wrapper);
+    }
+
+}

+ 18 - 0
src/main/java/com/fdkk/fdkkmeta/service/impl/UserImpl.java

@@ -0,0 +1,18 @@
+package com.fdkk.fdkkmeta.service.impl;
+
+import com.fdkk.fdkkmeta.mapper.UserMapper;
+import com.fdkk.fdkkmeta.base.impl.BaseServiceImpl;
+import com.fdkk.fdkkmeta.domain.entity.mysql.UserEntity;
+import com.fdkk.fdkkmeta.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * Created by Xiewj on 2021/11/23 0026 10:14
+ */
+@Slf4j
+@Service
+public class UserImpl extends BaseServiceImpl<UserMapper, UserEntity> implements UserService {
+
+}

+ 4 - 5
src/main/java/com/fdkk/fdkkmeta/socketIO/SocketIoServer.java

@@ -9,17 +9,16 @@ import cn.hutool.core.util.RuntimeUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.corundumstudio.socketio.AckRequest;
 import com.corundumstudio.socketio.SocketIOClient;
 import com.corundumstudio.socketio.SocketIOServer;
 import com.corundumstudio.socketio.annotation.OnConnect;
 import com.corundumstudio.socketio.annotation.OnDisconnect;
 import com.corundumstudio.socketio.annotation.OnEvent;
-import com.fdkk.fdkkmeta.entity.dto.PushDto;
-import com.fdkk.fdkkmeta.entity.dto.RotateDto;
-import com.fdkk.fdkkmeta.entity.dto.RouteDto;
-import com.fdkk.fdkkmeta.entity.vo.PointsVO;
+import com.fdkk.fdkkmeta.domain.dto.PushDto;
+import com.fdkk.fdkkmeta.domain.dto.RotateDto;
+import com.fdkk.fdkkmeta.domain.dto.RouteDto;
+import com.fdkk.fdkkmeta.domain.vo.PointsVO;
 import com.fdkk.fdkkmeta.redis.RedisCache;
 import com.fdkk.fdkkmeta.util.FpsUtil;
 import com.fdkk.fdkkmeta.util.GenerateUserSig;

+ 1 - 18
src/main/java/com/fdkk/fdkkmeta/test/test.java

@@ -1,29 +1,12 @@
 package com.fdkk.fdkkmeta.test;
 
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.BufferUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.io.file.FileWriter;
-import cn.hutool.core.lang.Console;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.URLUtil;
-import cn.hutool.log.StaticLog;
-import cn.hutool.socket.aio.AioServer;
-import cn.hutool.socket.aio.AioSession;
-import cn.hutool.socket.aio.SimpleIoAction;
-import cn.hutool.socket.nio.NioServer;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.fdkk.fdkkmeta.entity.po.RoutePO;
+import com.fdkk.fdkkmeta.domain.po.RoutePO;
 import com.fdkk.fdkkmeta.util.FileUtils;
 
-import java.io.*;
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/util/TrtcUtil.java

@@ -1,7 +1,7 @@
 package com.fdkk.fdkkmeta.util;
 
 import com.fdkk.fdkkmeta.config.TrtcConfig;
-import com.fdkk.fdkkmeta.entity.dto.PushDto;
+import com.fdkk.fdkkmeta.domain.dto.PushDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/util/kesar/AStar.java

@@ -1,6 +1,6 @@
 package com.fdkk.fdkkmeta.util.kesar;
 
-import com.fdkk.fdkkmeta.entity.po.RoutePO;
+import com.fdkk.fdkkmeta.domain.po.RoutePO;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.*;

+ 2 - 3
src/main/java/com/fdkk/fdkkmeta/util/kesar/GetRoute.java

@@ -2,12 +2,11 @@ package com.fdkk.fdkkmeta.util.kesar;
 
 import cn.hutool.core.io.LineHandler;
 import cn.hutool.core.io.file.FileReader;
-import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.fdkk.fdkkmeta.entity.dto.RouteDto;
-import com.fdkk.fdkkmeta.entity.po.RoutePO;
+import com.fdkk.fdkkmeta.domain.dto.RouteDto;
+import com.fdkk.fdkkmeta.domain.po.RoutePO;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.*;

+ 1 - 1
src/main/java/com/fdkk/fdkkmeta/util/kesar/MapInfo.java

@@ -1,7 +1,7 @@
 package com.fdkk.fdkkmeta.util.kesar;
 
 
-import com.fdkk.fdkkmeta.entity.po.RoutePO;
+import com.fdkk.fdkkmeta.domain.po.RoutePO;
 
 import java.util.Map;
 

+ 81 - 0
src/main/resources/application-dev.yml

@@ -32,3 +32,84 @@ spring:
         max-idle: 8
         max-active: 8
         max-wait: 10000
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    driverClassName: com.mysql.cj.jdbc.Driver
+    druid:
+      # 主库数据源
+      master:
+        url: jdbc:mysql://120.25.146.52:13306/fdkk_meta?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        username: root
+        password: JK123456%JIK
+      # 从库数据源
+      slave:
+        # 从数据源开关/默认关闭
+        enabled: false
+        url:
+        username:
+        password:
+      # 初始连接数
+      initialSize: 5
+      # 最小连接池数量
+      minIdle: 10
+      # 最大连接池数量
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      # 配置一个连接在池中最大生存的时间,单位是毫秒
+      maxEvictableIdleTimeMillis: 900000
+      # 配置检测连接是否有效
+      validationQuery: SELECT 1 FROM DUAL
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      webStatFilter:
+        enabled: true
+      statViewServlet:
+        enabled: true
+        # 设置白名单,不填则允许所有访问
+        allow:
+        url-pattern: /druid/*
+        # 控制台管理用户名和密码
+        login-username: fdkk
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 慢SQL记录
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+# MyBatis配置
+mybatis-plus:
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+    map-underscore-to-camel-case: true
+    cache-enabled: false
+    call-setters-on-nulls: true
+    jdbc-type-for-null: 'null'
+  global-config:
+    db-config:
+      db-type: mysql
+      field-strategy: not_null
+      id-type: auto
+      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
+      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
+      table-underline: true
+  mapper-locations: classpath*:mapper/**/*Mapper.xml
+  typeAliasesPackage: com.fdkk.**.domain
+
+
+# PageHelper分页插件
+pagehelper:
+  helperDialect: mysql
+  supportMethodsArguments: true
+  params: count=countSql
+  page-size-zero: true

+ 15 - 0
src/main/resources/mybatis/mybatis-config.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+	
+	<settings>
+		<setting name="cacheEnabled"             value="true" />  <!-- 全局映射器启用缓存 -->
+		<setting name="useGeneratedKeys"         value="true" />  <!-- 允许 JDBC 支持自动生成主键 -->
+		<setting name="defaultExecutorType"      value="REUSE" /> <!-- 配置默认的执行器 -->
+		<setting name="logImpl"                  value="SLF4J" /> <!-- 指定 MyBatis 所用日志的具体实现 -->
+		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/>  驼峰式命名 -->
+	</settings>
+	
+</configuration>