Kaynağa Gözat

完成数据的监听和消息推送。

zhuoning 2 yıl önce
ebeveyn
işleme
f4d0046f17
100 değiştirilmiş dosya ile 1960 ekleme ve 398 silme
  1. 114 17
      registration-center/pom.xml
  2. 33 12
      registration-center/registration-center.iml
  3. 2 1
      registration-center/src/main/java/com/huimv/center/HuimvRegistrationCenterApplication.java
  4. 0 30
      registration-center/src/main/java/com/huimv/center/config/MybatisConfig.java
  5. 25 16
      registration-center/src/main/java/com/huimv/center/config/MybatisPlusConfig.java
  6. 88 0
      registration-center/src/main/java/com/huimv/center/config/TopicRabbitMQConfig.java
  7. 21 0
      registration-center/src/main/java/com/huimv/center/controller/BizDeviceAnswerFlowController.java
  8. 21 0
      registration-center/src/main/java/com/huimv/center/controller/BizDeviceRegisteredFlowController.java
  9. 21 0
      registration-center/src/main/java/com/huimv/center/controller/BizDeviceUnregisteredController.java
  10. 21 0
      registration-center/src/main/java/com/huimv/center/controller/BizDeviceUnregisteredFlowController.java
  11. 129 0
      registration-center/src/main/java/com/huimv/center/listener/Listener.java
  12. 16 0
      registration-center/src/main/java/com/huimv/center/mapper/BizDeviceAnswerFlowMapper.java
  13. 11 1
      registration-center/src/main/java/com/huimv/center/mapper/BizDeviceRegisterMapper.java
  14. 16 0
      registration-center/src/main/java/com/huimv/center/mapper/BizDeviceRegisteredFlowMapper.java
  15. 16 0
      registration-center/src/main/java/com/huimv/center/mapper/BizDeviceUnregisteredFlowMapper.java
  16. 16 0
      registration-center/src/main/java/com/huimv/center/mapper/BizDeviceUnregisteredMapper.java
  17. 19 0
      registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceAnswerFlowMapper.xml
  18. 5 0
      registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceRegisterMapper.xml
  19. 19 0
      registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceRegisteredFlowMapper.xml
  20. 17 0
      registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceUnregisteredFlowMapper.xml
  21. 19 0
      registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceUnregisteredMapper.xml
  22. 37 0
      registration-center/src/main/java/com/huimv/center/pojo/BizDeviceAnswerFlow.java
  23. 2 0
      registration-center/src/main/java/com/huimv/center/pojo/BizDeviceRegister.java
  24. 37 0
      registration-center/src/main/java/com/huimv/center/pojo/BizDeviceRegisteredFlow.java
  25. 37 0
      registration-center/src/main/java/com/huimv/center/pojo/BizDeviceUnregistered.java
  26. 33 0
      registration-center/src/main/java/com/huimv/center/pojo/BizDeviceUnregisteredFlow.java
  27. 60 0
      registration-center/src/main/java/com/huimv/center/producer/Producer.java
  28. 48 0
      registration-center/src/main/java/com/huimv/center/result/RRException.java
  29. 83 0
      registration-center/src/main/java/com/huimv/center/server/RegisterServer.java
  30. 262 0
      registration-center/src/main/java/com/huimv/center/server/RegisterServerHandler.java
  31. 16 0
      registration-center/src/main/java/com/huimv/center/service/BizDeviceAnswerFlowService.java
  32. 4 1
      registration-center/src/main/java/com/huimv/center/service/BizDeviceRegisterService.java
  33. 16 0
      registration-center/src/main/java/com/huimv/center/service/BizDeviceRegisteredFlowService.java
  34. 16 0
      registration-center/src/main/java/com/huimv/center/service/BizDeviceUnregisteredFlowService.java
  35. 16 0
      registration-center/src/main/java/com/huimv/center/service/BizDeviceUnregisteredService.java
  36. 20 0
      registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceAnswerFlowServiceImpl.java
  37. 66 19
      registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.java
  38. 20 0
      registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisteredFlowServiceImpl.java
  39. 20 0
      registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceUnregisteredFlowServiceImpl.java
  40. 20 0
      registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceUnregisteredServiceImpl.java
  41. 32 0
      registration-center/src/main/java/com/huimv/center/utils/Const.java
  42. 131 0
      registration-center/src/main/java/com/huimv/center/utils/Constant.java
  43. 84 0
      registration-center/src/main/java/com/huimv/center/utils/Query.java
  44. 31 0
      registration-center/src/main/java/com/huimv/center/utils/RegexUtil.java
  45. 51 0
      registration-center/src/main/java/com/huimv/center/utils/SQLFilter.java
  46. 4 2
      registration-center/src/main/resources/application-dev.yml
  47. 0 210
      registration-center/src/test/java/com/huimv/center/CodeGenerator2.java
  48. 0 78
      registration-center/src/test/java/com/huimv/center/SggCodeGenerator.java
  49. 30 0
      registration-center/src/test/java/com/huimv/center/service/BizDeviceRegisterTest.java
  50. BIN
      registration-center/target/classes/META-INF/registration-center.kotlin_module
  51. 4 2
      registration-center/target/classes/application-dev.yml
  52. 9 9
      registration-center/target/classes/application.properties
  53. BIN
      registration-center/target/classes/com/huimv/center/HuimvRegistrationCenterApplication.class
  54. BIN
      registration-center/target/classes/com/huimv/center/config/MybatisConfig.class
  55. BIN
      registration-center/target/classes/com/huimv/center/config/MybatisPlusConfig.class
  56. BIN
      registration-center/target/classes/com/huimv/center/config/TopicRabbitMQConfig.class
  57. BIN
      registration-center/target/classes/com/huimv/center/controller/BizDeviceAnswerFlowController.class
  58. BIN
      registration-center/target/classes/com/huimv/center/controller/BizDeviceRegisteredFlowController.class
  59. BIN
      registration-center/target/classes/com/huimv/center/controller/BizDeviceUnregisteredController.class
  60. BIN
      registration-center/target/classes/com/huimv/center/controller/BizDeviceUnregisteredFlowController.class
  61. BIN
      registration-center/target/classes/com/huimv/center/listener/Listener.class
  62. BIN
      registration-center/target/classes/com/huimv/center/mapper/BizDeviceAnswerFlowMapper.class
  63. BIN
      registration-center/target/classes/com/huimv/center/mapper/BizDeviceRegisterMapper.class
  64. BIN
      registration-center/target/classes/com/huimv/center/mapper/BizDeviceRegisteredFlowMapper.class
  65. BIN
      registration-center/target/classes/com/huimv/center/mapper/BizDeviceUnregisteredFlowMapper.class
  66. BIN
      registration-center/target/classes/com/huimv/center/mapper/BizDeviceUnregisteredMapper.class
  67. 19 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceAnswerFlowMapper.xml
  68. 29 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceRegisterMapper.xml
  69. 19 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceRegisteredFlowMapper.xml
  70. 17 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceUnregisteredFlowMapper.xml
  71. 19 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceUnregisteredMapper.xml
  72. 20 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizFarmMapper.xml
  73. 19 0
      registration-center/target/classes/com/huimv/center/mapper/xml/BizTransferHistoryMapper.xml
  74. BIN
      registration-center/target/classes/com/huimv/center/pojo/BizDeviceAnswerFlow.class
  75. BIN
      registration-center/target/classes/com/huimv/center/pojo/BizDeviceRegister.class
  76. BIN
      registration-center/target/classes/com/huimv/center/pojo/BizDeviceRegisteredFlow.class
  77. BIN
      registration-center/target/classes/com/huimv/center/pojo/BizDeviceUnregistered.class
  78. BIN
      registration-center/target/classes/com/huimv/center/pojo/BizDeviceUnregisteredFlow.class
  79. BIN
      registration-center/target/classes/com/huimv/center/producer/Producer.class
  80. BIN
      registration-center/target/classes/com/huimv/center/result/RRException.class
  81. BIN
      registration-center/target/classes/com/huimv/center/server/RegisterServer$1.class
  82. BIN
      registration-center/target/classes/com/huimv/center/server/RegisterServer.class
  83. BIN
      registration-center/target/classes/com/huimv/center/server/RegisterServerHandler.class
  84. BIN
      registration-center/target/classes/com/huimv/center/service/BizDeviceAnswerFlowService.class
  85. BIN
      registration-center/target/classes/com/huimv/center/service/BizDeviceRegisterService.class
  86. BIN
      registration-center/target/classes/com/huimv/center/service/BizDeviceRegisteredFlowService.class
  87. BIN
      registration-center/target/classes/com/huimv/center/service/BizDeviceUnregisteredFlowService.class
  88. BIN
      registration-center/target/classes/com/huimv/center/service/BizDeviceUnregisteredService.class
  89. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizDeviceAnswerFlowServiceImpl.class
  90. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.class
  91. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizDeviceRegisteredFlowServiceImpl.class
  92. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizDeviceUnregisteredFlowServiceImpl.class
  93. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizDeviceUnregisteredServiceImpl.class
  94. BIN
      registration-center/target/classes/com/huimv/center/service/impl/BizFarmServiceImpl.class
  95. BIN
      registration-center/target/classes/com/huimv/center/utils/Const.class
  96. BIN
      registration-center/target/classes/com/huimv/center/utils/Constant$CloudService.class
  97. BIN
      registration-center/target/classes/com/huimv/center/utils/Constant$MenuType.class
  98. BIN
      registration-center/target/classes/com/huimv/center/utils/Constant$ScheduleStatus.class
  99. BIN
      registration-center/target/classes/com/huimv/center/utils/Constant.class
  100. 0 0
      registration-center/target/classes/com/huimv/center/utils/Query.class

+ 114 - 17
registration-center/pom.xml

@@ -74,26 +74,77 @@
             <artifactId>commons-lang3</artifactId>
             <version>3.7</version>
         </dependency>
+        <!-- 排除Tomcat容器 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <!-- 移除掉默认支持的 Tomcat -->
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- 添加 Undertow 容器 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- netty -->
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+            <version>4.1.45.Final</version>
+        </dependency>
+
+        <!--rabbitmq-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
 
         <!--Mybatis-Plus生成器依赖-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>
-<!--            <version>3.3.1.tmp</version>-->
+            <!--            <version>3.3.1.tmp</version>-->
             <version>3.3.2</version>
         </dependency>
+
         <!--freemarker 模板引擎(没有用原生的模板引擎)-->
         <dependency>
             <groupId>org.freemarker</groupId>
             <artifactId>freemarker</artifactId>
             <version>2.3.31</version>
         </dependency>
+
         <!--mybits-plus-->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>3.4.2</version>
+            <!--            <version>3.4.2</version>-->
+            <version>3.4.3.4</version>
         </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>com.baomidou</groupId>-->
+        <!--            <artifactId>mybatis-plus</artifactId>-->
+        <!--            <version>3.5.1</version>-->
+        <!--        </dependency>-->
+        <!-- mybatis-plus-extension -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+            <version>3.5.2</version>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.velocity</groupId>
             <artifactId>velocity-engine-core</artifactId>
@@ -132,23 +183,69 @@
                 </configuration>
             </plugin>
         </plugins>
+
+
+        <resources>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+
+
+        <!--        <resources>-->
+        <!--            <resource>-->
+        <!--                <directory>src/main/java</directory>-->
+        <!--                <includes>-->
+        <!--                    <include>**/*.xml</include>-->
+        <!--                </includes>-->
+        <!--            </resource>-->
+        <!--        </resources>-->
+
+        <!--        <resources>-->
+        <!--            <resource>-->
+        <!--                <directory>src/main/java</directory>-->
+        <!--                <includes>-->
+        <!--                    <include>**/*.xml</include>-->
+        <!--                </includes>-->
+        <!--                <filtering>true</filtering>-->
+        <!--            </resource>-->
+        <!--        </resources>-->
+
+
+        <!--        <resources>-->
+        <!--            <resource>-->
+        <!--                <directory>src/main/java</directory>-->
+        <!--                <includes>-->
+        <!--                    <include>**/*.properties</include>-->
+        <!--                    <include>**/*.xml</include>-->
+        <!--                </includes>-->
+        <!--                <filtering>false</filtering>-->
+        <!--            </resource>-->
+        <!--        </resources>-->
+
     </build>
 
 
-<!--    <build>-->
-<!--        <plugins>-->
-<!--            &lt;!&ndash;  &ndash;&gt;-->
-<!--            <plugin>-->
-<!--                <groupId>org.springframework.boot</groupId>-->
-<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
-<!--            </plugin>-->
-<!--            &lt;!&ndash;  &ndash;&gt;-->
-<!--            <plugin>-->
-<!--                <groupId>org.apache.maven.plugins</groupId>-->
-<!--                <artifactId>maven-resources-plugin</artifactId>-->
-<!--                <version>2.6</version>-->
-<!--            </plugin>-->
-<!--        </plugins>-->
-<!--    </build>-->
+    <!--    <build>-->
+    <!--        <plugins>-->
+    <!--            &lt;!&ndash;  &ndash;&gt;-->
+    <!--            <plugin>-->
+    <!--                <groupId>org.springframework.boot</groupId>-->
+    <!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
+    <!--            </plugin>-->
+    <!--            &lt;!&ndash;  &ndash;&gt;-->
+    <!--            <plugin>-->
+    <!--                <groupId>org.apache.maven.plugins</groupId>-->
+    <!--                <artifactId>maven-resources-plugin</artifactId>-->
+    <!--                <version>2.6</version>-->
+    <!--            </plugin>-->
+    <!--        </plugins>-->
+    <!--    </build>-->
 
 </project>

+ 33 - 12
registration-center/registration-center.iml

@@ -53,10 +53,6 @@
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.1" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.1" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.6.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.56" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.56" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.56" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.14" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.14" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.14" level="project" />
@@ -138,17 +134,42 @@
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
     <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.6.2" level="project" />
+    <orderEntry type="library" name="Maven: io.undertow:undertow-core:2.2.14.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.8.4.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.wildfly.common:wildfly-common:1.5.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.wildfly.client:wildfly-client-config:1.0.1.Final" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.xnio:xnio-nio:3.8.4.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.threads:jboss-threads:3.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.undertow:undertow-servlet:2.2.14.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.undertow:undertow-websockets-jsr:2.2.14.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.servlet:jakarta.servlet-api:4.0.4" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.websocket:jakarta.websocket-api:1.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.56" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-all:4.1.45.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-amqp:2.6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.3.14" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.amqp:spring-rabbit:2.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.amqp:spring-amqp:2.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:5.13.1" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.3.2" level="project" />
-    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.1" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.4" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.4" level="project" />
     <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
-    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.3.4" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.6.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.4" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.10" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.6.10" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.7" level="project" />
     <orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.0" level="project" />
     <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.32" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.6.2" level="project" />

+ 2 - 1
registration-center/src/main/java/com/huimv/center/HuimvRegistrationCenterApplication.java

@@ -1,5 +1,6 @@
 package com.huimv.center;
 
+import com.huimv.center.server.RegisterServer;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -21,6 +22,6 @@ public class HuimvRegistrationCenterApplication {
         //EartagServer
 //        applicationContext.getBean(EartagServer.class).start();
         //EartagServer2
-//        applicationContext.getBean(EartagServer2.class).run();
+        applicationContext.getBean(RegisterServer.class).run();
     }
 }

+ 0 - 30
registration-center/src/main/java/com/huimv/center/config/MybatisConfig.java

@@ -1,30 +0,0 @@
-package com.huimv.center.config;
-
-import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import com.baomidou.mybatisplus.annotation.DbType;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-@Configuration
-@EnableTransactionManagement
-@MapperScan("com.huimv.center.mapper")
-public class MybatisConfig {
-//    @Bean
-//    public MybatisPlusInterceptor mybatisPlusInterceptor() {
-//        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
-//        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
-//        return interceptor;
-//    }
-
-}

+ 25 - 16
registration-center/src/main/java/com/huimv/center/config/MybatisPlusConfig.java

@@ -1,12 +1,13 @@
 package com.huimv.center.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.PaginationInnerInterceptor;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
 /**
  * @Project : huimv.shiwan
@@ -19,20 +20,28 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 public class MybatisPlusConfig {
     /**
-     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     * 注册插件
      */
-//    @Bean
-//    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        // 添加分页插件
+        PaginationInnerInterceptor pageInterceptor = new PaginationInnerInterceptor();
+        // 设置请求的页面大于最大页后操作,true调回到首页,false继续请求。默认false
+        pageInterceptor.setOverflow(false);
+        // 单页分页条数限制,默认无限制
+        pageInterceptor.setMaxLimit(500L);
+        // 设置数据库类型
+        pageInterceptor.setDbType(DbType.MYSQL);
+
+        interceptor.addInnerInterceptor(pageInterceptor);
+        return interceptor;
+
 //        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
-//        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
-//        paginationInnerInterceptor.setDbType(DbType.MYSQL);
-//        paginationInnerInterceptor.setOverflow(true);
-//        interceptor.addInnerInterceptor(paginationInnerInterceptor);
+//        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
 //        return interceptor;
-//    }
 
-//    @Bean
-//    public ConfigurationCustomizer configurationCustomizer() {
-//        return configuration -> configuration.setUseDeprecatedExecutor(false);
-//    }
+
+    }
 }

+ 88 - 0
registration-center/src/main/java/com/huimv/center/config/TopicRabbitMQConfig.java

@@ -0,0 +1,88 @@
+package com.huimv.center.config;
+
+import com.huimv.center.utils.Const;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.core.TopicExchange;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Configuration
+public class TopicRabbitMQConfig {
+    // 已注册队列
+    @Bean
+    public Queue deviceRegisteredQueue() {
+        return new Queue(Const.QUEUE_DEVICE_REGISTERED);
+    }
+    // 已注册交换机
+    @Bean
+    TopicExchange deviceRegisteredExchange() {
+        return new TopicExchange(Const.EXCHANGE_DEVICE_REGISTERED);
+    }
+    // 已注册绑定关系
+    @Bean
+    Binding bindingRegisteredExchangeMessage() {
+        return BindingBuilder.bind(deviceRegisteredQueue()).to(deviceRegisteredExchange()).with(Const.ROUTING_KEY_DEVICE_REGISTERED);
+    }
+
+    // 未注册队列
+    @Bean
+    public Queue deviceUnregisteredQueue() {
+        return new Queue(Const.QUEUE_DEVICE_UNREGISTERED);
+    }
+    // 未注册交换机
+    @Bean
+    TopicExchange deviceUnregisteredExchange() {
+        return new TopicExchange(Const.EXCHANGE_DEVICE_UNREGISTERED);
+    }
+    // 未注册绑定关系
+    @Bean
+    Binding bindingUnregisteredExchangeMessage() {
+        return BindingBuilder.bind(deviceUnregisteredQueue()).to(deviceUnregisteredExchange()).with(Const.ROUTING_KEY_DEVICE_UNREGISTERED);
+    }
+
+    // 应答队列
+    @Bean
+    public Queue deviceAnswerQueue() {
+        return new Queue(Const.QUEUE_DEVICE_ANSWER);
+    }
+    // 应答交换机
+    @Bean
+    TopicExchange deviceAnswerExchange() {
+        return new TopicExchange(Const.EXCHANGE_DEVICE_ANSWER);
+    }
+    // 应答绑定关系
+    @Bean
+    Binding bindingAnswerExchangeMessage() {
+        return BindingBuilder.bind(deviceAnswerQueue()).to(deviceAnswerExchange()).with(Const.ROUTING_KEY_DEVICE_ANSWER);
+    }
+
+    // 同步注册设备信息队列
+    @Bean
+    public Queue syncDeviceQueue() {
+        return new Queue(Const.QUEUE_SYNC_DEVICE);
+    }
+    // 同步注册设备信息交换机
+    @Bean
+    TopicExchange syncDeviceExchange() {
+        return new TopicExchange(Const.EXCHANGE_SYNC_DEVICE);
+    }
+    // 同步注册设备信息绑定关系
+    @Bean
+    Binding bindingSyncDeviceExchangeMessage() {
+        return BindingBuilder.bind(syncDeviceQueue()).to(syncDeviceExchange()).with(Const.ROUTING_KEY_SYNC_DEVICE);
+    }
+
+
+}

+ 21 - 0
registration-center/src/main/java/com/huimv/center/controller/BizDeviceAnswerFlowController.java

@@ -0,0 +1,21 @@
+package com.huimv.center.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@RestController
+@RequestMapping("/biz-device-answer-flow")
+public class BizDeviceAnswerFlowController {
+
+}
+

+ 21 - 0
registration-center/src/main/java/com/huimv/center/controller/BizDeviceRegisteredFlowController.java

@@ -0,0 +1,21 @@
+package com.huimv.center.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@RestController
+@RequestMapping("/biz-device-registered-flow")
+public class BizDeviceRegisteredFlowController {
+
+}
+

+ 21 - 0
registration-center/src/main/java/com/huimv/center/controller/BizDeviceUnregisteredController.java

@@ -0,0 +1,21 @@
+package com.huimv.center.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@RestController
+@RequestMapping("/biz-device-unregistered")
+public class BizDeviceUnregisteredController {
+
+}
+

+ 21 - 0
registration-center/src/main/java/com/huimv/center/controller/BizDeviceUnregisteredFlowController.java

@@ -0,0 +1,21 @@
+package com.huimv.center.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@RestController
+@RequestMapping("/biz-device-unregistered-flow")
+public class BizDeviceUnregisteredFlowController {
+
+}
+

+ 129 - 0
registration-center/src/main/java/com/huimv/center/listener/Listener.java

@@ -0,0 +1,129 @@
+package com.huimv.center.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.center.utils.Const;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.Map;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class Listener {
+
+    /**
+     * @Method      : processDeviceRegisteredFlow
+     * @Description : 监听已注册设备
+     * @Params      : [RawMap]
+     * @Return      : void
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2022/6/22
+     * @Time        : 20:11
+     */
+    @RabbitListener(queues = Const.QUEUE_DEVICE_REGISTERED)
+    @RabbitHandler
+    public void processDeviceRegisteredFlow(Map RawMap) throws ParseException {
+        System.out.println("<<<<<<<<<<<<<<< RawMap>>"+RawMap.toString());
+        String askText = RawMap.get("deviceRegistered").toString();
+        String chipId = RawMap.get("chipId").toString();
+        String deviceCode = RawMap.get("deviceCode").toString();
+        System.out.println("<<<<<<<<<<<<<<<<<<<<<<< 处理注册设备 1 <<<<<<<<<<<<<<<<<<<<<<<");
+
+        // 添加设备注册信息
+        // 添加设备注册流水信息,并统计次数
+        //++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+        //本模块主要执行保存以下4类数据:(其他注册数据,在线数据,状态数据等都是由其他模块工程执行处理-process2模块工程)
+        //--保存原始流水数据(原始流水表)
+        //--保存设备心跳流水数据(设备心跳流水表)
+        //--保存设备环境流水数据(设备温度流水表)
+        //--保存耳标流水数据(耳标流水表)
+
+        //{处理请求报文}
+//        Map askMap = handleAskText(askText);
+//        String type = askMap.get("type").toString();
+//        JSONObject dataJo = (JSONObject) askMap.get("data");
+//        System.out.println("## dataJo>>"+dataJo);
+//        //
+//        String earmark = dataJo.getString("earmark");
+//        System.out.println("earmark>>"+earmark);
+
+
+        //测试代码(属于测试耳标才能进行测试)
+//        if(checkTestRange(earmark)){
+//            if(type.trim().equalsIgnoreCase("eartag")){
+//                //{处理耳标数据}
+//                eartagService.handleEartag(dataJo);
+//            }
+//        }else{
+//            System.out.println("## 已过滤非测试耳标");
+//        }
+
+//        //正式代码
+//        if(type.trim().equalsIgnoreCase("eartag")){
+//            System.out.println("askText>>"+askText);
+//            //{处理耳标数据}
+//            eartagService.handleEartag(dataJo);
+//        }
+    }
+
+    /**
+     * @Method      : processDeviceUnregisteredFlow
+     * @Description : 监听未注册设备
+     * @Params      : [RawMap]
+     * @Return      : void
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/6/22       
+     * @Time        : 20:13
+     */
+    @RabbitListener(queues = Const.QUEUE_DEVICE_UNREGISTERED)
+    @RabbitHandler
+    public void processDeviceUnregisteredFlow(Map RawMap) throws ParseException {
+        System.out.println("<<<<<<<<<<<<<<< RawMap>>"+RawMap.toString());
+        String askText = RawMap.get("deviceUnregistered").toString();
+        System.out.println("<<<<<<<<<<<<<<<<<<<<<<< 处理未注册设备 2 <<<<<<<<<<<<<<<<<<<<<<<");
+        // 添加非注册信息
+        // 添加非注册流水,并统计次数
+        // ++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+    }
+
+    /**
+     * @Method      : processDeviceAnswer
+     * @Description : 监听设备应答
+     * @Params      : [RawMap]
+     * @Return      : void
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2022/6/22
+     * @Time        : 20:15
+     */
+    @RabbitListener(queues = Const.QUEUE_DEVICE_ANSWER)
+    @RabbitHandler
+    public void processDeviceAnswer(Map RawMap) throws ParseException {
+        System.out.println("<<<<<<<<<<<<<<< RawMap>>"+RawMap.toString());
+        String askText = RawMap.get("deviceAnswer").toString();
+        String chipId = RawMap.get("chipId").toString();
+        System.out.println("<<<<<<<<<<<<<<<<<<<<<<< 处理应答 3 <<<<<<<<<<<<<<<<<<<<<<<");
+
+        // 添加应答信息流水信息
+        // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+    }
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/mapper/BizDeviceAnswerFlowMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.center.mapper;
+
+import com.huimv.center.pojo.BizDeviceAnswerFlow;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceAnswerFlowMapper extends BaseMapper<BizDeviceAnswerFlow> {
+
+}

+ 11 - 1
registration-center/src/main/java/com/huimv/center/mapper/BizDeviceRegisterMapper.java

@@ -1,7 +1,13 @@
 package com.huimv.center.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.center.pojo.BizDeviceRegister;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 /**
  * <p>
@@ -11,6 +17,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author zn
  * @since 2022-06-21
  */
-public interface BizDeviceRegisterMapper extends BaseMapper<BizDeviceRegister> {
+//@Mapper
 
+//@Repository
+public interface BizDeviceRegisterMapper extends BaseMapper<BizDeviceRegister> {
+    //
+    List<BizDeviceRegister> findPage(Page<BizDeviceRegister> page);
 }

+ 16 - 0
registration-center/src/main/java/com/huimv/center/mapper/BizDeviceRegisteredFlowMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.center.mapper;
+
+import com.huimv.center.pojo.BizDeviceRegisteredFlow;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceRegisteredFlowMapper extends BaseMapper<BizDeviceRegisteredFlow> {
+
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/mapper/BizDeviceUnregisteredFlowMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.center.mapper;
+
+import com.huimv.center.pojo.BizDeviceUnregisteredFlow;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceUnregisteredFlowMapper extends BaseMapper<BizDeviceUnregisteredFlow> {
+
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/mapper/BizDeviceUnregisteredMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.center.mapper;
+
+import com.huimv.center.pojo.BizDeviceUnregistered;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceUnregisteredMapper extends BaseMapper<BizDeviceUnregistered> {
+
+}

+ 19 - 0
registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceAnswerFlowMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceAnswerFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceAnswerFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="answer" property="answer" />
+        <result column="add_time" property="addTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, device_code, answer, add_time
+    </sql>
+
+</mapper>

+ 5 - 0
registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceRegisterMapper.xml

@@ -14,6 +14,7 @@
         <result column="first_time" property="firstTime" />
         <result column="last_time" property="lastTime" />
         <result column="remark" property="remark" />
+        <result column="times" property="ask_times" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -21,4 +22,8 @@
         id, chip_id, device_code, farm_code, register_date, server_ip, server_port, first_time, last_time, remark
     </sql>
 
+    <select id="findPage" resultType="com.huimv.center.pojo.BizDeviceRegister">
+        select * from biz_device_register
+    </select>
+
 </mapper>

+ 19 - 0
registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceRegisteredFlowMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceRegisteredFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceRegisteredFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="add_time" property="addTime" />
+        <result column="client_ip" property="clientIp" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, device_code, add_time, client_ip
+    </sql>
+
+</mapper>

+ 17 - 0
registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceUnregisteredFlowMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceUnregisteredFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceUnregisteredFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="add_time" property="addTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, add_time
+    </sql>
+
+</mapper>

+ 19 - 0
registration-center/src/main/java/com/huimv/center/mapper/xml/BizDeviceUnregisteredMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceUnregisteredMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceUnregistered">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="first_time" property="firstTime" />
+        <result column="last_time" property="lastTime" />
+        <result column="ask_times" property="askTimes" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, first_time, last_time, ask_times
+    </sql>
+
+</mapper>

+ 37 - 0
registration-center/src/main/java/com/huimv/center/pojo/BizDeviceAnswerFlow.java

@@ -0,0 +1,37 @@
+package com.huimv.center.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BizDeviceAnswerFlow implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String chipId;
+
+    private String deviceCode;
+
+    private String answer;
+
+    private Date addTime;
+
+
+}

+ 2 - 0
registration-center/src/main/java/com/huimv/center/pojo/BizDeviceRegister.java

@@ -45,5 +45,7 @@ public class BizDeviceRegister implements Serializable {
 
     private String remark;
 
+    private String ask_times;
+
 
 }

+ 37 - 0
registration-center/src/main/java/com/huimv/center/pojo/BizDeviceRegisteredFlow.java

@@ -0,0 +1,37 @@
+package com.huimv.center.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BizDeviceRegisteredFlow implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String chipId;
+
+    private String deviceCode;
+
+    private Date addTime;
+
+    private String clientIp;
+
+
+}

+ 37 - 0
registration-center/src/main/java/com/huimv/center/pojo/BizDeviceUnregistered.java

@@ -0,0 +1,37 @@
+package com.huimv.center.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BizDeviceUnregistered implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String chipId;
+
+    private Date firstTime;
+
+    private Date lastTime;
+
+    private Integer askTimes;
+
+
+}

+ 33 - 0
registration-center/src/main/java/com/huimv/center/pojo/BizDeviceUnregisteredFlow.java

@@ -0,0 +1,33 @@
+package com.huimv.center.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BizDeviceUnregisteredFlow implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String chipId;
+
+    private Date addTime;
+
+
+}

+ 60 - 0
registration-center/src/main/java/com/huimv/center/producer/Producer.java

@@ -0,0 +1,60 @@
+package com.huimv.center.producer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.center.utils.Const;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class Producer {
+    @Autowired
+    RabbitTemplate rabbitTemplate;  //使用RabbitTemplate,这提供了接收/发送等等方法
+
+    //发送已注册消息
+    public String sendDeviceRegistered(String idCode,String deviceCode, String registerText) {
+        Map map = new HashMap();
+        map.put("chipId",idCode);
+        map.put("deviceCode",deviceCode);
+        map.put("deviceRegistered",registerText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_DEVICE_REGISTERED, Const.ROUTING_KEY_DEVICE_REGISTERED, map);
+        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 发送设备已注册消息 >>"+registerText);
+        return "ok";
+    }
+
+    //发送未注册消息
+    public String sendDeviceUnregistered(String unregisterText) {
+        Map map = new HashMap();
+        map.put("deviceUnregistered",unregisterText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_DEVICE_UNREGISTERED, Const.ROUTING_KEY_DEVICE_UNREGISTERED, map);
+        System.out.println("--------------------------------------- 发送设备未注册消息 >>"+unregisterText);
+        return "ok";
+    }
+
+    // 发送应答消息
+    public String sendDeviceAnswer(String idCode, String answerText) {
+        Map map = new HashMap();
+        map.put("chipId",idCode);
+        map.put("deviceAnswer",answerText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_DEVICE_ANSWER, Const.ROUTING_KEY_DEVICE_ANSWER, map);
+        System.out.println("--------------------------------------- 发送设备应答消息 >>"+answerText);
+        return "ok";
+    }
+
+    // 同步注册信息
+
+
+}

+ 48 - 0
registration-center/src/main/java/com/huimv/center/result/RRException.java

@@ -0,0 +1,48 @@
+package com.huimv.center.result;
+
+public class RRException extends RuntimeException {
+	private static final long serialVersionUID = 1L;
+	
+    private String msg;
+    private int code = 500;
+    
+    public RRException(String msg) {
+		super(msg);
+		this.msg = msg;
+	}
+	
+	public RRException(String msg, Throwable e) {
+		super(msg, e);
+		this.msg = msg;
+	}
+	
+	public RRException(String msg, int code) {
+		super(msg);
+		this.msg = msg;
+		this.code = code;
+	}
+	
+	public RRException(String msg, int code, Throwable e) {
+		super(msg, e);
+		this.msg = msg;
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+	
+	
+}

+ 83 - 0
registration-center/src/main/java/com/huimv/center/server/RegisterServer.java

@@ -0,0 +1,83 @@
+package com.huimv.center.server;
+
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.ChannelOption;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class RegisterServer {
+    @Autowired
+    private RegisterServerHandler serverHandler;
+    //监听端口
+//    private int port = 8012;
+    private int port = 10023;
+    private int port2 = 8013;
+
+    //创建构造方法
+    public RegisterServer(){
+    }
+
+//    public static void main(String[] args) throws InterruptedException {
+//        new EartagServer2().run();
+//    }
+/**
+ *
+ * 功能描述: 启动方法前台多个服务  处理多个线程
+ *
+ * @param:
+ * @return:
+ * @auther: LiGang
+ * @date: 2019/3/26 11:31
+ */
+    /**
+     * 启动流程
+     */
+    public void run() throws InterruptedException {
+        //配置服务端线程组
+        EventLoopGroup bossGroup=new NioEventLoopGroup();
+        EventLoopGroup workGroup=new NioEventLoopGroup();
+
+        try{
+            //引导整个server的启动
+            ServerBootstrap serverBootstrap = new ServerBootstrap();
+            serverBootstrap.group(bossGroup,workGroup)
+                    .channel(NioServerSocketChannel.class)    //指定处理的连接类型
+                    .option(ChannelOption.SO_REUSEADDR, true) // 多端口监听
+                    .childHandler(new ChannelInitializer<SocketChannel>() {
+                        @Override
+                        protected void initChannel(SocketChannel socketChannel) throws Exception {
+                            socketChannel.pipeline().addLast(serverHandler);
+                        }
+                    });
+            System.out.println("# 耳标及采集器设备数据接收服务器已经启动...");
+            System.out.println("# 正在监听端口1:"+port);
+            System.out.println("# 正在监听端口2:"+port2);
+            System.out.println("# 准备接收数据:");
+            //绑定端口,同步等待成功
+            ChannelFuture cf = serverBootstrap.bind(port).sync();
+            ChannelFuture cf2 = serverBootstrap.bind(port2).sync();
+            // 等待服务端监听端口关闭
+            cf.channel().closeFuture().sync();
+            cf2.channel().closeFuture().sync();
+        }finally {
+            //优雅的退出
+            bossGroup.shutdownGracefully();
+            workGroup.shutdownGracefully();
+        }
+    }
+}

+ 262 - 0
registration-center/src/main/java/com/huimv/center/server/RegisterServerHandler.java

@@ -0,0 +1,262 @@
+package com.huimv.center.server;
+
+import com.alibaba.fastjson.JSONArray;
+import com.huimv.center.producer.Producer;
+import com.huimv.center.service.BizDeviceRegisterService;
+import com.huimv.center.utils.RegexUtil;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandler;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInboundHandlerAdapter;
+import io.netty.util.CharsetUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import io.netty.channel.ChannelHandlerContext;
+
+import java.net.InetSocketAddress;
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@ChannelHandler.Sharable
+@Component
+@Slf4j
+public class RegisterServerHandler extends ChannelInboundHandlerAdapter {
+    @Autowired
+    private RegexUtil regexUtil;
+    @Autowired
+    private BizDeviceRegisterService bizDeviceRegisterService;
+    @Autowired
+    private Producer producer;
+    //
+    private StringBuilder askTextSb = null;
+
+    //
+    public void appendClientAsk(String text) {
+        if (this.askTextSb == null) {
+            askTextSb = new StringBuilder();
+        }
+        askTextSb.append(text);
+    }
+
+    @Override
+    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+        ByteBuf data = (ByteBuf) msg;
+        String clientAskText = data.toString(CharsetUtil.UTF_8);
+        //保存实例内的客户端请求
+        appendClientAsk(clientAskText);
+
+        InetSocketAddress ipSocket = (InetSocketAddress)ctx.channel().remoteAddress();
+        String clientIp = ipSocket.getAddress().getHostAddress();
+        log.info("客户端ip地址:{}",clientIp);
+    }
+
+    @Override
+    public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
+        if (askTextSb.toString().indexOf("end") != -1) {
+            // 处理客户端消息(业务入口)
+            handleBusinessMessage(askTextSb.toString(), ctx);
+            //清空重置;
+            askTextSb.delete(0, askTextSb.length());
+        }
+    }
+
+    @Override
+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+        if (cause.getMessage().indexOf("Connection reset") != -1) {
+            log.info("相关采集器设备正在重启:" + cause.toString());
+        }
+//        cause.printStackTrace();
+        ctx.close();
+    }
+
+    /**
+     * @Method : handleBusinessMessage
+     * @Description : 处理业务消息
+     * @Params : [clientAskText, ctx]
+     * @Return : void
+     * @Author : ZhuoNing
+     * @Date : 2022/3/28
+     * @Time : 17:36
+     */
+    private void handleBusinessMessage(String clientAskText, ChannelHandlerContext ctx) throws ParseException {
+        clientAskText = clientAskText.replaceAll("\r", "").replaceAll("\n", "");
+        System.out.println("服务端开始接收数据 >>" + clientAskText);
+        // 计算+号数量
+        int countPlus = regexUtil.countPlus(clientAskText);
+        if (countPlus < 4) {
+            System.out.println("当前数据为不完整数据,故丢弃.>>" + clientAskText);
+        } else {
+            //{拆分粘包数据}
+            JSONArray askJa = getPerData(clientAskText);
+            for (int a = 0; a < askJa.size(); a++) {
+                String askText = askJa.getString(a);
+                //
+                handleCommandLine(askText, ctx);
+            }
+        }
+    }
+
+    /**
+     * @Method : handleCommandText
+     * @Description :处理命令文本
+     * @Params : [askText, ctx]
+     * @Return : void
+     * @Author : ZhuoNing
+     * @Date : 2022/3/23
+     * @Time : 18:08
+     */
+    private void handleCommandLine(String askText, ChannelHandlerContext ctx) throws ParseException {
+        String[] dataArray = askText.split("\\+");
+        String cmdHeader = dataArray[0];
+        //芯片id/设备编码
+        String idCode = dataArray[1];
+        String cmd = dataArray[2];
+//        Map map = new HashMap();
+//        map.put("askText", askText);
+        if (cmdHeader.trim().equalsIgnoreCase("hm")) {
+            //采集器应答数据
+            if (cmd.trim().equalsIgnoreCase("0")) {
+                //不需要处理
+                System.out.println("==>命令0");
+                Map resultMap = bizDeviceRegisterService.getServerAndIpByChipId(idCode);
+                System.out.println("获取服务器IP>>"+resultMap);
+                if(resultMap.size()>0){
+                    String deviceCode = resultMap.get("deviceCode").toString();
+                    // 发送设备已注册消息
+                    producer.sendDeviceRegistered(idCode,deviceCode,askText);
+                    String ip = resultMap.get("ip").toString();
+                    String port = resultMap.get("port").toString();
+                    String answer = "hm+0+0+"+ip+"+"+port+"+8+end";
+                    log.info(">>命令0设备编码-应答数据>>" + answer);
+                    ctx.writeAndFlush(Unpooled.copiedBuffer(answer.getBytes()));
+                    // 发送设备应答消息
+                    producer.sendDeviceAnswer(idCode,answer);
+                }else{
+                    // 发送设备未注册消息
+                    producer.sendDeviceUnregistered(askText);
+                }
+//            } else if (cmd.trim().equalsIgnoreCase("1")) {
+//                System.out.println("==>命令1请求 askText>>" + askText.trim());
+//                //处理获取设备编码命令
+//                //{读取设备编码}
+//                String deviceCode = dataService.getDeviceCodeByChipId(idCode);
+//                log.info("获取设备编码结果,芯片id>>" + idCode + " ,deviceCode>>" + deviceCode);
+//                if (deviceCode != null) {
+//                    String answer = "hm+1+0+" + deviceCode + "+123+8+end";
+//                    log.info(">>命令1设备编码-应答数据>>" + answer);
+//                    ctx.writeAndFlush(Unpooled.copiedBuffer(answer.getBytes()));
+//                } else {
+//                    log.error("检测到未注册的采集器设备,已舍弃请求.");
+//                }
+//            } else if (cmd.trim().equalsIgnoreCase("2")) {
+//                System.out.println("==>命令2请求 askText>>" + askText);
+//                if (dataService.isEffectiveDevice(idCode)) {
+//                    //处理服务器时间命令
+//                    String answer = "hm+2+" + dateUtil.getNowText() + "+4+end";
+//                    log.info(">>命令2服务器时间-应答数据>>" + answer);
+//                    ctx.writeAndFlush(Unpooled.copiedBuffer(answer.getBytes()));
+//                }else {
+//                    System.out.println("##获取服务器时间-无效设备编码 idCode=" + idCode);
+//                }
+//            } else if (cmd.trim().equalsIgnoreCase("3")) {
+//                System.out.println("==>命令3请求 askText>>" + askText);
+//                //处理心跳包命令
+//                //{设备心跳应答}
+//                if (dataService.isEffectiveDevice(idCode)) {
+//                    String answer = "hm+3+6+end";
+//                    log.info(">>命令3心跳包-应答数据>>" + answer);
+//                    ctx.writeAndFlush(Unpooled.copiedBuffer(answer.getBytes()));
+//
+//                    //{发送到设备处理消息队列}
+//                    dataService.sendDeviceMQ(map);
+//                    log.info(">>发送设备心跳数据消息到MQ."+map);
+//                } else {
+//                    System.out.println("##心跳包-无效设备编码(" + idCode+"),请求拒绝。");
+//                }
+//            } else if (cmd.trim().equalsIgnoreCase("4")) {
+//                System.out.println("==>命令4请求 askText>>" + askText);
+//                //处理设备环境温度命令
+//                //{设备环境温度应答}
+//                if (dataService.isEffectiveDevice(idCode)) {
+//                    String answer = "hm+4+7+end";
+//                    log.info(">>命令4环境温度-应答数据>>" + answer);
+//                    ctx.writeAndFlush(Unpooled.copiedBuffer(answer.getBytes()));
+//
+//                    //{发送到设备处理消息队列}
+//                    dataService.sendDeviceMQ(map);
+//                    log.info(">>发送设备环境温度数据消息到MQ."+map);
+//                } else {
+//                    System.out.println("##环境温度-无效设备编码(" + idCode+"),请求拒绝。");
+//                }
+            } else {
+                System.out.println("==>非法命令");
+                log.error(">>当前数据为非法数据>>" + askText);
+            }
+//        } else if (cmdHeader.trim().equalsIgnoreCase("zj")) {
+//            System.out.println("==>耳标命令请求 askText>>"+askText);
+//            //耳标应答数据(不需要应答)
+//            if (checkValidEarmark(cmd)) {
+//                log.error(">>舍弃掉未配置耳标号的耳标," + askText + "");
+//            } else {
+//                //{检查设备是否在处于工作状态或待机状态}
+////                if (dataService.isWorkStatusDevice(idCode)) {
+//                if (dataService.isEffectiveDevice(idCode)) {
+//                    //{发送到耳标处理消息队列}
+//                    dataService.sendEartagMQ(map);
+//                    log.info(">>发送耳标数据消息到MQ."+map);
+//                }else{
+//                    System.out.println("无效设备编码 idCode="+idCode);
+//                }
+//            }
+        } else {
+            System.out.println("==>非法命令");
+            log.error("##当前请求数据为非法数据>>" + askText);
+        }
+    }
+
+    //检查无效耳标
+    public boolean checkValidEarmark(String earmark) {
+        if (earmark.trim().equalsIgnoreCase("ffffffffffffffff") || earmark.trim().equalsIgnoreCase("0000000000000000")) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    //拆分粘包数据
+    public JSONArray getPerData(String text) {
+        String key = "end";
+        Pattern pattern = Pattern.compile(key);
+        Matcher matcher = pattern.matcher(text);
+        int count = 0;
+        while (matcher.find()) {
+            count++;
+        }
+        JSONArray dataJa = new JSONArray();
+        if (count == 1) {
+            dataJa.add(text);
+        } else {
+            for (int a = 0; a < count; a++) {
+                int p1 = text.indexOf("end");
+                dataJa.add(text.substring(0, p1 + 3));
+                text = text.substring(p1 + 3, text.length());
+            }
+        }
+        return dataJa;
+    }
+
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/service/BizDeviceAnswerFlowService.java

@@ -0,0 +1,16 @@
+package com.huimv.center.service;
+
+import com.huimv.center.pojo.BizDeviceAnswerFlow;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceAnswerFlowService extends IService<BizDeviceAnswerFlow> {
+
+}

+ 4 - 1
registration-center/src/main/java/com/huimv/center/service/BizDeviceRegisterService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.eartag2.common.utils.Result;
 
 import java.text.ParseException;
+import java.util.Map;
 
 /**
  * <p>
@@ -22,5 +23,7 @@ public interface BizDeviceRegisterService extends IService<BizDeviceRegister> {
 
     Result remove(String ids);
 
-    Result listAll();
+    Result listAll(Integer pageNo,Integer pageSize);
+
+    Map getServerAndIpByChipId(String idCode);
 }

+ 16 - 0
registration-center/src/main/java/com/huimv/center/service/BizDeviceRegisteredFlowService.java

@@ -0,0 +1,16 @@
+package com.huimv.center.service;
+
+import com.huimv.center.pojo.BizDeviceRegisteredFlow;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceRegisteredFlowService extends IService<BizDeviceRegisteredFlow> {
+
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/service/BizDeviceUnregisteredFlowService.java

@@ -0,0 +1,16 @@
+package com.huimv.center.service;
+
+import com.huimv.center.pojo.BizDeviceUnregisteredFlow;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceUnregisteredFlowService extends IService<BizDeviceUnregisteredFlow> {
+
+}

+ 16 - 0
registration-center/src/main/java/com/huimv/center/service/BizDeviceUnregisteredService.java

@@ -0,0 +1,16 @@
+package com.huimv.center.service;
+
+import com.huimv.center.pojo.BizDeviceUnregistered;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+public interface BizDeviceUnregisteredService extends IService<BizDeviceUnregistered> {
+
+}

+ 20 - 0
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceAnswerFlowServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.center.service.impl;
+
+import com.huimv.center.pojo.BizDeviceAnswerFlow;
+import com.huimv.center.mapper.BizDeviceAnswerFlowMapper;
+import com.huimv.center.service.BizDeviceAnswerFlowService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Service
+public class BizDeviceAnswerFlowServiceImpl extends ServiceImpl<BizDeviceAnswerFlowMapper, BizDeviceAnswerFlow> implements BizDeviceAnswerFlowService {
+
+}

+ 66 - 19
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.java

@@ -1,5 +1,8 @@
 package com.huimv.center.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.center.mapper.BizDeviceRegisterMapper;
 import com.huimv.center.pojo.BizDeviceRegister;
@@ -12,6 +15,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.text.ParseException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -24,7 +30,7 @@ import java.text.ParseException;
 @Service
 public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterMapper, BizDeviceRegister> implements BizDeviceRegisterService {
     @Autowired
-    private BizDeviceRegisterMapper BizDeviceRegisterMapper;
+    private BizDeviceRegisterMapper bizDeviceRegisterMapper;
     @Autowired
     private com.huimv.center.utils.ResultUtil ResultUtil;
     @Autowired
@@ -33,41 +39,82 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
     private IDUtil idUtil;
 
     @Override
-    public Result add(String chip_id, String device_code, String register_date, String server_ip, String server_port, String remark) throws ParseException {
+    public Result add(String chipId, String deviceCode, String registerDate, String serverIp, String serverPort, String remark) throws ParseException {
         BizDeviceRegister deviceRegister = new BizDeviceRegister();
-        deviceRegister.setChipId(chip_id);
-        deviceRegister.setDeviceCode(device_code);
-        deviceRegister.setRegisterDate(dateUtil.dateTextToTimestamp(register_date));
-        deviceRegister.setServerIp(server_ip);
-        deviceRegister.setServerPort(server_port);
+        deviceRegister.setChipId(chipId);
+        deviceRegister.setDeviceCode(deviceCode);
+        deviceRegister.setRegisterDate(dateUtil.dateTextToTimestamp(registerDate));
+        deviceRegister.setServerIp(serverIp);
+        deviceRegister.setServerPort(serverPort);
         deviceRegister.setRemark(remark);
-        int rows = BizDeviceRegisterMapper.insert(deviceRegister);
+        int rows = bizDeviceRegisterMapper.insert(deviceRegister);
         return ResultUtil.result(rows);
     }
 
     @Override
-    public Result edit(Integer id, String chip_id, String device_code, String register_date, String server_ip, String server_port, String remark) throws ParseException {
-        BizDeviceRegister deviceRegister = BizDeviceRegisterMapper.selectById(id);
-        deviceRegister.setChipId(chip_id);
-        deviceRegister.setDeviceCode(device_code);
-        deviceRegister.setRegisterDate(dateUtil.dateTextToTimestamp(register_date));
-        deviceRegister.setServerIp(server_ip);
-        deviceRegister.setServerPort(server_port);
+    public Result edit(Integer id, String chipId, String deviceCode, String registerDate, String serverIp, String serverPort, String remark) throws ParseException {
+        BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectById(id);
+        deviceRegister.setChipId(chipId);
+        deviceRegister.setDeviceCode(deviceCode);
+        deviceRegister.setRegisterDate(dateUtil.dateTextToTimestamp(registerDate));
+        deviceRegister.setServerIp(serverIp);
+        deviceRegister.setServerPort(serverPort);
         deviceRegister.setRemark(remark);
-        int rows = BizDeviceRegisterMapper.updateById(deviceRegister);
+        int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
         return ResultUtil.result(rows);
     }
 
     @Override
     public Result remove(String ids){
-        int rows = BizDeviceRegisterMapper.deleteBatchIds(idUtil.convert(ids));
+        int rows = bizDeviceRegisterMapper.deleteBatchIds(idUtil.convert(ids));
         return ResultUtil.result(rows);
     }
 
     @Override
-    public Result listAll(){
+    public Result listAll(Integer pageNo,Integer pageSize){
+        if(pageNo == 0){
+            pageNo = 1;
+        }
         // 分页显示
+//        QueryWrapper queryyWapper = new QueryWrapper<>();
+//        queryyWapper.eq("number","008");
+//        // 两个参数:current的值默认是1,从1开始,不是0。size是每一页的条数。
+//        Page<BizDeviceRegister> page = new Page<>(1, 4);
+//        Page<BizDeviceRegister> userPage = userdao.selectPage(page, queryyWapper);
+//        userPage.getRecords().forEach(System.out::println);
 
-        return new Result(ResultCode.SUCCESS);
+        Page<BizDeviceRegister> page = new Page<>(pageNo, pageSize);
+        List<BizDeviceRegister> pageDeviceRegisterList = bizDeviceRegisterMapper.findPage(page);
+        page.setRecords(pageDeviceRegisterList);
+//        page.setRecords(pageDeviceRegisterList).getRecords().forEach(System.out::println);
+        System.out.println("page>>"+page.toString());
+
+//        Page<BizDeviceRegister> page = new Page<>(1, 10);
+//        QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.eq("remark", "备注");
+//        Page<BizDeviceRegister> page1 = bizDeviceRegisterMapper.selectPage(page, queryWrapper);
+//        page.setRecords(page1.getRecords()).getRecords().forEach(System.out::println);
+
+        return new Result(ResultCode.SUCCESS,page);
+    }
+
+    @Override
+    public Map getServerAndIpByChipId(String idCode) {
+        QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("chip_id", idCode);
+        queryWrapper.orderByDesc("id");
+        queryWrapper.last("LIMIT 1");
+//        BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
+//        System.out.println("deviceRegister>>"+deviceRegister.toString());
+        List<BizDeviceRegister> deviceRegisterList = bizDeviceRegisterMapper.selectList(queryWrapper);
+        Map resultMap = new HashMap();
+        if(deviceRegisterList.size() > 0){
+            BizDeviceRegister deviceRegister = deviceRegisterList.get(0);
+            System.out.println("deviceRegister>>"+deviceRegister);
+            resultMap.put("ip",deviceRegister.getServerIp());
+            resultMap.put("port",deviceRegister.getServerPort());
+            resultMap.put("deviceCode",deviceRegister.getDeviceCode());
+        }
+        return resultMap;
     }
 }

+ 20 - 0
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisteredFlowServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.center.service.impl;
+
+import com.huimv.center.pojo.BizDeviceRegisteredFlow;
+import com.huimv.center.mapper.BizDeviceRegisteredFlowMapper;
+import com.huimv.center.service.BizDeviceRegisteredFlowService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Service
+public class BizDeviceRegisteredFlowServiceImpl extends ServiceImpl<BizDeviceRegisteredFlowMapper, BizDeviceRegisteredFlow> implements BizDeviceRegisteredFlowService {
+
+}

+ 20 - 0
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceUnregisteredFlowServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.center.service.impl;
+
+import com.huimv.center.pojo.BizDeviceUnregisteredFlow;
+import com.huimv.center.mapper.BizDeviceUnregisteredFlowMapper;
+import com.huimv.center.service.BizDeviceUnregisteredFlowService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Service
+public class BizDeviceUnregisteredFlowServiceImpl extends ServiceImpl<BizDeviceUnregisteredFlowMapper, BizDeviceUnregisteredFlow> implements BizDeviceUnregisteredFlowService {
+
+}

+ 20 - 0
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceUnregisteredServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.center.service.impl;
+
+import com.huimv.center.pojo.BizDeviceUnregistered;
+import com.huimv.center.mapper.BizDeviceUnregisteredMapper;
+import com.huimv.center.service.BizDeviceUnregisteredService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-06-22
+ */
+@Service
+public class BizDeviceUnregisteredServiceImpl extends ServiceImpl<BizDeviceUnregisteredMapper, BizDeviceUnregistered> implements BizDeviceUnregisteredService {
+
+}

+ 32 - 0
registration-center/src/main/java/com/huimv/center/utils/Const.java

@@ -0,0 +1,32 @@
+package com.huimv.center.utils;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+public class Const {
+    // 已注册队列、交换机、绑定关系
+    public final static String QUEUE_DEVICE_REGISTERED = "topic.deviceRegistered.queue";
+    public final static String EXCHANGE_DEVICE_REGISTERED = "topic.deviceRegistered.exchange";
+    public final static String ROUTING_KEY_DEVICE_REGISTERED = "topic.deviceRegistered.routeKey";
+
+    // 未注册队列、交换机、绑定关系
+    public final static String QUEUE_DEVICE_UNREGISTERED = "topic.deviceUnregistered.queue";
+    public final static String EXCHANGE_DEVICE_UNREGISTERED = "topic.deviceUnregistered.exchange";
+    public final static String ROUTING_KEY_DEVICE_UNREGISTERED = "topic.deviceUnregistered.routeKey";
+
+    // 应答队列、交换机、绑定关系
+    public final static String QUEUE_DEVICE_ANSWER = "topic.deviceAnswer.queue";
+    public final static String EXCHANGE_DEVICE_ANSWER = "topic.deviceAnswer.exchange";
+    public final static String ROUTING_KEY_DEVICE_ANSWER = "topic.deviceAnswer.routeKey";
+
+    // 同步注册设备信息
+    public final static String QUEUE_SYNC_DEVICE = "topic.syncDevice.queue";
+    public final static String EXCHANGE_SYNC_DEVICE = "topic.syncDevice.exchange";
+    public final static String ROUTING_KEY_SYNC_DEVICE = "topic.syncDevice.routeKey";
+
+}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 131 - 0
registration-center/src/main/java/com/huimv/center/utils/Constant.java


+ 84 - 0
registration-center/src/main/java/com/huimv/center/utils/Query.java

@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.huimv.center.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Map;
+
+/**
+ * 查询参数
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class Query<T> {
+
+    public IPage<T> getPage(Map<String, Object> params) {
+        return this.getPage(params, null, false);
+    }
+
+    public IPage<T> getPageEartag(Map<String, Object> params) {
+        return this.getPage(params, "id", true);
+    }
+
+    public IPage<T> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {
+        //分页参数
+        long curPage = 1;
+        long limit = 10;
+
+        System.out.println("fenye"+params.get("page"));
+        System.out.println("fenyesize"+params.get("limit"));
+
+        if(params.get(Constant.PAGE) != null){
+            curPage = Long.parseLong((String)params.get(Constant.PAGE));
+        }
+        if(params.get(Constant.LIMIT) != null){
+            limit = Long.parseLong((String)params.get(Constant.LIMIT));
+        }
+
+
+        //分页对象
+       Page<T> page = new Page<>(curPage, limit);
+
+        //分页参数
+     //   params.put(Constant.PAGE, page);
+
+        //排序字段
+        //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)
+        String orderField = SQLFilter.sqlInject((String)params.get(Constant.ORDER_FIELD));
+        String order = (String)params.get(Constant.ORDER);
+
+
+        //前端字段排序
+        if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){
+            if(Constant.ASC.equalsIgnoreCase(order)) {
+                return  page.addOrder(OrderItem.asc(orderField));
+            }else {
+                return page.addOrder(OrderItem.desc(orderField));
+            }
+        }
+
+        //没有排序字段,则不排序
+        if(StringUtils.isBlank(defaultOrderField)){
+            return page;
+        }
+
+        //默认排序
+        if(isAsc) {
+            page.addOrder(OrderItem.asc(defaultOrderField));
+        }else {
+            page.addOrder(OrderItem.desc(defaultOrderField));
+        }
+
+        return page;
+    }
+}

+ 31 - 0
registration-center/src/main/java/com/huimv/center/utils/RegexUtil.java

@@ -0,0 +1,31 @@
+package com.huimv.center.utils;
+
+import org.springframework.stereotype.Component;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class RegexUtil {
+
+    //计算+出现的次数
+    public int countPlus(String str) {//创建countSpace方法用于统计文本的空格个数
+        int count = 0;//创建一个返回值count
+//        Pattern p = Pattern.compile("\\s");//将给定的正则表达式编译并赋予给Pattern类
+        Pattern p = Pattern.compile("\\+");//将给定的正则表达式编译并赋予给Pattern类
+        Matcher m = p.matcher(str);//生成一个给定命名的Matcher对象
+        while(m.find()){//查找类似于Matcher对象的字符
+            count++;//count自加作为标记
+        }
+        return count;//返回count值
+    }
+
+}

+ 51 - 0
registration-center/src/main/java/com/huimv/center/utils/SQLFilter.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.huimv.center.utils;
+
+
+import com.huimv.center.result.RRException;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * SQL过滤
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class SQLFilter {
+
+    /**
+     * SQL注入过滤
+     * @param str  待验证的字符串
+     */
+    public static String sqlInject(String str){
+        if(StringUtils.isBlank(str)){
+            return null;
+        }
+        //去掉'|"|;|\字符
+        str = StringUtils.replace(str, "'", "");
+        str = StringUtils.replace(str, "\"", "");
+        str = StringUtils.replace(str, ";", "");
+        str = StringUtils.replace(str, "\\", "");
+
+        //转换成小写
+        str = str.toLowerCase();
+
+        //非法字符
+        String[] keywords = {"master", "truncate", "insert", "select", "delete", "update", "declare", "alter", "drop"};
+
+        //判断是否包含非法字符
+        for(String keyword : keywords){
+            if(str.indexOf(keyword) != -1){
+                throw new RRException("包含非法字符");
+            }
+        }
+
+        return str;
+    }
+}

+ 4 - 2
registration-center/src/main/resources/application-dev.yml

@@ -85,7 +85,7 @@ spring:
     username: admin
     password: admin
     #虚拟host 可以不设置,使用server默认host
-    virtual-host: /
+    virtual-host: /registration_center
     listener:
       simple:
         acknowledge-mode: none
@@ -106,4 +106,6 @@ spring:
 
 mybatis-plus:
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  # mapper.xml文件所存放的位置
+  mapper-locations: classpath*:com/huimv/center/mapper/xml/*.xml  # 不加这一行出错:“org.apache.ibatis.binding.BindingException:  Invalid bound statement (not found)”

+ 0 - 210
registration-center/src/test/java/com/huimv/center/CodeGenerator2.java

@@ -1,210 +0,0 @@
-package com.huimv.center;
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.InjectionConfig;
-import com.baomidou.mybatisplus.generator.config.*;
-import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
-import com.baomidou.mybatisplus.generator.config.po.TableField;
-import com.baomidou.mybatisplus.generator.config.po.TableFill;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
-import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
-import com.baomidou.mybatisplus.generator.config.rules.DateType;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine;
-//import com.sun.javafx.scene.shape.PathUtils;
-//import org.beetl.core.Configuration;
-//import org.beetl.core.GroupTemplate;
-//import org.beetl.core.Template;
-//import org.beetl.core.resource.FileResourceLoader;
-
-import java.io.File;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-public class CodeGenerator2 {
-
-    public static void main(String[] args) {
-
-        /*
-            全局配置
-        */
-        String projectPath = System.getProperty("user.dir");
-        GlobalConfig gc = new GlobalConfig();
-        gc.setOutputDir(projectPath + "/src/main/java") // 生成路径
-                .setAuthor("zn")                     // 设置作者
-                .setOpen(false)                         // 文件生成完成后是否用打开相应的生成路径
-                .setFileOverride(true)                  // 是否覆盖已有文件
-                .setIdType(IdType.ID_WORKER)                 // 主键策略
-                .setEnableCache(true)                   // 是否开启二级缓存,默认false
-                .setKotlin(false)                       // 开启 Kotlin 模式,默认false
-                .setSwagger2(false)                     // 开启 swagger2 模式,默认false
-//                .setActiveRecord(false)                 // 开启 ActiveRecord 模式
-//                .setActiveRecord(true)                // AR模式,就是bean有增删改查方法,继承自Model类
-                .setDateType(DateType.ONLY_DATE)        // 时间类型对应策略
-//                .setDateType()
-                .setEntityName("%sBean")              // 实体命名方式
-                .setMapperName("%sMapper")              // mapper 命名方式
-                .setXmlName("%sMapper")              // Mapper xml 命名方式
-                .setServiceName("%sService")           // 设置生成的service接口的名字的首字母是否为I
-                .setServiceImplName("%sServiceImp")                   //service impl 命名方式
-                .setControllerName("%sController")
-                .setBaseResultMap(true)                 // 是否要有映射ResultMap
-                .setBaseColumnList(true);               // 是否要有基础的列
-
-        /*
-
-        数据源配置
-
-        */
-        MySqlQuery mySqlQuery = new MySqlQuery() {
-            @Override
-            public String[] fieldCustom() {
-                return new String[]{"Default"};
-            }
-        };
-
-//        String[] strings = mySqlQuery.fieldCustom();
-
-        DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://192.168.1.7:3306/huimv_registration_center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai")
-                .setDbType(DbType.MYSQL)     //设置数据库类型[必须属性]
-                .setDriverName("com.mysql.cj.jdbc.Driver")
-                .setDbQuery(mySqlQuery)  //
-                .setUsername("root")
-//                .setTypeConvert((globalConfig, fieldType) -> null) // 自定义映射属性
-                .setPassword("hm123456");
-
-
-        /*
-
-        策略配置 数据表配置
-
-        */
-        StrategyConfig strategy = new StrategyConfig();
-        strategy.setCapitalMode(true)           //全局大写命名
-                .setSkipView(true)              // 是否跳过视图
-                .setLogicDeleteFieldName("deleted") // 添加逻辑删除列
-//                .setVersionFieldName("version1")    // 添加版本号充当乐观锁
-                .setEntitySerialVersionUID(false)   //  实体是否生成 serialVersionUID,默认为true
-                .setControllerMappingHyphenStyle(true) //驼峰转连字符,比如:/userEntity -> /user-entity
-                .setEntityBuilderModel(true)               // 点进去有介绍
-                .setEntityColumnConstant(true)          // 点进去有介绍
-//                NamingStrategy.no_change
-                .setNaming(NamingStrategy.underline_to_camel)   // 数据库表映射到实例命名,下划线到驼峰
-                .setNameConvert(new INameConvert() {
-
-                    @Override
-                    public String entityNameConvert(TableInfo tableInfo) {
-                        System.out.println(tableInfo.getName());
-                        return tableInfo.getName();
-                    }
-
-                    @Override
-                    public String propertyNameConvert(TableField field) {
-                        System.out.println(field.getName());
-                        return field.getName();
-                    }
-                }) // 名称转换接口
-                .setColumnNaming(NamingStrategy.underline_to_camel)  // 数据库表中的字段映射到实例命名,下划线到驼峰
-//                .setTablePrefix("kk")                 // 设置要生成代码的数据表前缀
-//                .setFieldPrefix("kk")                 // 设置要生成代码的数据表中字段前缀
-                .setInclude("wt_.+")                     // 设置要包含的表
-//                .setTableFillList(Arrays.asList(new TableFill("id", FieldFill.INSERT))) //属性填充
-//                .setColumnNaming()
-//                .setExclude()                         // 与包含二选一,排除那些表,两个都允许正则表达式
-//                .setSuperEntityClass() //设置实体类要继承的超类
-//                .setSuperEntityColumns()      // 自定义基础的Entity类,公共字段
-//                .setSuperMapperClass()        //  自定义继承的Mapper类全称,带包名
-                .setEntityLombokModel(true) // 设置生成的实体类是Lombok模式
-                .setRestControllerStyle(true);  //
-
-
-        /*
-
-        包配置
-
-        */
-        PackageConfig pc = new PackageConfig();
-
-//        pathInfo = new HashMap<>(6);
-//        setPathInfo(pathInfo, template.getEntity(getGlobalConfig().isKotlin()), outputDir, ConstVal.ENTITY_PATH, ConstVal.ENTITY);
-//        setPathInfo(pathInfo, template.getMapper(), outputDir, ConstVal.MAPPER_PATH, ConstVal.MAPPER);
-//        setPathInfo(pathInfo, template.getXml(), outputDir, ConstVal.XML_PATH, ConstVal.XML);
-//        setPathInfo(pathInfo, template.getService(), outputDir, ConstVal.SERVICE_PATH, ConstVal.SERVICE);
-//        setPathInfo(pathInfo, template.getServiceImpl(), outputDir, ConstVal.SERVICE_IMPL_PATH, ConstVal.SERVICE_IMPL);
-//        setPathInfo(pathInfo, template.getController(), outputDir, ConstVal.CONTROLLER_PATH, ConstVal.CONTROLLER);
-
-        pc.setParent("top.itreatment")    // 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
-                .setMapper("mapper")      // 设置mapper输出的位置
-                .setXml("mapper.xml")     // 设置mapper对应的xml输出的位置
-//                .setModuleName("bc")      // 父设置模块名
-//                .setPathInfo()           // 路径配置信息,就是配置各个文件模板的路径信息
-                .setService("service")    // 设置service输出的位置
-                .setController("controller") // 设置controller输出的位置
-                .setServiceImpl("service.impl") // 设置serviceImpl输出的位置
-                .setModuleName("bc")
-                .setEntity("beans");        // 设置beans输出的位置
-
-      /*
-          自定义配置,少了这一步会出现空指针异常,在下面这个方法的返回时,出现空指针
-           com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.getObjectMap
-      */
-        InjectionConfig cfg = new InjectionConfig() {
-            @Override
-            public void initMap() {
-                Map<String, Object> map = new HashMap<>();
-                map.put("name", "zjb");
-                map.put("age", 24);
-                map.put("sex", "男");
-                setMap(map);
-            }
-        };
-
-//        cfg.setFileOutConfigList(Collections.singletonList(new FileOutConfig("entity.java.btl") {
-//
-//            @Override
-//            public String outputFile(TableInfo tableInfo) {
-//                return System.getProperty("user.home") + File.separator + "desktop" + File.separator + "123.txt";
-//            }
-//        }));
-//        cfg.setFileCreate()       自定义判断是否创建文件
-
-
-         /*
-
-            代码生成器,将前面的初始化工作进行处理
-
-         */
-        AutoGenerator mpg = new AutoGenerator();
-//        全局配置
-        mpg.setGlobalConfig(gc);
-//        数据源配置
-        mpg.setDataSource(dsc);
-//        策略配置
-        mpg.setStrategy(strategy);
-//        包配置
-        mpg.setPackageInfo(pc);
-//        自定义配置
-        mpg.setCfg(cfg);
-//        设置使用Beetl模板引擎
-        BeetlTemplateEngine beetlTemplateEngine = new BeetlTemplateEngine();
-        mpg.setTemplateEngine(beetlTemplateEngine);
-//        执行
-        mpg.execute();
-    }
-}

+ 0 - 78
registration-center/src/test/java/com/huimv/center/SggCodeGenerator.java

@@ -1,78 +0,0 @@
-package com.huimv.center;
-
-import com.baomidou.mybatisplus.annotation.DbType;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
-import com.baomidou.mybatisplus.generator.config.GlobalConfig;
-import com.baomidou.mybatisplus.generator.config.PackageConfig;
-import com.baomidou.mybatisplus.generator.config.StrategyConfig;
-import com.baomidou.mybatisplus.generator.config.rules.DateType;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-
-/**
- * @Project : huimv.shiwan
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
-public class SggCodeGenerator {
-
-    public static void main(String[] args) {
-
-        // 1、创建代码生成器
-        AutoGenerator mpg = new AutoGenerator();
-
-        // 2、全局配置
-        GlobalConfig gc = new GlobalConfig();
-        String projectPath = System.getProperty("user.dir");
-        gc.setOutputDir(projectPath + "/src/main/java");
-        gc.setAuthor("zn");
-        gc.setOpen(false); //生成后是否打开资源管理器
-        gc.setFileOverride(false); //重新生成时文件是否覆盖
-        gc.setServiceName("%sService"); //去掉Service接口的首字母I
-        gc.setIdType(IdType.ID_WORKER_STR); //主键策略
-        gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
-        gc.setSwagger2(false);//开启Swagger2模式
-
-        mpg.setGlobalConfig(gc);
-
-        // 3、数据源配置
-        DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://192.168.1.7:3306/huimv_registration_center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai");
-        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
-        dsc.setUsername("root");
-        dsc.setPassword("hm123456");
-        dsc.setDbType(DbType.MYSQL);
-        mpg.setDataSource(dsc);
-
-        // 4、包配置
-        PackageConfig pc = new PackageConfig();
-        pc.setModuleName(null); //模块名
-        pc.setParent("com.huimv.center");
-        pc.setController("controller");
-        pc.setEntity("entity");
-        pc.setService("service");
-        pc.setMapper("mapper");
-        mpg.setPackageInfo(pc);
-
-        // 5、策略配置
-        StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("user");//对那一张表生成代码
-        strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
-        strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
-
-        strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
-        strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
-
-        strategy.setRestControllerStyle(true); //restful api风格控制器
-        strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
-
-        mpg.setStrategy(strategy);
-
-        // 6、执行
-        mpg.execute();
-    }
-}

+ 30 - 0
registration-center/src/test/java/com/huimv/center/service/BizDeviceRegisterTest.java

@@ -1,6 +1,7 @@
 package com.huimv.center.service;
 
 import com.huimv.center.utils.DateUtil;
+import com.huimv.eartag2.common.utils.Result;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,9 @@ import java.text.SimpleDateFormat;
 public class BizDeviceRegisterTest {
     @Autowired
     private DateUtil dateUtil;
+    @Autowired
+    private  BizDeviceRegisterService bizDeviceRegisterService;
+
     @Test
     public void testDate1() throws ParseException {
         String date = "2022-06-21 11:30:05";
@@ -34,5 +38,31 @@ public class BizDeviceRegisterTest {
         System.out.println("ts="+ts.toString());
     }
 
+    @Test
+    public void testListAll(){
+        Integer pageNo =1 ;
+        Integer pageSize = 10;
+        bizDeviceRegisterService.listAll(pageNo,pageSize);
+    }
+
+    @Test
+    public void testAdd() throws ParseException {
+        String chipId = "bbbbbbbbbbbb";
+        String deviceCode = "hz001b";
+        String registerDate = "2022-06-21 21:12:05";
+        String serverIp = "192.168.1.5";
+        String serverPort = "10023";
+        String remark = "备注";
+        Result result = bizDeviceRegisterService.add( chipId,  deviceCode,  registerDate,  serverIp,  serverPort,  remark);
+        System.out.println("result>>"+result);
+    }
+
+    @Test
+    public void testGetServerAndIpByChipId(){
+        String chipId = "123";
+        bizDeviceRegisterService.getServerAndIpByChipId(chipId);
+
+    }
+
 
 }

BIN
registration-center/target/classes/META-INF/registration-center.kotlin_module


+ 4 - 2
registration-center/target/classes/application-dev.yml

@@ -85,7 +85,7 @@ spring:
     username: admin
     password: admin
     #虚拟host 可以不设置,使用server默认host
-    virtual-host: /
+    virtual-host: /registration_center
     listener:
       simple:
         acknowledge-mode: none
@@ -106,4 +106,6 @@ spring:
 
 mybatis-plus:
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  # mapper.xml文件所存放的位置
+  mapper-locations: classpath*:com/huimv/center/mapper/xml/*.xml  # 不加这一行出错:“org.apache.ibatis.binding.BindingException:  Invalid bound statement (not found)”

+ 9 - 9
registration-center/target/classes/application.properties

@@ -1,20 +1,20 @@
 spring.profiles.active=dev
 
-#�����������
+#开启健康监控
 management.endpoints.web.exposure.include=*
 
 #########################################################
-###             锟斤拷锟斤拷undertow取锟斤拷tomcat                ###
+###             配置undertow取代tomcat                ###
 #########################################################
-# �Ƿ�� undertow ��־��Ĭ��Ϊ false
+# 是否打开 undertow 日志,默认为 false
 server.undertow.accesslog.enabled=false
-# 锟斤拷锟矫凤拷锟斤拷锟斤拷志锟斤拷锟斤拷目录
+# 设置访问日志所在目录
 server.undertow.accesslog.dir=logs
-# 指锟斤拷锟斤拷锟斤拷锟斤拷锟竭程碉拷 I/0 锟竭筹拷锟斤拷锟斤拷默锟斤拷为 2 锟斤拷锟斤拷 CPU 锟侥革拷锟斤拷
+# 指定工作者线程的 I/0 线程数,默认为 2 或者 CPU 的个数
 server.undertow.io-threads=
-# 指锟斤拷锟斤拷锟斤拷锟斤拷锟竭程革拷锟斤拷锟斤拷默锟斤拷为 I/O 锟竭程革拷锟斤拷锟斤拷 8 锟斤拷
+# 指定工作者线程个数,默认为 I/O 线程个数的 8 倍
 server.undertow.worker-threads=
-# ���� HTTP POST ���ݵ���󳤶ȣ�Ĭ�ϲ�������
+# 设置 HTTP POST 内容的最大长度,默认不做限制
 server.undertow.max-http-post-size=0
 
 #########################################################
@@ -22,8 +22,8 @@ server.undertow.max-http-post-size=0
 #########################################################
 management.security.enabled=false
 
-# 锟斤拷锟捷达拷锟斤拷锟斤拷锟斤拷
+# 数据处理流程
 data.input.flow=2
 
-# �Ƿ�д���������(1:д�� 0:��д��)
+# 是否写入测试数据(1:写入 0:不写入)
 data.test.input=0

BIN
registration-center/target/classes/com/huimv/center/HuimvRegistrationCenterApplication.class


BIN
registration-center/target/classes/com/huimv/center/config/MybatisConfig.class


BIN
registration-center/target/classes/com/huimv/center/config/MybatisPlusConfig.class


BIN
registration-center/target/classes/com/huimv/center/config/TopicRabbitMQConfig.class


BIN
registration-center/target/classes/com/huimv/center/controller/BizDeviceAnswerFlowController.class


BIN
registration-center/target/classes/com/huimv/center/controller/BizDeviceRegisteredFlowController.class


BIN
registration-center/target/classes/com/huimv/center/controller/BizDeviceUnregisteredController.class


BIN
registration-center/target/classes/com/huimv/center/controller/BizDeviceUnregisteredFlowController.class


BIN
registration-center/target/classes/com/huimv/center/listener/Listener.class


BIN
registration-center/target/classes/com/huimv/center/mapper/BizDeviceAnswerFlowMapper.class


BIN
registration-center/target/classes/com/huimv/center/mapper/BizDeviceRegisterMapper.class


BIN
registration-center/target/classes/com/huimv/center/mapper/BizDeviceRegisteredFlowMapper.class


BIN
registration-center/target/classes/com/huimv/center/mapper/BizDeviceUnregisteredFlowMapper.class


BIN
registration-center/target/classes/com/huimv/center/mapper/BizDeviceUnregisteredMapper.class


+ 19 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceAnswerFlowMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceAnswerFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceAnswerFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="answer" property="answer" />
+        <result column="add_time" property="addTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, device_code, answer, add_time
+    </sql>
+
+</mapper>

+ 29 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceRegisterMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceRegisterMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceRegister">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="farm_code" property="farmCode" />
+        <result column="register_date" property="registerDate" />
+        <result column="server_ip" property="serverIp" />
+        <result column="server_port" property="serverPort" />
+        <result column="first_time" property="firstTime" />
+        <result column="last_time" property="lastTime" />
+        <result column="remark" property="remark" />
+        <result column="times" property="ask_times" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, device_code, farm_code, register_date, server_ip, server_port, first_time, last_time, remark
+    </sql>
+
+    <select id="findPage" resultType="com.huimv.center.pojo.BizDeviceRegister">
+        select * from biz_device_register
+    </select>
+
+</mapper>

+ 19 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceRegisteredFlowMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceRegisteredFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceRegisteredFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="add_time" property="addTime" />
+        <result column="client_ip" property="clientIp" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, device_code, add_time, client_ip
+    </sql>
+
+</mapper>

+ 17 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceUnregisteredFlowMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceUnregisteredFlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceUnregisteredFlow">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="add_time" property="addTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, add_time
+    </sql>
+
+</mapper>

+ 19 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizDeviceUnregisteredMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizDeviceUnregisteredMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizDeviceUnregistered">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="first_time" property="firstTime" />
+        <result column="last_time" property="lastTime" />
+        <result column="ask_times" property="askTimes" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, first_time, last_time, ask_times
+    </sql>
+
+</mapper>

+ 20 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizFarmMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizFarmMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizFarm">
+        <id column="id" property="id" />
+        <result column="farm_name" property="farmName" />
+        <result column="farm_code" property="farmCode" />
+        <result column="linkman" property="linkman" />
+        <result column="phone" property="phone" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, farm_name, farm_code, linkman, phone, remark
+    </sql>
+
+</mapper>

+ 19 - 0
registration-center/target/classes/com/huimv/center/mapper/xml/BizTransferHistoryMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.center.mapper.BizTransferHistoryMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.center.pojo.BizTransferHistory">
+        <id column="id" property="id" />
+        <result column="chip_id" property="chipId" />
+        <result column="ask_time" property="askTime" />
+        <result column="server_ip" property="serverIp" />
+        <result column="server_port" property="serverPort" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, chip_id, ask_time, server_ip, server_port
+    </sql>
+
+</mapper>

BIN
registration-center/target/classes/com/huimv/center/pojo/BizDeviceAnswerFlow.class


BIN
registration-center/target/classes/com/huimv/center/pojo/BizDeviceRegister.class


BIN
registration-center/target/classes/com/huimv/center/pojo/BizDeviceRegisteredFlow.class


BIN
registration-center/target/classes/com/huimv/center/pojo/BizDeviceUnregistered.class


BIN
registration-center/target/classes/com/huimv/center/pojo/BizDeviceUnregisteredFlow.class


BIN
registration-center/target/classes/com/huimv/center/producer/Producer.class


BIN
registration-center/target/classes/com/huimv/center/result/RRException.class


BIN
registration-center/target/classes/com/huimv/center/server/RegisterServer$1.class


BIN
registration-center/target/classes/com/huimv/center/server/RegisterServer.class


BIN
registration-center/target/classes/com/huimv/center/server/RegisterServerHandler.class


BIN
registration-center/target/classes/com/huimv/center/service/BizDeviceAnswerFlowService.class


BIN
registration-center/target/classes/com/huimv/center/service/BizDeviceRegisterService.class


BIN
registration-center/target/classes/com/huimv/center/service/BizDeviceRegisteredFlowService.class


BIN
registration-center/target/classes/com/huimv/center/service/BizDeviceUnregisteredFlowService.class


BIN
registration-center/target/classes/com/huimv/center/service/BizDeviceUnregisteredService.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizDeviceAnswerFlowServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizDeviceRegisteredFlowServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizDeviceUnregisteredFlowServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizDeviceUnregisteredServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/service/impl/BizFarmServiceImpl.class


BIN
registration-center/target/classes/com/huimv/center/utils/Const.class


BIN
registration-center/target/classes/com/huimv/center/utils/Constant$CloudService.class


BIN
registration-center/target/classes/com/huimv/center/utils/Constant$MenuType.class


BIN
registration-center/target/classes/com/huimv/center/utils/Constant$ScheduleStatus.class


BIN
registration-center/target/classes/com/huimv/center/utils/Constant.class


+ 0 - 0
registration-center/target/classes/com/huimv/center/utils/Query.class


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor