yangxiaokun 3 years ago
parent
commit
a74f4f1670
100 changed files with 985 additions and 3353 deletions
  1. 133 113
      pom.xml
  2. 0 54
      src/main/java/com/zhiyun/mqtt/common/Constant.java
  3. 0 59
      src/main/java/com/zhiyun/mqtt/common/aspect/LogAspect.java
  4. 0 18
      src/main/java/com/zhiyun/mqtt/common/enums/ResponseCode.java
  5. 0 26
      src/main/java/com/zhiyun/mqtt/common/io/CallRecordsIO.java
  6. 0 26
      src/main/java/com/zhiyun/mqtt/common/io/SetNewsIO.java
  7. 0 19
      src/main/java/com/zhiyun/mqtt/common/io/wechat/AnswerSetIO.java
  8. 0 21
      src/main/java/com/zhiyun/mqtt/common/io/wechat/ContinueSetIO.java
  9. 0 26
      src/main/java/com/zhiyun/mqtt/common/io/wechat/DeviceHistoryIO.java
  10. 0 19
      src/main/java/com/zhiyun/mqtt/common/io/wechat/GpsRateSetIO.java
  11. 0 32
      src/main/java/com/zhiyun/mqtt/common/io/wechat/NewsSetIO.java
  12. 0 27
      src/main/java/com/zhiyun/mqtt/common/io/wechat/ServerSetIO.java
  13. 0 27
      src/main/java/com/zhiyun/mqtt/common/io/wechat/SimpleSetIO.java
  14. 0 43
      src/main/java/com/zhiyun/mqtt/common/io/wechat/SosSetIO.java
  15. 0 25
      src/main/java/com/zhiyun/mqtt/common/io/wechat/UserDeviceRelationIO.java
  16. 0 29
      src/main/java/com/zhiyun/mqtt/common/io/wechat/VolumeSetIO.java
  17. 0 25
      src/main/java/com/zhiyun/mqtt/common/io/wechat/WhitePhoneSetIO.java
  18. 0 22
      src/main/java/com/zhiyun/mqtt/common/vo/DeviceVo.java
  19. 0 37
      src/main/java/com/zhiyun/mqtt/common/vo/LocationHistoryVo.java
  20. 0 162
      src/main/java/com/zhiyun/mqtt/config/mqtt/MqttCallbackHandler.java
  21. 0 38
      src/main/java/com/zhiyun/mqtt/controller/DeviceController.java
  22. 0 58
      src/main/java/com/zhiyun/mqtt/controller/IdiomsController.java
  23. 0 45
      src/main/java/com/zhiyun/mqtt/controller/LocationController.java
  24. 0 79
      src/main/java/com/zhiyun/mqtt/controller/RelationController.java
  25. 0 80
      src/main/java/com/zhiyun/mqtt/controller/SetController.java
  26. 0 79
      src/main/java/com/zhiyun/mqtt/controller/SetInfoController.java
  27. 0 40
      src/main/java/com/zhiyun/mqtt/controller/UserController.java
  28. 0 56
      src/main/java/com/zhiyun/mqtt/controller/pc/AdminController.java
  29. 0 41
      src/main/java/com/zhiyun/mqtt/controller/pc/PcDeviceController.java
  30. 0 31
      src/main/java/com/zhiyun/mqtt/controller/pc/PcLocationController.java
  31. 0 93
      src/main/java/com/zhiyun/mqtt/controller/pc/PcSetController.java
  32. 0 32
      src/main/java/com/zhiyun/mqtt/controller/pc/PcUserController.java
  33. 0 17
      src/main/java/com/zhiyun/mqtt/mapper/BaseStationMapper.java
  34. 0 28
      src/main/java/com/zhiyun/mqtt/mapper/DeviceLocationMapper.java
  35. 0 43
      src/main/java/com/zhiyun/mqtt/mapper/DeviceMapper.java
  36. 0 16
      src/main/java/com/zhiyun/mqtt/mapper/IdiomsMapper.java
  37. 0 18
      src/main/java/com/zhiyun/mqtt/mapper/SetBaseMapper.java
  38. 0 27
      src/main/java/com/zhiyun/mqtt/mapper/SetNewsMapper.java
  39. 0 30
      src/main/java/com/zhiyun/mqtt/mapper/SetUpdateTagMapper.java
  40. 0 35
      src/main/java/com/zhiyun/mqtt/mapper/UserDeviceRelationMapper.java
  41. 0 27
      src/main/java/com/zhiyun/mqtt/mapper/UserMapper.java
  42. 0 33
      src/main/java/com/zhiyun/mqtt/model/Admin.java
  43. 0 32
      src/main/java/com/zhiyun/mqtt/model/BaseStation.java
  44. 0 48
      src/main/java/com/zhiyun/mqtt/model/CallRecords.java
  45. 0 62
      src/main/java/com/zhiyun/mqtt/model/Device.java
  46. 0 114
      src/main/java/com/zhiyun/mqtt/model/DeviceLocation.java
  47. 0 58
      src/main/java/com/zhiyun/mqtt/model/MqttMsgDto.java
  48. 0 83
      src/main/java/com/zhiyun/mqtt/model/SetBase.java
  49. 0 46
      src/main/java/com/zhiyun/mqtt/model/SetNews.java
  50. 0 36
      src/main/java/com/zhiyun/mqtt/model/SetUpdateTag.java
  51. 0 84
      src/main/java/com/zhiyun/mqtt/model/User.java
  52. 0 27
      src/main/java/com/zhiyun/mqtt/model/UserDeviceRelation.java
  53. 0 29
      src/main/java/com/zhiyun/mqtt/model/UserIdioms.java
  54. 0 43
      src/main/java/com/zhiyun/mqtt/redis/DeviceManager.java
  55. 0 28
      src/main/java/com/zhiyun/mqtt/service/AdminService.java
  56. 0 44
      src/main/java/com/zhiyun/mqtt/service/BaseStationService.java
  57. 0 29
      src/main/java/com/zhiyun/mqtt/service/CallRecordsService.java
  58. 0 30
      src/main/java/com/zhiyun/mqtt/service/DeviceLocationService.java
  59. 0 85
      src/main/java/com/zhiyun/mqtt/service/DeviceService.java
  60. 0 29
      src/main/java/com/zhiyun/mqtt/service/IdiomsService.java
  61. 0 76
      src/main/java/com/zhiyun/mqtt/service/RelationService.java
  62. 0 73
      src/main/java/com/zhiyun/mqtt/service/SetBaseService.java
  63. 0 26
      src/main/java/com/zhiyun/mqtt/service/SetNewsService.java
  64. 0 98
      src/main/java/com/zhiyun/mqtt/service/SetService.java
  65. 0 172
      src/main/java/com/zhiyun/mqtt/service/SetToDeviceService.java
  66. 0 37
      src/main/java/com/zhiyun/mqtt/service/SetUpdateTagService.java
  67. 0 62
      src/main/java/com/zhiyun/mqtt/service/UserService.java
  68. 0 12
      src/main/java/com/zhiyun/mqtt/utils/DateTimeUtil.java
  69. 0 40
      src/main/java/com/zhiyun/mqtt/utils/HttpUtil.java
  70. 3 3
      src/main/java/com/zy/bms/BmsApplication.java
  71. 81 0
      src/main/java/com/zy/bms/common/Constant.java
  72. 3 13
      src/main/java/com/zy/bms/common/ServerResponse.java
  73. 44 0
      src/main/java/com/zy/bms/common/aspect/LogAspect.java
  74. 30 0
      src/main/java/com/zy/bms/common/controller/BaseController.java
  75. 3 11
      src/main/java/com/zy/bms/common/controller/ExceptionController.java
  76. 17 0
      src/main/java/com/zy/bms/common/enums/ResponseCode.java
  77. 1 13
      src/main/java/com/zy/bms/common/exception/ApiRuntimeException.java
  78. 5 8
      src/main/java/com/zy/bms/common/interceptor/AuthInterceptor.java
  79. 4 7
      src/main/java/com/zy/bms/common/interceptor/VerifyInterceptor.java
  80. 16 10
      src/main/java/com/zy/bms/common/redis/SessionManager.java
  81. 11 5
      src/main/java/com/zy/bms/config/BeanConfig.java
  82. 4 2
      src/main/java/com/zy/bms/config/CorsConfig.java
  83. 13 9
      src/main/java/com/zy/bms/config/InterceptorConfig.java
  84. 1 1
      src/main/java/com/zy/bms/config/mqtt/MqttConfig.java
  85. 6 6
      src/main/java/com/zy/bms/config/mqtt/MqttConsumerCfg.java
  86. 1 1
      src/main/java/com/zy/bms/config/mqtt/MqttGateway.java
  87. 4 5
      src/main/java/com/zy/bms/config/mqtt/MqttProducerCfg.java
  88. 113 0
      src/main/java/com/zy/bms/controller/AdminController.java
  89. 75 0
      src/main/java/com/zy/bms/controller/GroupController.java
  90. 20 0
      src/main/java/com/zy/bms/controller/InstructionsController.java
  91. 75 0
      src/main/java/com/zy/bms/controller/ItemController.java
  92. 18 0
      src/main/java/com/zy/bms/controller/RoleController.java
  93. 20 0
      src/main/java/com/zy/bms/controller/UserController.java
  94. 20 0
      src/main/java/com/zy/bms/controller/lp/LpInfoStateController.java
  95. 42 0
      src/main/java/com/zy/bms/controller/ubi/UbiDeviceController.java
  96. 16 0
      src/main/java/com/zy/bms/controller/ubi/UbiInfoRecordController.java
  97. 44 0
      src/main/java/com/zy/bms/controller/ubi/UbiNtripController.java
  98. 44 0
      src/main/java/com/zy/bms/controller/ubi/UbiTcpController.java
  99. 56 0
      src/main/java/com/zy/bms/entity/Admin.java
  100. 62 0
      src/main/java/com/zy/bms/entity/DeviceBase.java

+ 133 - 113
pom.xml

@@ -1,116 +1,136 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.1.0.RELEASE</version>
-        <relativePath/> <!-- lookup parent from repository -->
-    </parent>
-    <groupId>com.zhiyun.mqtt</groupId>
-    <artifactId>mqttserver</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
-    <name>bms-java</name>
-    <description>Demo project for Spring Boot</description>
-
-    <properties>
-        <java.version>1.8</java.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-aop</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-redis</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-
-        <!-- websocket -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-websocket</artifactId>
-        </dependency>
-
-        <!--MQTT-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-integration</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.integration</groupId>
-            <artifactId>spring-integration-stream</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.integration</groupId>
-            <artifactId>spring-integration-mqtt</artifactId>
-        </dependency>
-
-        <!--mybatis-plus-->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>3.4.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.19</version>
-            <scope>runtime</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-            <version>1.2.28</version>
-        </dependency>
-
-        <!--阿里druid数据库连接池-->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>druid</artifactId>
-            <version>1.1.21</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.github.dozermapper</groupId>
-            <artifactId>dozer-core</artifactId>
-            <version>6.5.0</version>
-        </dependency>
-
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </build>
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.springframework.boot</groupId>
+		<artifactId>spring-boot-starter-parent</artifactId>
+		<version>2.1.0.RELEASE</version>
+		<relativePath/> <!-- lookup parent from repository -->
+	</parent>
+	<groupId>com.zy</groupId>
+	<artifactId>bms</artifactId>
+	<version>0.0.1-SNAPSHOT</version>
+	<name>bms</name>
+	<description>Demo project for Spring Boot</description>
+	<properties>
+		<java.version>1.8</java.version>
+	</properties>
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-aop</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<optional>true</optional>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-test</artifactId>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-redis</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+
+		<!-- websocket -->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-websocket</artifactId>
+		</dependency>
+
+		<!--MQTT-->
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-integration</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.integration</groupId>
+			<artifactId>spring-integration-stream</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.integration</groupId>
+			<artifactId>spring-integration-mqtt</artifactId>
+		</dependency>
+
+		<!--mybatis-plus-->
+		<dependency>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-boot-starter</artifactId>
+			<version>3.4.0</version>
+		</dependency>
+
+		<!-- Mybatis-plus 代码生成器-->
+		<dependency>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-generator</artifactId>
+			<version>3.4.0</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.freemarker</groupId>
+			<artifactId>freemarker</artifactId>
+			<version>2.3.30</version>
+		</dependency>
+
+		<dependency>
+			<groupId>mysql</groupId>
+			<artifactId>mysql-connector-java</artifactId>
+			<version>8.0.19</version>
+			<scope>runtime</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>1.2.28</version>
+		</dependency>
+
+		<!--阿里druid数据库连接池-->
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>druid</artifactId>
+			<version>1.1.21</version>
+		</dependency>
+
+		<dependency>
+			<groupId>com.github.dozermapper</groupId>
+			<artifactId>dozer-core</artifactId>
+			<version>6.5.0</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+					<excludes>
+						<exclude>
+							<groupId>org.projectlombok</groupId>
+							<artifactId>lombok</artifactId>
+						</exclude>
+					</excludes>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
 </project>

+ 0 - 54
src/main/java/com/zhiyun/mqtt/common/Constant.java

@@ -1,54 +0,0 @@
-package com.zhiyun.mqtt.common;
-
-/**
- * @author yang xiao kun
- * create on 2021/2/2
- */
-public class Constant {
-
-    /**
-     * redis key前缀
-     */
-    public static final String REDIS_PREFIX_LOCATION = "device:location:";//数据上传位置信息前缀
-    public static final String REDIS_TOKEN_PREFIX = "user:token:";//PC管理员登录token 前缀
-
-    /**
-     * MQTT 协议报文 中 M值
-     */
-    public static final String M_CODE_REGISTER = "10";//注册
-    public static final String M_CODE_RETURN_CODE = "11";//返回授权码
-    public static final String M_CODE_REGISTER_OK = "13";//注册成功
-    public static final String M_CODE_GPS_RATE = "31";//定位频率
-    public static final String M_CODE_SOS = "33";//紧急呼救
-    public static final String M_CODE_VOLUME = "34";//音量
-    public static final String M_CODE_AUTO_ANSWER = "36";//自动接听
-    public static final String M_CODE_NEWS = "39";//语音播报
-    public static final String M_CODE_CONTINUE_GPS = "41";//设备连续定位设置
-
-//    public static final String TAG_uploadTag = "uploadtag";//数据上传频率
-//    public static final String TAG_ownTag = "owntag";//持有人信息
-//    public static final String TAG_sosTag = "sostag";//紧急联系人
-//    public static final String TAG_valTag = "valtag";//音量
-//    public static final String TAG_timeTag = "timetag";//整点报时
-//    public static final String TAG_hangonTag = "hangontag";//自动接听
-//    public static final String TAG_whiteTag = "whitetag";//白名单
-//    public static final String TAG_serverTag = "servertag";//服务器信息
-//    public static final String TAG_msgTag = "msgtag";//语音播报
-
-    /**
-     * 主题前缀
-     * SERVER为服务器订阅接收设备发来消息￿
-     * CLIENT为服务器订阅发送消息给设备
-     */
-    public static final String TOPIC_REGISTER_SERVER = "$regdtx";
-    public static final String TOPIC_REGISTER_CLIENT = "$regdrx";
-    public static final String TOPIC_DEVICE_SERVER = "$dtx/";
-    public static final String TOPIC_DEVICE_CLIENT = "$drx/";
-
-    /**
-     * 微信小程序登录相关配置
-     */
-    public static final String wxAppId = "wxe90699b45e28a0b6";// 小程序唯一标识
-    public static final String wxSecret = "66690a1ffcfe7f1d85a6dcfa38791f25";//小程序的 app secret
-    public static final String grant_type = "authorization_code"; // 授权(必填)
-}

+ 0 - 59
src/main/java/com/zhiyun/mqtt/common/aspect/LogAspect.java

@@ -1,59 +0,0 @@
-package com.zhiyun.mqtt.common.aspect;
-
-import com.zhiyun.mqtt.common.exception.ApiRuntimeException;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
-/**
- * 打印日志切面
- *
- * @author yang xiao kun
- * create on 2021/2/25
- */
-//@Aspect
-//@Component
-public class LogAspect {
-
-    /**
-     * 定义一个切入点.
-     */
-    @Pointcut("execution(* com.zhiyun.mqtt.service.impl..*.*(..))||execution(* com.zhiyun.mqtt.controller..*.*(..))")
-    public void pointcut() {
-    }
-
-    /**
-     * 方法切入点(输出方法执行概要日志)
-     *
-     * @param joinPoint 连接点
-     * @return 原方法返回值
-     */
-    @Around(value = "pointcut()")
-    public Object around(ProceedingJoinPoint joinPoint) {
-        StringBuilder sb = buildMethodInfo(joinPoint);
-        try {
-            return joinPoint.proceed();
-        } catch (Throwable throwable) {
-            sb.append("发生异常:").append(throwable.getMessage());
-            throw new ApiRuntimeException("系统错误");
-        } finally {
-            System.out.println(sb.toString());
-        }
-    }
-
-    private StringBuilder buildMethodInfo(ProceedingJoinPoint joinPoint) {
-        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-        Method method = signature.getMethod();
-        StringBuilder result = new StringBuilder();
-        result.append("执行方法:").append(method.toGenericString())
-                .append(" -- ")
-                .append("入参:").append(Arrays.toString(joinPoint.getArgs()));
-        return result;
-    }
-}

+ 0 - 18
src/main/java/com/zhiyun/mqtt/common/enums/ResponseCode.java

@@ -1,18 +0,0 @@
-package com.zhiyun.mqtt.common.enums;
-
-/**
- * 接口返回常量
- */
-public enum ResponseCode {
-    SUCCESS(200, "SUCCESS"),//成功
-    WARNING(300, "WARNING"),//警告,不进入成功回调函数,直接alert
-    AUTHOR(401, "Forbidden"),//没有权限,跳转登录
-    ERROR(500, "ERROR");//服务器异常
-    public final int code;
-    public final String msg;
-
-    ResponseCode(int code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-}

+ 0 - 26
src/main/java/com/zhiyun/mqtt/common/io/CallRecordsIO.java

@@ -1,26 +0,0 @@
-package com.zhiyun.mqtt.common.io;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 通话记录IO
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CallRecordsIO extends PageIO {
-
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 1:播出 2:接听
-     */
-    private Integer type;
-
-}

+ 0 - 26
src/main/java/com/zhiyun/mqtt/common/io/SetNewsIO.java

@@ -1,26 +0,0 @@
-package com.zhiyun.mqtt.common.io;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 播报IO
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class SetNewsIO extends PageIO {
-
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 播报类型,1:实时播报,0:固定时间播报
-     */
-    private Integer newsType;
-
-}

+ 0 - 19
src/main/java/com/zhiyun/mqtt/common/io/wechat/AnswerSetIO.java

@@ -1,19 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 自动接听
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class AnswerSetIO extends SimpleSetIO {
-    /**
-     * 0关闭,1打开
-     */
-    private Integer autoAnswer;
-}

+ 0 - 21
src/main/java/com/zhiyun/mqtt/common/io/wechat/ContinueSetIO.java

@@ -1,21 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 持续定位IO
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class ContinueSetIO extends SimpleSetIO {
-    /**
-     * 1:代表打开连续定位 0:代表关闭连续定位
-     * 设备在做后一次收到开启连续定位起计时5分钟后自动关闭连续定位。
-     * 如果希望持续开启连续定位,需要间隔小于5分钟重复发送开 启。收到关闭连续定位后设备会马上关闭连续定位
-     */
-    private Integer highFreq;
-}

+ 0 - 26
src/main/java/com/zhiyun/mqtt/common/io/wechat/DeviceHistoryIO.java

@@ -1,26 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-
-/**
- * 设备历史轨迹入参
- *
- * @author yang xiao kun
- * create on 2021/2/8
- */
-@Data
-public class DeviceHistoryIO {
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-    /**
-     * 开始时间
-     */
-    private String startTime;
-
-    /**
-     * 结束时间
-     */
-    private String endTime;
-}

+ 0 - 19
src/main/java/com/zhiyun/mqtt/common/io/wechat/GpsRateSetIO.java

@@ -1,19 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 定位频率设置
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class GpsRateSetIO extends SimpleSetIO {
-    /**
-     * 单位 小时
-     */
-    private Integer gpsRate;
-}

+ 0 - 32
src/main/java/com/zhiyun/mqtt/common/io/wechat/NewsSetIO.java

@@ -1,32 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 语音播报设置
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class NewsSetIO extends SimpleSetIO {
-
-    /**
-     * 星期几的几点几分播报,星期之间逗号间隔,星期与时间空格间隔
-     * 1,2,3,4,5 13:13
-     */
-    private String newsTime;
-
-    /**
-     * 播报类型,1:实时播报,0:固定时间播报
-     */
-    private Integer newsType;
-
-    /**
-     * 服务器下发文字
-     */
-    private String news;
-
-}

+ 0 - 27
src/main/java/com/zhiyun/mqtt/common/io/wechat/ServerSetIO.java

@@ -1,27 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 服务端口设置
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Deprecated
-public class ServerSetIO extends SimpleSetIO {
-
-    /**
-     * 服务器
-     */
-    private String serverHost;
-
-    /**
-     * 端口
-     */
-    private Integer serverPort;
-
-}

+ 0 - 27
src/main/java/com/zhiyun/mqtt/common/io/wechat/SimpleSetIO.java

@@ -1,27 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import com.zhiyun.mqtt.common.Constant;
-import lombok.Data;
-
-/**
- * 简单设置入参类
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-public class SimpleSetIO {
-    /**
-     * 设备名
-     */
-    String deviceId;
-
-    /**
-     * 用户ID
-     */
-    String userId;
-
-    public String getTopic() {
-        return Constant.TOPIC_DEVICE_CLIENT + deviceId;
-    }
-}

+ 0 - 43
src/main/java/com/zhiyun/mqtt/common/io/wechat/SosSetIO.java

@@ -1,43 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * SOS设置
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class SosSetIO extends SimpleSetIO {
-
-    /**
-     * 姓名
-     */
-    private String key0Name;
-    /**
-     * 电话号码
-     */
-    private String key0Phone;
-
-    /**
-     * 姓名
-     */
-    private String key1Name;
-    /**
-     * 电话号码
-     */
-    private String key1Phone;
-
-    /**
-     * 姓名
-     */
-    private String key2Name;
-    /**
-     * 电话号码
-     */
-    private String key2Phone;
-
-}

+ 0 - 25
src/main/java/com/zhiyun/mqtt/common/io/wechat/UserDeviceRelationIO.java

@@ -1,25 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-
-/**
- * 设备绑定关系 入参IO
- *
- * @author yang xiao kun
- * create on 2021/1/20
- */
-@Data
-public class UserDeviceRelationIO {
-    /**
-     * 设备ID
-     */
-    private String deviceNum;
-    /**
-     * 用户ID
-     */
-    private String userId;
-    /**
-     * 设备名
-     */
-    private String deviceName;
-}

+ 0 - 29
src/main/java/com/zhiyun/mqtt/common/io/wechat/VolumeSetIO.java

@@ -1,29 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 音量设置 入参
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class VolumeSetIO extends SimpleSetIO {
-    /**
-     * 铃声音量
-     */
-    private Integer ringVol;
-
-    /**
-     * 系统音量
-     */
-    private Integer msgVol;
-
-    /**
-     * 通话音量
-     */
-    private Integer phoneVol;
-}

+ 0 - 25
src/main/java/com/zhiyun/mqtt/common/io/wechat/WhitePhoneSetIO.java

@@ -1,25 +0,0 @@
-package com.zhiyun.mqtt.common.io.wechat;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 白名单设置
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Deprecated
-public class WhitePhoneSetIO extends SimpleSetIO {
-    /**
-     * 0关闭 1开启
-     */
-    private Integer whiteTag;
-
-    /**
-     * json序列化数据
-     */
-    private String whiteList;
-}

+ 0 - 22
src/main/java/com/zhiyun/mqtt/common/vo/DeviceVo.java

@@ -1,22 +0,0 @@
-package com.zhiyun.mqtt.common.vo;
-
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * 设备查询结果表
- *
- * @author chen_yi
- * Create on 2020/8/1
- */
-@Data
-public class DeviceVo {
-    private int id;//设备表主键
-    private String num;//设备随机码
-    private String clientId;//设备编号
-    private Integer isDefault;//是否是默认设备 0:不是 1:是
-    private LocalDateTime createTime;//设备创建时间
-    private String name;//设备名称
-    private int groupId;//设备组ID
-}

+ 0 - 37
src/main/java/com/zhiyun/mqtt/common/vo/LocationHistoryVo.java

@@ -1,37 +0,0 @@
-package com.zhiyun.mqtt.common.vo;
-
-import lombok.Data;
-
-/**
- * 设备位置信息 历史记录
- *
- * @author yang xiao kun
- * create on 2021/2/8
- */
-@Data
-public class LocationHistoryVo {
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 经度
-     */
-    private String lonGcj;
-
-    /**
-     * 纬度
-     */
-    private String latGcj;
-
-    /**
-     * 打点时间
-     */
-    private String dataCreateTime;
-
-    /**
-     * 定位模式
-     */
-    private Integer mode;
-}

+ 0 - 162
src/main/java/com/zhiyun/mqtt/config/mqtt/MqttCallbackHandler.java

@@ -1,162 +0,0 @@
-package com.zhiyun.mqtt.config.mqtt;
-
-import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.model.*;
-import com.zhiyun.mqtt.redis.DeviceManager;
-import com.zhiyun.mqtt.service.*;
-import com.zhiyun.mqtt.utils.CodeGenerator;
-import com.zhiyun.mqtt.utils.GaoDeApiUtil;
-import com.zhiyun.mqtt.websocket.WebSocketServer;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * MQTT 消息返回处理类
- *
- * @author yang xiao kun
- * create on 2021/1/19
- */
-@Component
-public class MqttCallbackHandler {
-
-    @Resource
-    private DeviceService deviceService;
-    @Resource
-    private SetToDeviceService setToDeviceService;
-    @Resource
-    private DeviceLocationService deviceLocationService;
-    @Resource
-    private GaoDeApiUtil gaoDeApiService;
-    @Resource
-    private DeviceManager deviceRedisService;
-    @Resource
-    private WebSocketServer webSocketServer;
-    @Resource
-    private CallRecordsService callRecordsService;
-
-    /**
-     * 处理消息
-     *
-     * @param topic   主题
-     * @param payload 消息内容
-     */
-    void handle(String topic, String payload) {
-        if (topic.contains("/")) {
-            webSocketServer.massMessage(topic.split("/")[1], payload);
-        }
-        //消息返回JSON转Object
-        MqttMsgDto msgObject = JSON.parseObject(payload, MqttMsgDto.class);
-        //根据报文标识代码 M 处理消息
-        switch (msgObject.getM()) {
-            case "10"://设备端注册报文
-                registerDevice(msgObject);
-                break;
-            case "12"://设备注册完成
-                setToDeviceService.registerOK(msgObject.getData().get("deviceid").toString());
-                break;
-            case "20":// 设备位置信息上报
-                LocationHandler(msgObject);
-                break;
-            case "40"://设备上传通话记录
-                CallRecordsHandler(msgObject);
-                break;
-//            case "30"://设备联网后发送消息,请求更新设置
-//                getDeviceSet(msgObject);
-//            case "40": // 基站信息
-//                String deviceId = msgObject.getR().split("/")[1];
-//                baseStationService.insertBaseStation(deviceId, msgObject.getData());
-//                break;
-        }
-    }
-
-    /**
-     * 注册设备
-     */
-    private void registerDevice(MqttMsgDto obj) {
-        String num = obj.getData().get("num").toString();
-        //查询数据库中是否有此设备
-        Device device = deviceService.getByNum(num);
-        if (device == null) {
-            device = new Device(num, CodeGenerator.generateClientId(), CodeGenerator.generateShortUuid());
-            //没有该设备,保存至数据库
-            deviceService.save(device);
-        }
-        //发送消息
-        setToDeviceService.returnCodeToDevice(device.getNum(), device.getClientId(), device.getPassword());
-    }
-
-    /**
-     * 处理上传位置
-     */
-    private void LocationHandler(MqttMsgDto obj) {
-        DeviceLocation location = new DeviceLocation(obj);
-        // 逆地理位置解析
-        location.setSite(gaoDeApiService.regeo(location.getLonGcj(), location.getLatGcj()));
-        // 保存位置信息--历史记录
-        deviceLocationService.save(location);
-        // 将最新位置信息保存至redis中
-        deviceRedisService.saveLocation(location);
-        // 通知设备更新未接收到的设置信息
-        //setToDeviceService.notifyDeviceUpdateSet(setUpdateTagService.getByDeviceId(location.getDeviceId()));
-    }
-
-    /**
-     * 设备上传通话记录
-     */
-    private void CallRecordsHandler(MqttMsgDto obj) {
-        CallRecords callRecords = new CallRecords();
-        callRecords.setDeviceId(obj.getR().split("/")[1]);
-        callRecords.setType((int) obj.getData().get("type"));
-        callRecords.setKey((String) obj.getData().get("key"));
-        callRecords.setPhoneNum((String) obj.getData().get("phnoenum"));
-        callRecords.setTalkTime((int) obj.getData().get("talktime"));
-        callRecords.setEndTime((String) obj.getData().get("endtime"));
-        callRecordsService.save(callRecords);
-    }
-
-//    /**
-//     * 获取设备更新设置
-//     */
-//    private void getDeviceSet(MqttMsgDto obj) {
-//        String deviceId = obj.getR().split("/")[1];
-//        // res = 1,代表设备中设置更新完毕
-//        if (obj.getData().get("res").toString().equals("1")) {
-//            //设备更新完成,数据库保持同步
-//            setUpdateTagService.updateMsgConfirm(deviceId, obj.getData().get("settag").toString(), "0");
-//        }
-//        // res = 0,代表设备中设置需要更新
-//        if (obj.getData().get("res").toString().equals("0")) {
-//            switch (obj.getData().get("settag").toString()) {
-//                case Constant.TAG_uploadTag://数据上传频率
-//                    SetOther uploadTag = setOtherService.getNetwork(deviceId);
-//                    setToDeviceService.setNetwork(BeanUtil.cast(uploadTag, NetWorkSetIO.class));
-//                    break;
-//                case Constant.TAG_ownTag://持有者配置
-//                    break;
-//                case Constant.TAG_sosTag:// 紧急联系人设置
-//                    SetSOS sosTag = setSosService.getOne(new QueryWrapper<SetSOS>().eq("deviceId", deviceId));
-//                    setToDeviceService.setSOS(BeanUtil.cast(sosTag, SosSetIO.class));
-//                    break;
-//                case Constant.TAG_valTag://音量设置
-//                    SetOther valTag = setOtherService.getVolume(deviceId);
-//                    setToDeviceService.setVolume(BeanUtil.cast(valTag, VolumeSetIO.class));
-//                    break;
-//                case Constant.TAG_timeTag://整点报时设置
-//                    break;
-//                case Constant.TAG_hangonTag://自动接听设置
-//                    SetOther hongonTag = setOtherService.getAutoAnswerAndClock(deviceId);
-//                    setToDeviceService.setAutoAnswer(BeanUtil.cast(hongonTag, AnswerSetIO.class));
-//                    break;
-//                case Constant.TAG_whiteTag: //白名单设置
-//                    SetOther whiteTag = setOtherService.getWhite(deviceId);
-//                    setToDeviceService.setWhitePhone(BeanUtil.cast(whiteTag, WhitePhoneSetIO.class));
-//                    break;
-//                case Constant.TAG_serverTag://服务器设置
-//                    break;
-//                case Constant.TAG_msgTag://语音播报内容设置
-//
-//            }
-//        }
-//    }
-}

+ 0 - 38
src/main/java/com/zhiyun/mqtt/controller/DeviceController.java

@@ -1,38 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.exception.ApiRuntimeException;
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.service.DeviceService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备相关
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/device")
-public class DeviceController {
-
-    @Resource
-    private DeviceService deviceService;
-
-    /**
-     * 更新设备名称
-     *
-     * @param num  设备随机 num
-     * @param name 设备名称
-     */
-    @PostMapping("updateName.do")
-    public ServerResponse updateName(String num, String name) {
-        if (!deviceService.updateName(num, name)) {
-            throw new ApiRuntimeException("更新设备名称失败");
-        }
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 58
src/main/java/com/zhiyun/mqtt/controller/IdiomsController.java

@@ -1,58 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.exception.ApiRuntimeException;
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.model.UserIdioms;
-import com.zhiyun.mqtt.service.IdiomsService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 用户常用语
- *
- * @author yang xiao kun
- * create on 2021/1/22
- */
-@RestController
-@RequestMapping("zy4g/api/idioms")
-public class IdiomsController {
-
-    @Resource
-    IdiomsService userIdiomsService;
-
-    /**
-     * 通过用户ID 查询用户常用语
-     *
-     * @param userId 用户ID
-     */
-    @GetMapping("getList.do")
-    public ServerResponse getUserIdioms(String userId) {
-        return ServerResponse.createBySuccess(userIdiomsService.getListByUserId(userId));
-    }
-
-    /**
-     * 添加常用语
-     */
-    @PostMapping("save.do")
-    public ServerResponse save(UserIdioms entity) {
-        if (!userIdiomsService.save(entity)) {
-            throw new ApiRuntimeException("添加常用语失败");
-        }
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 通过ID删除常用语
-     */
-    @PostMapping("delById.do")
-    public ServerResponse delById(Integer id) {
-        if (!userIdiomsService.removeById(id)) {
-            throw new ApiRuntimeException("删除常用语失败");
-        }
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 45
src/main/java/com/zhiyun/mqtt/controller/LocationController.java

@@ -1,45 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.wechat.DeviceHistoryIO;
-import com.zhiyun.mqtt.service.DeviceLocationService;
-import com.zhiyun.mqtt.redis.DeviceManager;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备定位相关
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/location")
-public class LocationController {
-
-    @Resource
-    private DeviceLocationService locationService;
-
-    @Resource
-    private DeviceManager redisService;
-
-    /**
-     * 通过设备ID获取最新的定位信息
-     */
-    @GetMapping("getLocation.do")
-    public ServerResponse getLocation(String deviceId) {
-        return ServerResponse.createBySuccess(redisService.getLocation(deviceId));
-    }
-
-    /**
-     * 查看设备历史轨迹
-     */
-    @PostMapping("getHistory.do")
-    public ServerResponse getHistory(DeviceHistoryIO io) {
-        return ServerResponse.createBySuccess(locationService.getHistory(io));
-    }
-}

+ 0 - 79
src/main/java/com/zhiyun/mqtt/controller/RelationController.java

@@ -1,79 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.wechat.UserDeviceRelationIO;
-import com.zhiyun.mqtt.model.UserDeviceRelation;
-import com.zhiyun.mqtt.service.DeviceService;
-import com.zhiyun.mqtt.service.RelationService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 用户设备绑定关系
- *
- * @author chen_yi
- * Create on 2020/8/1
- */
-@RestController
-@RequestMapping("zy4g/api/relation")
-public class RelationController {
-
-    @Resource
-    private RelationService relationService;
-
-    @Resource
-    private DeviceService deviceService;
-
-    /**
-     * 添加绑定关系
-     */
-    @PostMapping("bind.do")
-    public ServerResponse bind(UserDeviceRelationIO io) {
-        if (deviceService.getByNum(io.getDeviceNum()) == null)
-            return ServerResponse.createByWarningMsg("无效设备码!");
-        if (relationService.getByDeviceNum(io.getDeviceNum()) != null)
-            return ServerResponse.createByWarningMsg("该设备已经有用户绑定!");
-        relationService.saveEntity(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 解除绑定关系
-     */
-    @PostMapping("unbind￿.do")
-    public ServerResponse unbind(String deviceNum) {
-        relationService.delByDeviceNum(deviceNum);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 查询用户的所有设备
-     */
-    @GetMapping("getListByUserId.do")
-    public ServerResponse getListByUserId(String userId) {
-        return ServerResponse.createBySuccess(relationService.getListByUserId(userId));
-    }
-
-    /**
-     * 修改默认设备
-     * 即登陆以后使用那个设备
-     *
-     * @param userId    用户ID
-     * @param deviceNum 设备码
-     */
-    @PostMapping("changeDefaultDev.do")
-    public ServerResponse changeDefaultDev(String userId, String deviceNum) {
-        //删除上一个默认设备
-        relationService.update(Wrappers.<UserDeviceRelation>lambdaUpdate().eq(UserDeviceRelation::getIsDefault, 1)
-                .eq(UserDeviceRelation::getUserId, userId).set(UserDeviceRelation::getIsDefault, 0));
-        //添加新的默认设备
-        relationService.update(Wrappers.<UserDeviceRelation>lambdaUpdate().eq(UserDeviceRelation::getDeviceNum, deviceNum)
-                .set(UserDeviceRelation::getIsDefault, 1));
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 80
src/main/java/com/zhiyun/mqtt/controller/SetController.java

@@ -1,80 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.wechat.*;
-import com.zhiyun.mqtt.service.SetService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备设置相关
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/set")
-public class SetController {
-
-    @Resource
-    private SetService setService;
-
-    /**
-     * 设置音量
-     */
-    @PostMapping("volume.do")
-    public ServerResponse setVolume(VolumeSetIO io) {
-        setService.setVolume(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置定位频率
-     */
-    @PostMapping("gpsRate.do")
-    public ServerResponse setNetwork(GpsRateSetIO io) {
-        setService.setGpsRate(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 自动接听
-     *
-     * @param io 设置参数
-     */
-    @PostMapping("autoAnswer.do")
-    public ServerResponse setAutoAnswer(AnswerSetIO io) {
-        setService.setAutoAnswer(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置语音播报
-     */
-    @PostMapping("news.do")
-    public ServerResponse setNews(NewsSetIO io) {
-        setService.setNews(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置SOS紧急呼叫
-     */
-    @PostMapping("sos.do")
-    public ServerResponse setSOS(SosSetIO io) {
-        setService.setSOS(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置持续定位
-     */
-    @PostMapping("continue.do")
-    public ServerResponse setContinue(ContinueSetIO io) {
-        setService.setContinue(io);
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 79
src/main/java/com/zhiyun/mqtt/controller/SetInfoController.java

@@ -1,79 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.CallRecordsIO;
-import com.zhiyun.mqtt.common.io.SetNewsIO;
-import com.zhiyun.mqtt.service.CallRecordsService;
-import com.zhiyun.mqtt.service.SetBaseService;
-import com.zhiyun.mqtt.service.SetNewsService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 获取设备设置相关接口
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/setInfo")
-public class SetInfoController {
-
-    @Resource
-    private SetBaseService setBaseService;
-    @Resource
-    private CallRecordsService callRecordsService;
-    @Resource
-    private SetNewsService setNewsService;
-
-    /**
-     * 查询设备的音量设置
-     * 系统音量,通话音量,铃声音量
-     *
-     * @param deviceId 设备ID
-     */
-    @GetMapping("volume.do")
-    public ServerResponse volume(String deviceId) {
-        return ServerResponse.createBySuccess(setBaseService.getVolumeSet(deviceId));
-    }
-
-    /**
-     * 查询设备的其他设置
-     * 自动接听,定位频率,连续定位设置
-     *
-     * @param deviceId 设备ID
-     */
-    @GetMapping("other.do")
-    public ServerResponse other(String deviceId) {
-        return ServerResponse.createBySuccess(setBaseService.getOtherSet(deviceId));
-    }
-
-    /**
-     * 获取SOS按键设置
-     *
-     * @param deviceId 设备ID
-     */
-    @GetMapping("sos.do")
-    public ServerResponse sos(String deviceId) {
-        return ServerResponse.createBySuccess(setBaseService.getSosSet(deviceId));
-    }
-
-    /**
-     * 获取通话记录
-     */
-    @GetMapping("callRecords.do")
-    public ServerResponse callRecords(CallRecordsIO io) {
-        return ServerResponse.createBySuccess(callRecordsService.getListPage(io));
-    }
-
-    /**
-     * 获取播报记录
-     */
-    @GetMapping("news.do")
-    public ServerResponse news(SetNewsIO io) {
-        return ServerResponse.createBySuccess(setNewsService.getListPage(io));
-    }
-}

+ 0 - 40
src/main/java/com/zhiyun/mqtt/controller/UserController.java

@@ -1,40 +0,0 @@
-package com.zhiyun.mqtt.controller;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.model.User;
-import com.zhiyun.mqtt.service.UserService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 用户信息相关
- *
- * @author chen_yi
- * Create on 2020/8/1
- */
-@RestController
-@RequestMapping("zy4g/api/user")
-public class UserController {
-    @Resource
-    private UserService userService;
-
-    /**
-     * 微信登录
-     *
-     * @param code 微信登录凭证
-     * @return 用户openId
-     */
-    @PostMapping("login.do")
-    public ServerResponse login(String code) {
-        String openId = userService.getWxAppId(code);
-        if (openId == null) return ServerResponse.createByError();
-        //保存新用户
-        if (userService.getByOpenId(openId) == null) {
-            userService.save(new User(openId));
-        }
-        return ServerResponse.createBySuccess(openId);
-    }
-}

+ 0 - 56
src/main/java/com/zhiyun/mqtt/controller/pc/AdminController.java

@@ -1,56 +0,0 @@
-package com.zhiyun.mqtt.controller.pc;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.model.Admin;
-import com.zhiyun.mqtt.redis.SessionManager;
-import com.zhiyun.mqtt.service.AdminService;
-import com.zhiyun.mqtt.utils.MD5Util;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 管理员Controller
- *
- * @author yang xiao kun
- * create on 2021/2/24
- */
-@RestController
-@RequestMapping("zy4g/api/pc/admin")
-public class AdminController {
-
-    @Resource
-    private AdminService adminService;
-
-    @Resource
-    private SessionManager sessionManager;
-
-    /**
-     * 登录
-     */
-    @PostMapping("login.do")
-    public ServerResponse login(String username, String password) {
-        password = MD5Util.MD5Encode(password);
-        Admin admin = adminService.getByUsername(username);
-        if (admin == null) return ServerResponse.createByWarningMsg("用户不存在");
-        if (!admin.getPassword().equals(password)) return ServerResponse.createByWarningMsg("密码错误");
-        // 返回 token 和 昵称
-        Map<String, String> result = new HashMap<>();
-        result.put("token", sessionManager.generateToken(admin));
-        result.put("nickname", admin.getNickname());
-        return ServerResponse.createBySuccess(result);
-    }
-
-    /**
-     * token 验证
-     */
-    @GetMapping("verify.do")
-    public ServerResponse verify() {
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 41
src/main/java/com/zhiyun/mqtt/controller/pc/PcDeviceController.java

@@ -1,41 +0,0 @@
-package com.zhiyun.mqtt.controller.pc;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.pc.DeviceIO;
-import com.zhiyun.mqtt.service.DeviceService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备相关
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/pc/device")
-public class PcDeviceController {
-
-    @Resource
-    private DeviceService deviceService;
-
-    /**
-     * 分页查询设备集合
-     */
-    @PostMapping("getListPage.do")
-    public ServerResponse getListPage(DeviceIO io) {
-        return ServerResponse.createBySuccess(deviceService.getListPage(io));
-    }
-
-    /**
-     * 通过ClientId 查询设备信息
-     */
-    @GetMapping("getDetailByClientId.do")
-    public ServerResponse getByClientId(String clientId) {
-        return ServerResponse.createBySuccess(deviceService.getByClientId(clientId));
-    }
-}

+ 0 - 31
src/main/java/com/zhiyun/mqtt/controller/pc/PcLocationController.java

@@ -1,31 +0,0 @@
-package com.zhiyun.mqtt.controller.pc;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.service.DeviceService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备定位相关
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@RestController
-@RequestMapping("zy4g/api/pc/location")
-public class PcLocationController {
-
-    @Resource
-    private DeviceService deviceService;
-
-    /**
-     * 获取所有设备的最新定位信息
-     */
-    @GetMapping("getLatestLocation.do")
-    public ServerResponse getLatestLocation() {
-        return ServerResponse.createBySuccess(deviceService.getLatestLocation());
-    }
-}

+ 0 - 93
src/main/java/com/zhiyun/mqtt/controller/pc/PcSetController.java

@@ -1,93 +0,0 @@
-package com.zhiyun.mqtt.controller.pc;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.wechat.*;
-import com.zhiyun.mqtt.service.*;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 设备设置相关
- *
- * @author yang xiao kun
- * create on 2021/3/3
- */
-@RestController
-@RequestMapping("zy4g/api/pc/set")
-public class PcSetController {
-
-    @Resource
-    private SetBaseService setBaseService;
-    @Resource
-    private SetService setService;
-
-    /**
-     * 其他设置
-     *
-     * @param deviceId 设备ID
-     */
-    @GetMapping("baseSet.do")
-    public ServerResponse getBaseSet(String deviceId) {
-        return ServerResponse.createBySuccess(setBaseService.getByDeviceId(deviceId));
-    }
-
-    /**
-     * 设置音量
-     */
-    @PostMapping("volume.do")
-    public ServerResponse setVolume(VolumeSetIO io) {
-        setService.setVolume(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置定位频率
-     */
-    @PostMapping("gpsRate.do")
-    public ServerResponse setGpsRate(GpsRateSetIO io) {
-        setService.setGpsRate(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 自动接听
-     *
-     * @param io 设置参数
-     */
-    @PostMapping("autoAnswer.do")
-    public ServerResponse setAutoAnswer(AnswerSetIO io) {
-        setService.setAutoAnswer(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置语音播报
-     */
-    @PostMapping("news.do")
-    public ServerResponse setNews(NewsSetIO io) {
-        setService.setNews(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置SOS紧急呼叫
-     */
-    @PostMapping("sos.do")
-    public ServerResponse setSOS(SosSetIO io) {
-        setService.setSOS(io);
-        return ServerResponse.createBySuccess();
-    }
-
-    /**
-     * 设置持续定位
-     */
-    @PostMapping("continue.do")
-    public ServerResponse setContinue(ContinueSetIO io) {
-        setService.setContinue(io);
-        return ServerResponse.createBySuccess();
-    }
-}

+ 0 - 32
src/main/java/com/zhiyun/mqtt/controller/pc/PcUserController.java

@@ -1,32 +0,0 @@
-package com.zhiyun.mqtt.controller.pc;
-
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.common.io.pc.UserIO;
-import com.zhiyun.mqtt.service.UserService;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 用户管理
- *
- * @author chen_yi
- * Create on 2020/8/1
- */
-@RestController
-@RequestMapping("zy4g/api/pc/user")
-public class PcUserController {
-
-    @Resource
-    private UserService userService;
-
-    /**
-     * 分页查询用户集合
-     */
-    @PostMapping("getListPage.do")
-    public ServerResponse getListPage(UserIO io) {
-        return ServerResponse.createBySuccess(userService.getListPage(io));
-    }
-}

+ 0 - 17
src/main/java/com/zhiyun/mqtt/mapper/BaseStationMapper.java

@@ -1,17 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.model.BaseStation;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-/**
- * 基站信息
- *
- * @author konglilia
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface BaseStationMapper extends BaseMapper<BaseStation> {
-}

+ 0 - 28
src/main/java/com/zhiyun/mqtt/mapper/DeviceLocationMapper.java

@@ -1,28 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.common.io.wechat.DeviceHistoryIO;
-import com.zhiyun.mqtt.common.vo.LocationHistoryVo;
-import com.zhiyun.mqtt.model.DeviceLocation;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-/**
- * 设备位置信息
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface DeviceLocationMapper extends BaseMapper<DeviceLocation> {
-
-    /**
-     * 查看设备历史轨迹
-     *
-     * @param io 查询入参
-     */
-    List<LocationHistoryVo> getHistory(DeviceHistoryIO io);
-}

+ 0 - 43
src/main/java/com/zhiyun/mqtt/mapper/DeviceMapper.java

@@ -1,43 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zhiyun.mqtt.common.io.pc.DeviceIO;
-import com.zhiyun.mqtt.model.Device;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-/**
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface DeviceMapper extends BaseMapper<Device> {
-
-    /**
-     * 后台
-     * 分页查询设备列表
-     *
-     * @param page 分页条件
-     * @param io   查询条件
-     */
-    IPage<Device> getListPage(IPage<Device> page, @Param("io") DeviceIO io);
-
-    /**
-     * 后台
-     * 获取数据库中所有设备的 clientId
-     */
-    List<String> getClientIdList();
-
-    /**
-     * 更新设备名称
-     *
-     * @param num  设备号
-     * @param name 名称
-     */
-    int updateName(@Param("num") String num, @Param("name") String name);
-}

+ 0 - 16
src/main/java/com/zhiyun/mqtt/mapper/IdiomsMapper.java

@@ -1,16 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.model.UserIdioms;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-/**
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface IdiomsMapper extends BaseMapper<UserIdioms> {
-
-}

+ 0 - 18
src/main/java/com/zhiyun/mqtt/mapper/SetBaseMapper.java

@@ -1,18 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.model.SetBase;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-/**
- * 设备基本其他设置
- *
- * @author konglilia
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface SetBaseMapper extends BaseMapper<SetBase> {
-
-}

+ 0 - 27
src/main/java/com/zhiyun/mqtt/mapper/SetNewsMapper.java

@@ -1,27 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zhiyun.mqtt.common.io.SetNewsIO;
-import com.zhiyun.mqtt.model.SetNews;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-/**
- * 语音播报 Mapper
- *
- * @author konglilia
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface SetNewsMapper extends BaseMapper<SetNews> {
-    /**
-     * 分页查询播报记录
-     *
-     * @param io 查询参数
-     */
-    IPage<SetNews> getListPage(Page<SetNews> page, @Param("io") SetNewsIO io);
-}

+ 0 - 30
src/main/java/com/zhiyun/mqtt/mapper/SetUpdateTagMapper.java

@@ -1,30 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.model.SetUpdateTag;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-/**
- * 设备设置消息通知相关
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-@Deprecated
-public interface SetUpdateTagMapper extends BaseMapper<SetUpdateTag> {
-
-    /**
-     * 更新设备设置消息通知
-     *
-     * @param deviceId 设备ID
-     * @param column   设置列
-     * @param tag      开关标签
-     */
-    int updateMsgConfirm(@Param("deviceId") String deviceId,
-                         @Param("column") String column,
-                         @Param("tag") String tag);
-}

+ 0 - 35
src/main/java/com/zhiyun/mqtt/mapper/UserDeviceRelationMapper.java

@@ -1,35 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zhiyun.mqtt.model.UserDeviceRelation;
-import com.zhiyun.mqtt.common.vo.DeviceVo;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-/**
- * 用户设备绑定关系表
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface UserDeviceRelationMapper extends BaseMapper<UserDeviceRelation> {
-
-    /**
-     * 查询用户绑定的设备集合
-     *
-     * @param userId 用户ID
-     */
-    List<DeviceVo> getListByUserId(@Param("userId") String userId);
-
-    /**
-     * 通过用户ID 查询默认设备的设备num
-     *
-     * @param userId 用户Id
-     */
-    String getDefaultDeviceNum(String userId);
-}

+ 0 - 27
src/main/java/com/zhiyun/mqtt/mapper/UserMapper.java

@@ -1,27 +0,0 @@
-package com.zhiyun.mqtt.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.zhiyun.mqtt.common.io.pc.UserIO;
-import com.zhiyun.mqtt.model.User;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Repository;
-
-/**
- * 微信用户Mapper
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Mapper
-@Repository
-public interface UserMapper extends BaseMapper<User> {
-    /**
-     * 分页查询用户列表
-     *
-     * @param page 分页条件
-     * @param io   查询条件
-     */
-    IPage<User> getListPage(IPage<User> page, UserIO io);
-}

+ 0 - 33
src/main/java/com/zhiyun/mqtt/model/Admin.java

@@ -1,33 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-
-/**
- * PC 管理员
- *
- * @author chen_yi
- * Create on 2020/7/31
- */
-@Data
-@ToString
-@TableName("admin")
-@NoArgsConstructor
-public class Admin {
-
-    @TableId
-    private Integer id;
-
-    //用户名
-    private String username;
-
-    //密码
-    private String password;
-
-    //昵称
-    private String nickname;
-
-}

+ 0 - 32
src/main/java/com/zhiyun/mqtt/model/BaseStation.java

@@ -1,32 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * 基站信息
- */
-@Data
-@TableName("base_station")
-public class BaseStation {
-    @TableId
-    private Integer id;
-
-    //设备ID
-    private String deviceId;
-
-    //临近基站1
-    private String cellInf0;
-
-    //临近基站2
-    private String cellInf1;
-
-    //数据更新时间
-    private String uploadTime;
-
-    //记录创建时间
-    private LocalDateTime createTime;
-}

+ 0 - 48
src/main/java/com/zhiyun/mqtt/model/CallRecords.java

@@ -1,48 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-/**
- * 通话记录
- *
- * @author yang xiao kun
- * create on 2021/4/1
- */
-@Data
-@TableName("base_station")
-public class CallRecords {
-    @TableId
-    private Integer id;
-
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 1:播出 2:接听
-     */
-    private Integer type;
-
-    /**
-     * key1,key1,service
-     */
-    private String key;
-
-    /**
-     * 通话号码
-     */
-    private String phoneNum;
-
-    /**
-     * 通话时长
-     */
-    private Integer talkTime;
-
-    /**
-     * 通话结束时间
-     */
-    private String endTime;
-}

+ 0 - 62
src/main/java/com/zhiyun/mqtt/model/Device.java

@@ -1,62 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDateTime;
-
-/**
- * 设备信息
- */
-@Data
-@TableName("zy_device")
-@NoArgsConstructor
-public class Device {
-    @TableId
-    private Integer id;
-
-    //设备随机码
-    private String num;
-
-    //设备MQTT clientId
-    private String clientId;
-
-    //设备MQTT 连接密码
-    private String password;
-
-    //创建时间
-    private LocalDateTime createTime;
-
-    //权限
-    private String tags;
-
-    //设备状态,1注册完成,0待确认
-    private Integer status;
-
-    //设备组
-    private Integer groupId;
-
-    //设备名
-    private String name;
-
-    //是否关机
-    private Integer shutdown;
-
-    /**
-     * 注册设备构造器
-     *
-     * @param clientId MQTT 客户端ID
-     * @param password MQTT 密码
-     */
-    public Device(String num, String clientId, String password) {
-        this.num = num;
-        this.clientId = clientId;
-        this.password = password;
-        this.createTime = LocalDateTime.now();
-        this.tags = "";
-        this.status = 0;
-        this.groupId = 1;
-    }
-}

+ 0 - 114
src/main/java/com/zhiyun/mqtt/model/DeviceLocation.java

@@ -1,114 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.zhiyun.mqtt.utils.CoordTransformUtil;
-import com.zhiyun.mqtt.utils.DateTimeUtil;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-
-/**
- * 设备定位相关
- * Created by konglilia on 2020/5/27.
- */
-@Data
-@TableName("zy_location")
-@NoArgsConstructor
-public class DeviceLocation {
-
-    @TableId
-    private Integer id;
-
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 电量
-     */
-    private Integer batteryNum;
-
-    /**
-     * 信号强度
-     */
-    private Integer signalNum;
-
-    /**
-     * 0:无法定位,1:北斗定位,2:基站定位,3:GPS定位
-     */
-    private Integer mode;
-
-    /**
-     * 经度
-     */
-    private String lon;
-
-    /**
-     * 纬度
-     */
-    private String lat;
-
-    /**
-     * 经度(gcj)
-     */
-    private String lonGcj;
-
-    /**
-     * 纬度(gcj)
-     */
-    private String latGcj;
-
-    /**
-     * 格式化的地理位置
-     */
-    private String site;
-
-    /**
-     * 速度
-     */
-    private String speed;
-
-    /**
-     * 收星颗数
-     */
-    private Integer num;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-    /**
-     * 数据上传时间
-     */
-    private LocalDateTime uploadTime;
-
-    /**
-     * 当前和临近位置区、小区以及信号强度的拼接字符串
-     */
-    private String cellInfo;
-
-
-    public DeviceLocation(MqttMsgDto obj) {
-        this.deviceId = obj.getR().split("/")[1];
-        this.batteryNum = (int) obj.getData().get("batterynum");
-        this.signalNum = (int) obj.getData().get("signalnum");
-        this.mode = (int) obj.getData().get("mode");
-        this.lon = obj.getData().get("lon").toString();
-        this.lat = obj.getData().get("lat").toString();
-        this.speed = obj.getData().get("speed").toString();
-        this.num = (int) obj.getData().get("num");
-        this.uploadTime = LocalDateTime.parse(obj.getData().get("createtime").toString(),
-                DateTimeFormatter.ofPattern(DateTimeUtil.Pattern_YDMHMS));
-        this.createTime = LocalDateTime.now();
-        this.cellInfo = obj.getData().get("cellInfo").toString();
-        //转换后的坐标
-        String[] gcj = CoordTransformUtil.wgs84toGcj02(this.lon, this.lat);
-        this.lonGcj = gcj[0];
-        this.latGcj = gcj[1];
-    }
-}

+ 0 - 58
src/main/java/com/zhiyun/mqtt/model/MqttMsgDto.java

@@ -1,58 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.common.Constant;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * MQTT 消息模板类
- *
- * @author yang xiao kun
- * create on 2021/1/21
- */
-@Data
-@NoArgsConstructor
-public class MqttMsgDto {
-    private String m;
-    private String t;
-    private String r;
-    /**
-     * 数据项
-     */
-    private Map<String, Object> data;
-
-    /**
-     * 通用构造器
-     *
-     * @param m        MQTT协议设置代码
-     * @param deviceId 设备ID
-     */
-    public MqttMsgDto(String m, String deviceId) {
-        this.m = m;
-        this.t = Constant.TOPIC_DEVICE_CLIENT + deviceId;
-        this.r = Constant.TOPIC_DEVICE_SERVER + deviceId;
-        this.data = new HashMap<>();
-    }
-
-    /**
-     * 往data中添加数据 支持链式
-     *
-     * @param key   键
-     * @param value 值
-     */
-    public MqttMsgDto set(String key, Object value) {
-        data.put(key, value);
-        return this;
-    }
-
-    /**
-     * 获取json 对象
-     */
-    public String toJson() {
-        return JSON.toJSONString(this);
-    }
-}

+ 0 - 83
src/main/java/com/zhiyun/mqtt/model/SetBase.java

@@ -1,83 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-/**
- * 其他设置
- */
-@Data
-@TableName("set_base")
-public class SetBase {
-
-    @TableId
-    private Integer id;
-
-    /**
-     * 设备ID
-     */
-    private String deviceId;
-
-    /**
-     * 系统音量
-     */
-    private Integer msgVol;
-
-    /**
-     * 通话音量
-     */
-    private Integer phoneVol;
-
-    /**
-     * 铃声音量
-     */
-    private Integer ringVol;
-
-    /**
-     * 自动接听
-     */
-    private Integer autoAnswer;
-
-    /**
-     * 设备连续定位设置  1:开启 0:关闭
-     */
-    private Integer highFreq;
-
-    /**
-     * 定位频率 单位小时
-     */
-    private Integer gpsRate;
-
-    /**
-     * SOS按键 拨号姓名
-     */
-    private String key0Name;
-    /**
-     * SOS按键 拨号号码
-     */
-    private String key0Phone;
-
-    /**
-     * key1按键 拨号姓名
-     */
-    private String key1Name;
-    /**
-     * key1按键 拨号号码
-     */
-    private String key1Phone;
-
-    /**
-     * key2按键 拨号姓名
-     */
-    private String key2Name;
-    /**
-     * key2按键 拨号号码
-     */
-    private String key2Phone;
-
-    //服务器地址
-    private String serverHost;
-    //服务器端口
-    private Integer serverPort;
-}

+ 0 - 46
src/main/java/com/zhiyun/mqtt/model/SetNews.java

@@ -1,46 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * 语音播报记录
- */
-@Data
-@TableName("set_news")
-public class SetNews {
-    @TableId
-    private Integer id;
-    /**
-     * 用户ID
-     */
-    private String userId;
-
-    /**
-     * 设备Id
-     */
-    private String deviceId;
-
-    /**
-     * 星期几的几点几分播报,星期之间逗号间隔,星期与时间空格间隔 1,2,3,4,5 13:23
-     */
-    private String newsTime;
-
-    /**
-     * 播报类型,1:实时播报,0:固定时间播报
-     */
-    private Integer newsType;
-
-    /**
-     * 服务器下发文字,播报完自动删除
-     */
-    private String news;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-}

+ 0 - 36
src/main/java/com/zhiyun/mqtt/model/SetUpdateTag.java

@@ -1,36 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-/**
- * 设备收到设置消息确认表
- * Created by konglilia on 2020/5/13.
- */
-@Data
-@TableName("set_update_tag")
-public class SetUpdateTag {
-    @TableId
-    private Integer id;
-    //设备ID
-    private String deviceId;
-    //数据上传频率
-    private String uploadtag;
-    //持有人信息
-    private String owntag;
-    //紧急联系人
-    private String sostag;
-    //音t
-    private String valtag;
-    //整点报时
-    private String timetag;
-    //自动接听
-    private String hangontag;
-    //白名单
-    private String whitetag;
-    //服务器信息
-    private String servertag;
-    //语音播报
-    private String msgtag;
-}

+ 0 - 84
src/main/java/com/zhiyun/mqtt/model/User.java

@@ -1,84 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-
-import java.time.LocalDateTime;
-
-/**
- * 微信-用户表
- *
- * @author chen_yi
- * Create on 2020/7/31
- */
-@Data
-@ToString
-@TableName("user")
-@NoArgsConstructor
-public class User {
-    @TableId
-    private Integer id;
-
-    /**
-     * 用户名
-     */
-    private String username;
-
-    /**
-     * 密码
-     */
-    private String password;
-
-    /**
-     * 手机号
-     */
-    private String phone;
-
-    /**
-     * 微信
-     */
-    private String openId;
-
-    /**
-     * 头像
-     */
-    private String avatar;
-
-    /**
-     * 昵称
-     */
-    private String nickname;
-
-    /**
-     * 性别
-     */
-    private Integer gender;
-
-    /**
-     * 国家
-     */
-    private String country;
-
-    /**
-     * 省份
-     */
-    private String province;
-
-    /**
-     * 城市
-     */
-    private String city;
-
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-
-
-    public User(String openId) {
-        this.openId = openId;
-    }
-}

+ 0 - 27
src/main/java/com/zhiyun/mqtt/model/UserDeviceRelation.java

@@ -1,27 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-/**
- * 用户设备关系绑定表
- *
- * @author chen_yi
- * Create on 2020/8/1
- */
-@Data
-@TableName("user_device_relation")
-public class UserDeviceRelation {
-    @TableId
-    private Integer id;
-
-    //用户ID
-    private String userId;
-
-    //设备随机码
-    private String deviceNum;
-
-    //是否是默认设备 0 不是 1 是
-    private Integer isDefault;
-}

+ 0 - 29
src/main/java/com/zhiyun/mqtt/model/UserIdioms.java

@@ -1,29 +0,0 @@
-package com.zhiyun.mqtt.model;
-
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * 常用语
- */
-@Data
-@TableName("user_idioms")
-public class UserIdioms {
-    @TableId
-    private Integer id;
-    /**
-     * 用户ID
-     */
-    private String userId;
-    /**
-     * 内容
-     */
-    private String content;
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
-}

+ 0 - 43
src/main/java/com/zhiyun/mqtt/redis/DeviceManager.java

@@ -1,43 +0,0 @@
-package com.zhiyun.mqtt.redis;
-
-import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.common.Constant;
-import com.zhiyun.mqtt.model.DeviceLocation;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * 设备信息,存放在缓存中的数据
- *
- * @author yang xiao kun
- * create on 2021/2/8
- */
-@Component
-public class DeviceManager {
-
-    @Resource
-    private RedisTemplate<String, String> redisTemplate;
-
-    /**
-     * 将最新位置信息保存至redis中
-     * 不过期
-     *
-     * @param entity 位置信息
-     */
-    public void saveLocation(DeviceLocation entity) {
-        redisTemplate.opsForValue().set(Constant.REDIS_PREFIX_LOCATION + entity.getDeviceId(), JSON.toJSONString(entity));
-    }
-
-    /**
-     * 获取设备最新位置信息
-     *
-     * @param deviceId 设备ID
-     */
-    public DeviceLocation getLocation(String deviceId) {
-        String json = redisTemplate.opsForValue().get(Constant.REDIS_PREFIX_LOCATION + deviceId);
-        if (json == null || json.equals("")) return null;
-        return JSON.parseObject(json, DeviceLocation.class);
-    }
-}

+ 0 - 28
src/main/java/com/zhiyun/mqtt/service/AdminService.java

@@ -1,28 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.mapper.AdminMapper;
-import com.zhiyun.mqtt.model.Admin;
-import org.springframework.stereotype.Service;
-
-/**
- * 管理员 Service
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class AdminService extends ServiceImpl<AdminMapper, Admin> {
-
-    /**
-     * 通过用户名查询用户信息
-     *
-     * @param username 用户名
-     */
-    public Admin getByUsername(String username) {
-        QueryWrapper<Admin> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("username", username);
-        return baseMapper.selectOne(queryWrapper);
-    }
-}

+ 0 - 44
src/main/java/com/zhiyun/mqtt/service/BaseStationService.java

@@ -1,44 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.mapper.BaseStationMapper;
-import com.zhiyun.mqtt.model.BaseStation;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 基站信息
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class BaseStationService extends ServiceImpl<BaseStationMapper, BaseStation> {
-    /**
-     * 添加基站信息,保留最新的,有则更新,无则添加
-     *
-     * @param deviceId 设备ID
-     * @param data     设备发来MQTT 消息对象
-     */
-    public void insertBaseStation(String deviceId, Map<String, Object> data) {
-        BaseStation entity = new BaseStation();
-        entity.setCellInf0((String) data.get("cellinf0"));
-        entity.setCellInf1((String) data.get("cellinf1"));
-        entity.setCreateTime(LocalDateTime.now());
-        QueryWrapper<BaseStation> queryWrapper = new QueryWrapper<BaseStation>().eq("deviceId", deviceId);
-        saveOrUpdate(entity, queryWrapper);
-    }
-
-    /**
-     * 通过设备ID查询基站信息
-     *
-     * @param deviceId 设备ID
-     */
-    public List<BaseStation> getByDeviceId(String deviceId) {
-        return baseMapper.selectList(new QueryWrapper<BaseStation>().eq("deviceId", deviceId));
-    }
-}

+ 0 - 29
src/main/java/com/zhiyun/mqtt/service/CallRecordsService.java

@@ -1,29 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.io.CallRecordsIO;
-import com.zhiyun.mqtt.mapper.CallRecordsMapper;
-import com.zhiyun.mqtt.model.CallRecords;
-import org.springframework.stereotype.Service;
-
-/**
- * 通话记录 Service
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class CallRecordsService extends ServiceImpl<CallRecordsMapper, CallRecords> {
-
-    /**
-     * 分页查询通话记录
-     *
-     * @param io 查询参数
-     */
-    public IPage<CallRecords> getListPage(CallRecordsIO io) {
-        Page<CallRecords> page = new Page<>(io.getCurrent(), io.getSize());
-        return baseMapper.getListPage(page, io);
-    }
-}

+ 0 - 30
src/main/java/com/zhiyun/mqtt/service/DeviceLocationService.java

@@ -1,30 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.io.wechat.DeviceHistoryIO;
-import com.zhiyun.mqtt.common.vo.LocationHistoryVo;
-import com.zhiyun.mqtt.mapper.DeviceLocationMapper;
-import com.zhiyun.mqtt.model.DeviceLocation;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 设备位置信息相关
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class DeviceLocationService extends ServiceImpl<DeviceLocationMapper, DeviceLocation> {
-
-    /**
-     * 查看设备历史轨迹
-     *
-     * @param io 查询入参
-     */
-    public List<LocationHistoryVo> getHistory(DeviceHistoryIO io) {
-        return baseMapper.getHistory(io);
-    }
-
-}

+ 0 - 85
src/main/java/com/zhiyun/mqtt/service/DeviceService.java

@@ -1,85 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.io.pc.DeviceIO;
-import com.zhiyun.mqtt.mapper.DeviceMapper;
-import com.zhiyun.mqtt.model.Device;
-import com.zhiyun.mqtt.model.DeviceLocation;
-import com.zhiyun.mqtt.redis.DeviceManager;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.LinkedList;
-import java.util.List;
-
-
-/**
- * 设备信息相关
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class DeviceService extends ServiceImpl<DeviceMapper, Device> {
-
-    @Resource
-    private DeviceManager redisService;
-
-    /**
-     * 后台
-     * 获取所有设备的最新定位信息
-     */
-    public List<DeviceLocation> getLatestLocation() {
-        List<String> clientIds = baseMapper.getClientIdList();
-        List<DeviceLocation> result = new LinkedList<>();
-        for (String clientId : clientIds) {
-            DeviceLocation item = redisService.getLocation(clientId);
-            if (item != null) result.add(item);
-        }
-        return result;
-    }
-
-    /**
-     * 后台
-     * 分页查询设备列表
-     *
-     * @param io 查询条件
-     */
-    public IPage<Device> getListPage(DeviceIO io) {
-        Page<Device> page = new Page<>(io.getCurrent(), io.getSize());
-        return baseMapper.getListPage(page, io);
-    }
-
-    /**
-     * 通过设备 num 获取设备信息
-     *
-     * @param num 设备号
-     */
-    public Device getByNum(String num) {
-        QueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().eq("num", num);
-        return baseMapper.selectOne(queryWrapper);
-    }
-
-    /**
-     * 更新设备名称
-     *
-     * @param num  设备号
-     * @param name 名称
-     */
-    public boolean updateName(String num, String name) {
-        return baseMapper.updateName(num, name) > 0;
-    }
-
-    /**
-     * 通过设备 clientId 获取设备信息
-     *
-     * @param clientId 设备 MQTT 登录账号
-     */
-    public Device getByClientId(String clientId) {
-        QueryWrapper<Device> queryWrapper = new QueryWrapper<Device>().eq("clientId", clientId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-}

+ 0 - 29
src/main/java/com/zhiyun/mqtt/service/IdiomsService.java

@@ -1,29 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.mapper.IdiomsMapper;
-import com.zhiyun.mqtt.model.UserIdioms;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 常用语 Service
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class IdiomsService extends ServiceImpl<IdiomsMapper, UserIdioms> {
-
-    /**
-     * 通过用户ID 查询用户常用语
-     *
-     * @param userId 用户ID
-     */
-    public List<UserIdioms> getListByUserId(String userId) {
-        return baseMapper.selectList(new QueryWrapper<UserIdioms>()
-                .eq("userId", userId).orderByDesc("createTime"));
-    }
-}

+ 0 - 76
src/main/java/com/zhiyun/mqtt/service/RelationService.java

@@ -1,76 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.io.wechat.UserDeviceRelationIO;
-import com.zhiyun.mqtt.mapper.UserDeviceRelationMapper;
-import com.zhiyun.mqtt.model.UserDeviceRelation;
-import com.zhiyun.mqtt.common.vo.DeviceVo;
-import com.zhiyun.mqtt.utils.BeanUtil;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-
-/**
- * 用户设备绑定关系Service
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class RelationService extends ServiceImpl<UserDeviceRelationMapper, UserDeviceRelation> {
-
-    @Resource
-    private DeviceService deviceService;
-
-    /**
-     * 添加绑定关系
-     *
-     * @param io 实体类
-     */
-    public void saveEntity(UserDeviceRelationIO io) {
-        int isDefault = getDefaultDeviceNum(io.getUserId()) == null ? 1 : 0;
-        UserDeviceRelation entity = BeanUtil.cast(io, UserDeviceRelation.class);
-        entity.setIsDefault(isDefault);
-        baseMapper.insert(entity);
-        deviceService.updateName(io.getDeviceNum(), io.getDeviceName());
-    }
-
-    /**
-     * 通过设备号删除绑定关系
-     *
-     * @param deviceNum 设备号
-     */
-    public void delByDeviceNum(String deviceNum) {
-        baseMapper.delete(new QueryWrapper<UserDeviceRelation>().eq("deviceNum", deviceNum));
-    }
-
-    /**
-     * 查询用户绑定的设备集合
-     *
-     * @param userId 用户ID
-     */
-    public List<DeviceVo> getListByUserId(String userId) {
-        return baseMapper.getListByUserId(userId);
-    }
-
-    /**
-     * 通过用户ID 查询默认设备的设备num
-     *
-     * @param userId 用户Id
-     */
-    private String getDefaultDeviceNum(String userId) {
-        return baseMapper.getDefaultDeviceNum(userId);
-    }
-
-    /**
-     * 查询设备是否有绑定关系
-     *
-     * @param deviceNum 设备号
-     */
-    public UserDeviceRelation getByDeviceNum(String deviceNum) {
-        return baseMapper.selectOne(new QueryWrapper<UserDeviceRelation>().eq("deviceNum", deviceNum));
-    }
-}

+ 0 - 73
src/main/java/com/zhiyun/mqtt/service/SetBaseService.java

@@ -1,73 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.exception.ApiRuntimeException;
-import com.zhiyun.mqtt.mapper.SetBaseMapper;
-import com.zhiyun.mqtt.model.SetBase;
-import org.springframework.stereotype.Service;
-
-/**
- * 其他设置相关
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class SetBaseService extends ServiceImpl<SetBaseMapper, SetBase> {
-
-    /**
-     * 获取全部的设置信息
-     *
-     * @param deviceId 设备ID
-     */
-    public SetBase getByDeviceId(String deviceId) {
-        QueryWrapper<SetBase> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("deviceId", deviceId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-
-
-    /**
-     * 获取音量设置信息
-     */
-    public SetBase getVolumeSet(String deviceId) {
-        QueryWrapper<SetBase> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("msgVol", "phoneVol", "ringVol");
-        queryWrapper.eq("deviceId", deviceId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-
-    /**
-     * 获取SOS设置信息
-     */
-    public SetBase getSosSet(String deviceId) {
-        QueryWrapper<SetBase> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("key0Name", "key0Phone", "key1Name", "key1Phone", "key2Name", "key2Phone");
-        queryWrapper.eq("deviceId", deviceId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-
-    /**
-     * 获取其他设置设置信息
-     */
-    public SetBase getOtherSet(String deviceId) {
-        QueryWrapper<SetBase> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("autoAnswer", "gpsRate", "highFreq");
-        queryWrapper.eq("deviceId", deviceId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-
-    /**
-     * 通过设备ID 更新设备信息
-     *
-     * @param entity 设备实体类
-     */
-    public void updateByDeviceId(SetBase entity) {
-        QueryWrapper<SetBase> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("deviceId", entity.getDeviceId());
-        if (baseMapper.update(entity, queryWrapper) < 1) {
-            throw new ApiRuntimeException("更新设备设置信息失败");
-        }
-    }
-}

+ 0 - 26
src/main/java/com/zhiyun/mqtt/service/SetNewsService.java

@@ -1,26 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.io.SetNewsIO;
-import com.zhiyun.mqtt.mapper.SetNewsMapper;
-import com.zhiyun.mqtt.model.SetNews;
-import org.springframework.stereotype.Service;
-
-/**
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class SetNewsService extends ServiceImpl<SetNewsMapper, SetNews> {
-    /**
-     * 分页查询播报记录
-     *
-     * @param io 查询参数
-     */
-    public IPage<SetNews> getListPage(SetNewsIO io) {
-        Page<SetNews> page = new Page<>(io.getCurrent(), io.getSize());
-        return baseMapper.getListPage(page, io);
-    }
-}

+ 0 - 98
src/main/java/com/zhiyun/mqtt/service/SetService.java

@@ -1,98 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.zhiyun.mqtt.common.io.wechat.*;
-import com.zhiyun.mqtt.model.SetBase;
-import com.zhiyun.mqtt.model.SetNews;
-import com.zhiyun.mqtt.utils.BeanUtil;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.time.LocalDateTime;
-
-/**
- * 设备设置 Service
- *
- * @author chen_yi
- * Create on 2021/3/27
- */
-@Component
-public class SetService {
-
-    @Resource
-    private SetBaseService setBaseService;
-    @Resource
-    private SetToDeviceService setToDeviceService;
-    @Resource
-    private SetNewsService setNewsService;
-
-    /**
-     * 设置音量
-     */
-    public void setVolume(VolumeSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setVolume(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 设置定位频率
-     */
-    public void setGpsRate(GpsRateSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setGpsRate(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 自动接听
-     */
-    public void setAutoAnswer(AnswerSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setAutoAnswer(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 设置语音播报
-     */
-    public void setNews(NewsSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.sendNews(io);
-        //保存数据库
-        SetNews entity = BeanUtil.cast(io, SetNews.class);
-        entity.setCreateTime(LocalDateTime.now());
-        setNewsService.save(entity);
-    }
-
-    /**
-     * 设置SOS紧急呼叫
-     */
-    public void setSOS(SosSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setSOS(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 设置持续定位
-     */
-    public void setContinue(ContinueSetIO io) {
-        //发送模板消息给设备
-        setToDeviceService.setContinue(io);
-        //保存数据库
-        saveBaseSet(io);
-    }
-
-    /**
-     * 保存基本设置数据
-     */
-    private void saveBaseSet(Object io) {
-        //保存数据库
-        SetBase entity = BeanUtil.cast(io, SetBase.class);
-        setBaseService.updateByDeviceId(entity);
-    }
-}

+ 0 - 172
src/main/java/com/zhiyun/mqtt/service/SetToDeviceService.java

@@ -1,172 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.zhiyun.mqtt.common.Constant;
-import com.zhiyun.mqtt.common.io.wechat.*;
-import com.zhiyun.mqtt.config.mqtt.MqttGateway;
-import com.zhiyun.mqtt.model.MqttMsgDto;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 设置设备服务类,发送远程消息
- *
- * @author yang xiao kun
- * create on 2021/2/1
- */
-@Component
-public class SetToDeviceService {
-    @Resource
-    private MqttGateway mqttGateway;
-
-    /**
-     * 设置音量
-     *
-     * @param io 设置参数
-     */
-    public void setVolume(VolumeSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_VOLUME, io.getDeviceId());
-        msg.set("msgvol", io.getMsgVol())
-                .set("phonevol", io.getPhoneVol())
-                .set("ringvol", io.getRingVol());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 设置定位频率
-     *
-     * @param io 设置参数
-     */
-    public void setGpsRate(GpsRateSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_GPS_RATE, io.getDeviceId());
-        msg.set("GPS_rate", io.getGpsRate());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 自动接听
-     *
-     * @param io 设置参数
-     */
-    public void setAutoAnswer(AnswerSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_AUTO_ANSWER, io.getDeviceId());
-        msg.set("autoanswer", io.getAutoAnswer());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 设置语音播报
-     */
-    public void sendNews(NewsSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_NEWS, io.getDeviceId());
-        msg.set("newstype", io.getNewsType())
-                .set("newstime", io.getNewsTime())
-                .set("news", io.getNews());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 设置SOS紧急呼叫
-     */
-    public void setSOS(SosSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_SOS, io.getDeviceId());
-        msg.set("key0_name", io.getKey0Name())
-                .set("key0_phone", io.getKey0Phone())
-                .set("key1_name", io.getKey1Name())
-                .set("key1_phone", io.getKey1Phone())
-                .set("key2_name", io.getKey2Name())
-                .set("key2_phone", io.getKey2Phone());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 设置持续定位
-     */
-    public void setContinue(ContinueSetIO io) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_CONTINUE_GPS, io.getDeviceId());
-        msg.set("highfreq", io.getHighFreq());
-        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-    }
-
-    /**
-     * 服务器返回授权码
-     *
-     * @param regNum   设备码
-     * @param clientId MQTT 客户端码
-     * @param password MQTT 客户端连接密码
-     */
-    public void returnCodeToDevice(String regNum, String clientId, String password) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto();
-        msg.setM(Constant.M_CODE_RETURN_CODE);
-        msg.setR("$regdtx");
-        msg.setT("$regdrx");
-        Map<String, Object> data = new HashMap<>();
-        data.put("regnum", regNum);
-        data.put("deviceid", clientId);
-        data.put("password", password);
-        msg.setData(data);
-        mqttGateway.sendMsgToMqtt(msg.toJson(), Constant.TOPIC_REGISTER_CLIENT);
-    }
-
-    /**
-     * 注册完成
-     *
-     * @param clientId MQTT 客户端码
-     */
-    public void registerOK(String clientId) {
-        //发送模板消息给设备
-        MqttMsgDto msg = new MqttMsgDto();
-        msg.setM(Constant.M_CODE_REGISTER_OK);
-        msg.setR("$regdtx");
-        msg.setT("$regdrx");
-        Map<String, Object> data = new HashMap<>();
-        data.put("deviceid", clientId);
-        msg.setData(data);
-        mqttGateway.sendMsgToMqtt(msg.toJson(), Constant.TOPIC_REGISTER_CLIENT);
-    }
-
-//    /**
-//     * 设置服务器端口号
-//     */
-//    public void setServer(ServerSetIO io) {
-//        //发送模板消息给设备
-//        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_SERVER, io.getDeviceId());
-//        msg.set("serverhost", io.getServerHost()).set("serverport", io.getServerPort());
-//        mqttGateway.sendMsgToMqtt(msg.toJson(), io.getTopic());
-//    }
-//    /**
-//     * 通知设备更新设置
-//     *
-//     * @param tag 更新设置tag
-//     */
-//    public void notifyDeviceUpdateSet(SetUpdateTag tag) {
-//        //都等于零 说明无更新,则不发送
-//        if (tag == null || (tag.getHangontag().equals("0") && tag.getMsgtag().equals("0") && tag.getWhitetag().equals("0")
-//                && tag.getOwntag().equals("0") && tag.getServertag().equals("0") && tag.getSostag().equals("0")
-//                && tag.getTimetag().equals("0") && tag.getUploadtag().equals("0") && tag.getValtag().equals("0"))) {
-//            return;
-//        }
-//        //发送模板消息给设备
-//        MqttMsgDto msg = new MqttMsgDto(Constant.M_CODE_CONFIG_TAG, tag.getDeviceId());
-//        msg.set("deviceid", tag.getDeviceId())
-//                .set("uploadtag", tag.getUploadtag())
-//                .set("owntag", tag.getOwntag())
-//                .set("sostag", tag.getSostag())
-//                .set("valtag", tag.getValtag())
-//                .set("timetag", tag.getTimetag())
-//                .set("hongontag", tag.getHangontag())
-//                .set("whitetag", tag.getWhitetag())
-//                .set("servertag", tag.getServertag())
-//                .set("msgtag", tag.getMsgtag());
-//        mqttGateway.sendMsgToMqtt(msg.toJson(), Constant.TOPIC_REGISTER_CLIENT);
-//    }
-}

+ 0 - 37
src/main/java/com/zhiyun/mqtt/service/SetUpdateTagService.java

@@ -1,37 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.mapper.SetUpdateTagMapper;
-import com.zhiyun.mqtt.model.SetUpdateTag;
-
-/**
- * 设备设置消息通知相关
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Deprecated
-public class SetUpdateTagService extends ServiceImpl<SetUpdateTagMapper, SetUpdateTag> {
-
-    /**
-     * 更新设备设置消息通知
-     *
-     * @param deviceId 设备ID
-     * @param column   设置列
-     * @param tag      开关标签
-     */
-    public void updateMsgConfirm(String deviceId, String column, String tag) {
-        baseMapper.updateMsgConfirm(deviceId, column, tag);
-    }
-
-    /**
-     * 通过设备ID查询设备的设置更新tag
-     *
-     * @param deviceId 设备ID
-     */
-    public SetUpdateTag getByDeviceId(String deviceId) {
-        QueryWrapper<SetUpdateTag> queryWrapper = new QueryWrapper<SetUpdateTag>().eq("deviceId", deviceId);
-        return baseMapper.selectOne(queryWrapper);
-    }
-}

+ 0 - 62
src/main/java/com/zhiyun/mqtt/service/UserService.java

@@ -1,62 +0,0 @@
-package com.zhiyun.mqtt.service;
-
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zhiyun.mqtt.common.Constant;
-import com.zhiyun.mqtt.common.io.pc.UserIO;
-import com.zhiyun.mqtt.mapper.UserMapper;
-import com.zhiyun.mqtt.model.User;
-import com.zhiyun.mqtt.utils.HttpUtil;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.stereotype.Service;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-
-/**
- * 用户Service
- *
- * @author chenyi
- * Create on 2020/4/10
- */
-@Service
-public class UserService extends ServiceImpl<UserMapper, User> {
-
-    /**
-     * 后台
-     * 分页查询用户列表
-     *
-     * @param io 查询条件
-     */
-    public IPage<User> getListPage(UserIO io) {
-        Page<User> page = new Page<>(io.getCurrent(), io.getSize());
-        return baseMapper.getListPage(page, io);
-    }
-
-    /**
-     * 通过 openId 查询用户
-     */
-    public User getByOpenId(String openId) {
-        return baseMapper.selectOne(new QueryWrapper<User>().eq("openId", openId));
-    }
-
-    /**
-     * 通过微信传来的code 换取 appid
-     */
-    public String getWxAppId(String code) {
-        try {
-            // 请求参数
-            MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
-            paramsMap.add("appid", Constant.wxAppId);
-            paramsMap.add("secret", Constant.wxSecret);
-            paramsMap.add("js_code", code);
-            paramsMap.add("grant_type", Constant.grant_type);
-            String message = HttpUtil.post("https://api.weixin.qq.com/sns/jscode2session", null, paramsMap);
-            return JSONObject.parseObject(message).getString("openid");
-        } catch (Exception e) {
-            return null;
-        }
-    }
-}

+ 0 - 12
src/main/java/com/zhiyun/mqtt/utils/DateTimeUtil.java

@@ -1,12 +0,0 @@
-package com.zhiyun.mqtt.utils;
-
-/**
- * 时间格式化工具类
- *
- * @author yang xiao kun
- * create on 2021/3/31
- */
-public class DateTimeUtil {
-
-    public static final String Pattern_YDMHMS = "yyyy-MM-dd HH:mm:ss";
-}

+ 0 - 40
src/main/java/com/zhiyun/mqtt/utils/HttpUtil.java

@@ -1,40 +0,0 @@
-package com.zhiyun.mqtt.utils;
-
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.client.RestTemplate;
-
-import java.util.Map;
-
-/**
- * Http 工具类
- *
- * @author chenyi
- * date create on 2019/4/21
- */
-public class HttpUtil {
-
-    private static final RestTemplate restTemplate = new RestTemplate();
-
-    /**
-     * 发送 POST 请求
-     * JSON 格式请求信息
-     *
-     * @param url    地址
-     * @param params 参数
-     */
-    public static String post(String url, Map<String, String> header, MultiValueMap<String, String> params) {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-        //设置请求头信息
-        if (header != null && !header.isEmpty()) {
-            for (Map.Entry<String, String> entry : header.entrySet()) {
-                headers.add(entry.getKey(), entry.getValue());
-            }
-        }
-        HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(params, headers);
-        return restTemplate.postForEntity(url, request, String.class).getBody();
-    }
-}

+ 3 - 3
src/main/java/com/zhiyun/mqtt/MqttServerApplication.java → src/main/java/com/zy/bms/BmsApplication.java

@@ -1,11 +1,11 @@
-package com.zhiyun.mqtt;
+package com.zy.bms;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
-public class MqttServerApplication {
+public class BmsApplication {
     public static void main(String[] args) {
-        SpringApplication.run(MqttServerApplication.class, args);
+        SpringApplication.run(BmsApplication.class, args);
     }
 }

+ 81 - 0
src/main/java/com/zy/bms/common/Constant.java

@@ -0,0 +1,81 @@
+package com.zy.bms.common;
+
+/**
+ * 常量数据
+ *
+ * @author yang xiao kun
+ * create on 2021/2/2
+ */
+public class Constant {
+
+    /**
+     * 前缀
+     */
+    public static class PREF {
+        // rabbit MQ 用户名前缀
+        public static final String RABBIT_MQ_USERNAME = "IMEI";
+        //redis key前缀
+        public static final String REDIS_TOKEN = "bms:admin:token:";//登录token 前缀
+
+    }
+
+    /**
+     * MQTT 协议报文 中 M值
+     */
+    public static class M {
+        //设备发送注册请求
+        public static final String REGISTER = "10";
+        //服务器响应设备注册请求
+        public static final String HANDLE_REGISTER = "11";
+        //普适性 - 设备心跳协议
+        public static final String UBI_HEARTBEAT = "21";
+        //普适性 - 远程控制设备报警
+        public static final String UBI_CONTROL_ALARM = "23";
+        //普适性 - ntripServer设置
+        public static final String UBI_NTRIP_SERVER = "26";
+        //普适性 - ntripClient设置
+        public static final String UBI_NTRIP_CLIENT = "27";
+        //普适性 - tcp设置
+        public static final String UBI_TCP = "28";
+        //普适性 - 获取设备设置 serve -> device
+        public static final String UBI_GET_SET_INFO = "29";
+        //普适型 - 设备设置信息 device -> serve
+        public static final String UBI_SET_INFO = "30";
+    }
+
+    /**
+     * 状态常量
+     */
+    public static class STATUS {
+        public static final String ON = "on";
+        public static final String OFF = "off";
+        public static final String TRUE = "true";
+        public static final String FALSE = "false";
+    }
+
+    /**
+     * 主题前缀
+     * SERVER为服务器订阅主题  用来接收设备发来消息
+     * CLIENT为设备订阅主题    用来发送消息给设备
+     */
+    public static class TOPIC {
+        //设备注册时device -> server主题,仅设备注册使用
+        public static final String REGISTER_SERVER = "$regdtx2";
+        //设备注册时server -> device主题,仅设备注册使用
+        public static final String REGISTER_CLIENT = "$regdrx2";
+        // device -> server 通讯主题
+        public static final String DEVICE_SERVER = "$dtx2/IMEI";
+        // server -> device 通讯主题
+        public static final String DEVICE_CLIENT = "$drx2/IMEI";
+    }
+
+    /**
+     * 通过订阅的主题裁剪出openNum
+     *
+     * @param topic 主题
+     */
+    public static String splitOpenNum(String topic) {
+        String[] result = topic.split(PREF.RABBIT_MQ_USERNAME);
+        return result.length > 1 ? result[1] : null;
+    }
+}

+ 3 - 13
src/main/java/com/zhiyun/mqtt/common/ServerResponse.java → src/main/java/com/zy/bms/common/ServerResponse.java

@@ -1,15 +1,13 @@
-package com.zhiyun.mqtt.common;
+package com.zy.bms.common;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.zhiyun.mqtt.common.enums.ResponseCode;
+import com.zy.bms.common.enums.ResponseCode;
 import lombok.Data;
 
 import java.io.Serializable;
 
 /**
  * 接口数据返回定义类
- * 作用:将需要返回给前端的数据进行封装,同时封装status和msg两个字段并JSON序列化
- * T(泛型) 返回数据的类型
  */
 @Data
 @JsonSerialize
@@ -36,18 +34,10 @@ public class ServerResponse implements Serializable {
         return new ServerResponse(ResponseCode.ERROR.code, null, ResponseCode.ERROR.msg);
     }
 
-    public static ServerResponse createByErrorMsg(String msg) {
-        return new ServerResponse(ResponseCode.ERROR.code, null, msg);
-    }
-
-    public static ServerResponse createByWarningMsg(String msg) {
+    public static ServerResponse createByWarning(String msg) {
         return new ServerResponse(ResponseCode.WARNING.code, null, msg);
     }
 
-    public static ServerResponse createByAuthor() {
-        return new ServerResponse(ResponseCode.AUTHOR.code, null, ResponseCode.AUTHOR.msg);
-    }
-
     private ServerResponse(int status, Object data, String msg) {
         this.status = status;
         this.msg = msg;

+ 44 - 0
src/main/java/com/zy/bms/common/aspect/LogAspect.java

@@ -0,0 +1,44 @@
+package com.zy.bms.common.aspect;
+
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.utils.DateTimeUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+
+/**
+ * 打印日志切面
+ *
+ * @author yang xiao kun
+ * create on 2021/2/25
+ */
+@Slf4j
+@Aspect
+@Component
+public class LogAspect {
+
+    /**
+     * 方法切入点(输出方法执行概要日志)
+     * execution(* com.zy.bms.service..*.*(..)) ||
+     */
+    @Around(value = "execution(* com.zy.bms.controller..*.*(..))")
+    public Object around(ProceedingJoinPoint joinPoint) {
+        try {
+            return joinPoint.proceed();
+        } catch (Throwable throwable) {
+            log.error(buildMsg(joinPoint), throwable);
+        }
+        return ServerResponse.createByError();
+    }
+
+    private String buildMsg(ProceedingJoinPoint joinPoint) {
+        return "全局异常拦截 -- " + DateTimeUtil.now(DateTimeUtil.Pattern_YDMHMS)
+                + ": Class:" + joinPoint.getSignature().getDeclaringTypeName()
+                + " Method:" + joinPoint.getSignature().getName()
+                + " Args:" + Arrays.toString(joinPoint.getArgs());
+    }
+}

+ 30 - 0
src/main/java/com/zy/bms/common/controller/BaseController.java

@@ -0,0 +1,30 @@
+package com.zy.bms.common.controller;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.ModelAttribute;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * controller公共类提出
+ *
+ * @author chenyi
+ * date: create on 2019/6/8
+ */
+@Component
+public class BaseController {
+    private HttpServletRequest request;
+
+    //获取登录信息
+    @ModelAttribute
+    public void setModelAttribute(HttpServletRequest request) {
+        this.request = request;
+    }
+
+    /**
+     * 获取token信息
+     */
+    public String token() {
+        return request.getHeader("token");
+    }
+}

+ 3 - 11
src/main/java/com/zhiyun/mqtt/common/ExceptionController.java → src/main/java/com/zy/bms/common/controller/ExceptionController.java

@@ -1,6 +1,6 @@
-package com.zhiyun.mqtt.common;
+package com.zy.bms.common.controller;
 
-import com.zhiyun.mqtt.common.exception.ApiRuntimeException;
+import com.zy.bms.common.ServerResponse;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
@@ -20,14 +20,6 @@ public class ExceptionController {
      */
     @ExceptionHandler(value = MethodArgumentTypeMismatchException.class)
     public ServerResponse MethodArgumentTypeMismatchExceptionHandler() {
-        return ServerResponse.createByErrorMsg("参数类型错误");
-    }
-
-    /**
-     * 对运行时异常拦截
-     */
-    @ExceptionHandler(value = ApiRuntimeException.class)
-    public ServerResponse ApiRuntimeExceptionHandler(ApiRuntimeException apiRuntimeException) {
-        return ServerResponse.createByErrorMsg(apiRuntimeException.getMsg());
+        return ServerResponse.createByError();
     }
 }

+ 17 - 0
src/main/java/com/zy/bms/common/enums/ResponseCode.java

@@ -0,0 +1,17 @@
+package com.zy.bms.common.enums;
+
+/**
+ * 接口返回常量
+ */
+public enum ResponseCode {
+    SUCCESS(200, "Success"),//成功
+    WARNING(300, "Warning"),//警告,不进入成功回调函数,直接alert
+    ERROR(500, "Error");//服务器异常
+    public final int code;
+    public final String msg;
+
+    ResponseCode(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+}

+ 1 - 13
src/main/java/com/zhiyun/mqtt/common/exception/ApiRuntimeException.java → src/main/java/com/zy/bms/common/exception/ApiRuntimeException.java

@@ -1,4 +1,4 @@
-package com.zhiyun.mqtt.common.exception;
+package com.zy.bms.common.exception;
 
 /**
  * 运行时异常
@@ -12,24 +12,12 @@ public class ApiRuntimeException extends RuntimeException {
      */
     private String msg;
 
-    public ApiRuntimeException(String code, String msg) {
-        this.msg = "{'code':" + code + ",'msg:'" + msg + "}";
-    }
-
     public ApiRuntimeException(String msg) {
         this.msg = msg;
     }
 
-    public ApiRuntimeException() {
-        this.msg = "系统错误";
-    }
-
     @Override
     public String getMessage() {
         return msg;
     }
-
-    public String getMsg() {
-        return msg;
-    }
 }

+ 5 - 8
src/main/java/com/zhiyun/mqtt/common/interceptor/AuthInterceptor.java → src/main/java/com/zy/bms/common/interceptor/AuthInterceptor.java

@@ -1,8 +1,6 @@
-package com.zhiyun.mqtt.common.interceptor;
+package com.zy.bms.common.interceptor;
 
-import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.common.ServerResponse;
-import com.zhiyun.mqtt.redis.SessionManager;
+import com.zy.bms.common.redis.SessionManager;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
@@ -23,10 +21,9 @@ public class AuthInterceptor extends HandlerInterceptorAdapter {
     private SessionManager sessionManager;
 
     @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        String token = request.getHeader("token");
-        if (token == null || !sessionManager.valid(token)) {
-            response.getWriter().print(JSON.toJSONString(ServerResponse.createByAuthor()));
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+        if (!sessionManager.valid(request.getHeader("token"))) {
+            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
             return false;
         }
         return true;

+ 4 - 7
src/main/java/com/zhiyun/mqtt/common/interceptor/VerifyInterceptor.java → src/main/java/com/zy/bms/common/interceptor/VerifyInterceptor.java

@@ -1,13 +1,10 @@
-package com.zhiyun.mqtt.common.interceptor;
+package com.zy.bms.common.interceptor;
 
-import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.common.ServerResponse;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 
 /**
  * 身份验证拦截器
@@ -20,13 +17,13 @@ import java.io.IOException;
 public class VerifyInterceptor extends HandlerInterceptorAdapter {
 
     @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         if (request.getMethod().equals("OPTIONS")) {
             response.setStatus(HttpServletResponse.SC_OK);
             return true;
         }
-        if (request.getHeader("verify") != null && request.getHeader("verify").equals("mqtt")) return true;
-        response.getWriter().println(JSON.toJSONString(ServerResponse.createByErrorMsg("illegal request")));
+        if (request.getHeader("verify") != null && request.getHeader("verify").equals("bms")) return true;
+        response.setStatus(HttpServletResponse.SC_FORBIDDEN);
         return false;
     }
 }

+ 16 - 10
src/main/java/com/zhiyun/mqtt/redis/SessionManager.java → src/main/java/com/zy/bms/common/redis/SessionManager.java

@@ -1,9 +1,9 @@
-package com.zhiyun.mqtt.redis;
+package com.zy.bms.common.redis;
 
 import com.alibaba.fastjson.JSON;
-import com.zhiyun.mqtt.common.Constant;
-import com.zhiyun.mqtt.model.Admin;
-import com.zhiyun.mqtt.utils.CodeGenerator;
+import com.zy.bms.common.Constant;
+import com.zy.bms.entity.Admin;
+import com.zy.bms.utils.RandomCode;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Component;
 
@@ -21,13 +21,16 @@ public class SessionManager {
 
     @Resource
     private StringRedisTemplate stringRedisTemplate;
+    //Token过期时间
+    private final int timeout = 30;
 
     /**
      * 生成token
      */
     public String generateToken(Admin admin) {
-        String token = CodeGenerator.generateUUID();
-        stringRedisTemplate.opsForValue().set(Constant.REDIS_TOKEN_PREFIX + token, JSON.toJSONString(admin), 30, TimeUnit.MINUTES);
+        String token = RandomCode.UUID();
+        stringRedisTemplate.boundValueOps(Constant.PREF.REDIS_TOKEN + token)
+                .set(JSON.toJSONString(admin), timeout, TimeUnit.MINUTES);
         return token;
     }
 
@@ -36,7 +39,7 @@ public class SessionManager {
      */
     public void removeToken(String token) {
         if (token == null) return;
-        stringRedisTemplate.delete(Constant.REDIS_TOKEN_PREFIX + token);
+        stringRedisTemplate.delete(Constant.PREF.REDIS_TOKEN + token);
     }
 
     /**
@@ -44,15 +47,18 @@ public class SessionManager {
      */
     public Admin getUser(String token) {
         if (token == null) return null;
-        return JSON.parseObject(stringRedisTemplate.opsForValue().get(Constant.REDIS_TOKEN_PREFIX + token), Admin.class);
+        return JSON.parseObject(stringRedisTemplate.boundValueOps(Constant.PREF.REDIS_TOKEN + token).get(), Admin.class);
     }
 
     /**
      * 验证token有效
      */
     public boolean valid(String token) {
-        if (token == null || getUser(token) == null) return false;
-        stringRedisTemplate.expire(Constant.REDIS_TOKEN_PREFIX + token, 30, TimeUnit.MINUTES);
+        String key = Constant.PREF.REDIS_TOKEN + token;
+        if (token == null) return false;
+        Boolean flag = stringRedisTemplate.hasKey(key);
+        if (flag == null || !flag) return false;
+        stringRedisTemplate.expire(key, timeout, TimeUnit.MINUTES);
         return true;
     }
 }

+ 11 - 5
src/main/java/com/zhiyun/mqtt/config/BeanConfig.java → src/main/java/com/zy/bms/config/BeanConfig.java

@@ -1,10 +1,12 @@
-package com.zhiyun.mqtt.config;
+package com.zy.bms.config;
 
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.web.client.RestTemplate;
 import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 import java.time.LocalDateTime;
@@ -17,11 +19,15 @@ import java.time.format.DateTimeFormatter;
 @Configuration
 public class BeanConfig {
     /**
-     * http请求相关
+     * mybatis-plus分页插件
      */
     @Bean
-    public RestTemplate restTemplate() {
-        return new RestTemplate();
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        //向Mybatis过滤器链中添加分页拦截器
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        //还可以添加i他的拦截器
+        return interceptor;
     }
 
     /**

+ 4 - 2
src/main/java/com/zhiyun/mqtt/config/WebMvcConfig.java → src/main/java/com/zy/bms/config/CorsConfig.java

@@ -1,14 +1,16 @@
-package com.zhiyun.mqtt.config;
+package com.zy.bms.config;
 
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 /**
  * 解决测试时的跨域,开发环境关掉
  */
+@Profile("dev")
 @Configuration
-public class WebMvcConfig implements WebMvcConfigurer {
+public class CorsConfig implements WebMvcConfigurer {
     @Override
     public void addCorsMappings(CorsRegistry registry) {
         //设置允许跨域的路径

+ 13 - 9
src/main/java/com/zhiyun/mqtt/config/InterceptorConfig.java → src/main/java/com/zy/bms/config/InterceptorConfig.java

@@ -1,8 +1,9 @@
-package com.zhiyun.mqtt.config;
+package com.zy.bms.config;
 
-import com.zhiyun.mqtt.common.interceptor.AuthInterceptor;
-import com.zhiyun.mqtt.common.interceptor.VerifyInterceptor;
+import com.zy.bms.common.interceptor.AuthInterceptor;
+import com.zy.bms.common.interceptor.VerifyInterceptor;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
@@ -16,7 +17,8 @@ import java.util.List;
  * @author chenyi
  * Create on 2019/10/10
  */
-//@Configuration
+@Profile("prod")
+@Configuration
 public class InterceptorConfig implements WebMvcConfigurer {
     /**
      * 身份验证拦截器
@@ -29,7 +31,8 @@ public class InterceptorConfig implements WebMvcConfigurer {
     private static List<String> whiteList = new ArrayList<>();
 
     static {
-        whiteList.add("/zy4g/api/pc/admin/**");
+        whiteList.add("omp/api/pc/admin/login.do");
+        whiteList.add("/common/**");
     }
 
     /**
@@ -38,10 +41,11 @@ public class InterceptorConfig implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(verifyInterceptor)
-                .addPathPatterns("/zy4g/api/pc/**");
+                .addPathPatterns("omp/api/pc/**")
+                .excludePathPatterns("/common/**");
 
-//        registry.addInterceptor(authInterceptor)
-//                .addPathPatterns("/zy4g/api/pc/**")
-//                .excludePathPatterns(whiteList);
+        registry.addInterceptor(authInterceptor)
+                .addPathPatterns("omp/api/pc/**")
+                .excludePathPatterns(whiteList);
     }
 }

+ 1 - 1
src/main/java/com/zhiyun/mqtt/config/mqtt/MqttConfig.java → src/main/java/com/zy/bms/config/mqtt/MqttConfig.java

@@ -1,4 +1,4 @@
-package com.zhiyun.mqtt.config.mqtt;
+package com.zy.bms.config.mqtt;
 
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 import org.springframework.context.annotation.Bean;

+ 6 - 6
src/main/java/com/zhiyun/mqtt/config/mqtt/MqttConsumerCfg.java → src/main/java/com/zy/bms/config/mqtt/MqttConsumerCfg.java

@@ -1,6 +1,7 @@
-package com.zhiyun.mqtt.config.mqtt;
+package com.zy.bms.config.mqtt;
 
-import com.zhiyun.mqtt.utils.CodeGenerator;
+import com.zy.bms.handler.MqttCallbackHandler;
+import com.zy.bms.utils.RandomCode;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -31,8 +32,7 @@ public class MqttConsumerCfg {
     private MqttPahoClientFactory mqttClientFactory;
 
     //默认监听主题
-//    private final String[] defaultTopic = new String[]{"$regdtx", "$dtx/#", "HelloWrold"};
-    private final String[] defaultTopic = new String[]{"$regdtx", "$dtx/469d1ff28acd4694a79138fa335756a7","$drx/469d1ff28acd4694a79138fa335756a7"};
+    private final String[] defaultTopic = new String[]{"$regdtx2", "$dtx2/#"};
 
     /**
      * MQTT 消息订阅绑定(消费者)
@@ -42,7 +42,7 @@ public class MqttConsumerCfg {
     public MessageProducer inbound() {
         // 初始化入站通道适配器,使用的是Eclipse Paho MQTT客户端库
         MqttPahoMessageDrivenChannelAdapter adapter =
-                new MqttPahoMessageDrivenChannelAdapter(CodeGenerator.generateClientId(), mqttClientFactory, defaultTopic);
+                new MqttPahoMessageDrivenChannelAdapter(RandomCode.UUID_8(), mqttClientFactory, defaultTopic);
         // 设置连接超时时长 毫秒
         adapter.setCompletionTimeout(5000);
         // 配置默认Paho消息转换器(qos=0, retain=false, charset=UTF-8)
@@ -53,7 +53,7 @@ public class MqttConsumerCfg {
             1 至少一次,数据可能重复;
             2 只有一次,有且只有一次;最耗性能;
          */
-        adapter.setQos(1);
+        adapter.setQos(0);
         // 设置订阅通道
         adapter.setOutputChannel(mqttInboundChannel());
         return adapter;

+ 1 - 1
src/main/java/com/zhiyun/mqtt/config/mqtt/MqttGateway.java → src/main/java/com/zy/bms/config/mqtt/MqttGateway.java

@@ -1,4 +1,4 @@
-package com.zhiyun.mqtt.config.mqtt;
+package com.zy.bms.config.mqtt;
 
 import org.springframework.integration.annotation.MessagingGateway;
 import org.springframework.integration.mqtt.support.MqttHeaders;

+ 4 - 5
src/main/java/com/zhiyun/mqtt/config/mqtt/MqttProducerCfg.java → src/main/java/com/zy/bms/config/mqtt/MqttProducerCfg.java

@@ -1,6 +1,6 @@
-package com.zhiyun.mqtt.config.mqtt;
+package com.zy.bms.config.mqtt;
 
-import com.zhiyun.mqtt.utils.CodeGenerator;
+import com.zy.bms.utils.RandomCode;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -37,12 +37,11 @@ public class MqttProducerCfg {
     @Bean
     @ServiceActivator(inputChannel = "mqttOutboundChannel")
     public MessageHandler mqttOutbound() {
-        MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(CodeGenerator.generateClientId(), mqttClientFactory);
+        MqttPahoMessageHandler messageHandler = new MqttPahoMessageHandler(RandomCode.UUID_8(), mqttClientFactory);
         // 设置异步发送,默认是false(发送时阻塞)
         messageHandler.setAsync(true);
         // 设置默认的服务质量
-        messageHandler.setDefaultQos(1);
-        // messageHandler.setDefaultTopic(producerDefaultTopic);
+        messageHandler.setDefaultQos(0);
         messageHandler.setDefaultRetained(false);
         return messageHandler;
     }

+ 113 - 0
src/main/java/com/zy/bms/controller/AdminController.java

@@ -0,0 +1,113 @@
+package com.zy.bms.controller;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.common.controller.BaseController;
+import com.zy.bms.common.redis.SessionManager;
+import com.zy.bms.entity.Admin;
+import com.zy.bms.pojo.io.AdminIO;
+import com.zy.bms.service.IAdminService;
+import com.zy.bms.utils.MD5Util;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 管理员表 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@RestController
+@RequestMapping("/bms/admin")
+public class AdminController extends BaseController {
+    @Resource
+    private IAdminService adminService;
+
+    @Resource
+    private SessionManager sessionManager;
+
+    /**
+     * 登录
+     */
+    @PostMapping("login.do")
+    public ServerResponse login(String username, String password) {
+        Admin admin = adminService.getByUsername(username);
+        if (admin == null) return ServerResponse.createByWarning("用户不存在");
+        //MD5密码
+        password = MD5Util.encode(password);
+        if (!admin.getPassword().equals(password)) return ServerResponse.createByWarning("密码错误");
+        // 返回 token 和 昵称
+        Map<String, String> result = new HashMap<>();
+        result.put("token", sessionManager.generateToken(admin));
+        result.put("nickname", admin.getNickname());
+        return ServerResponse.createBySuccess(result);
+    }
+
+    @GetMapping("logout.do")
+    public ServerResponse logout() {
+        sessionManager.removeToken(token());
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 分页查询管理员列表
+     */
+    @PostMapping("listPage.do")
+    public ServerResponse listPage(AdminIO io) {
+        return ServerResponse.createBySuccess(adminService.listPage(io));
+    }
+
+    /**
+     * 添加用户
+     */
+    @PostMapping("save.do")
+    public ServerResponse save(Admin admin) {
+        Admin current = sessionManager.getUser(token());
+        if (current == null || current.getRoleId() != 1)
+            return ServerResponse.createByWarning("无权限");
+        adminService.save(admin);
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 禁用
+     */
+    @PostMapping("forbidden.do")
+    public ServerResponse forbidden(Integer id) {
+        adminService.update(new UpdateWrapper<Admin>().set("status", 0).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 启用
+     */
+    @PostMapping("permit.do")
+    public ServerResponse permit(Integer id) {
+        adminService.update(new UpdateWrapper<Admin>().set("status", 1).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 查询用户名是否重复
+     */
+    @PostMapping("checkRepeat.do")
+    public ServerResponse checkRepeat(String username) {
+        return ServerResponse.createBySuccess(adminService.checkRepeat(username));
+    }
+
+    /**
+     * token 验证
+     */
+    @GetMapping("verify.do")
+    public ServerResponse verify() {
+        return ServerResponse.createBySuccess();
+    }
+}

+ 75 - 0
src/main/java/com/zy/bms/controller/GroupController.java

@@ -0,0 +1,75 @@
+package com.zy.bms.controller;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.entity.Group;
+import com.zy.bms.pojo.io.GroupIO;
+import com.zy.bms.service.IGroupService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 项目组 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@RestController
+@RequestMapping("/bms/group")
+public class GroupController {
+    @Resource
+    private IGroupService groupService;
+
+    /**
+     * 分页查询所有项目组
+     */
+    @PostMapping("listPage.do")
+    public ServerResponse listPage(GroupIO io) {
+        return ServerResponse.createBySuccess(groupService.listPage(io));
+    }
+
+    /**
+     * 添加项目组
+     */
+    @PostMapping("save.do")
+    public ServerResponse save(Group group) {
+        try {
+            groupService.save(group);
+        } catch (Exception e) {
+            return ServerResponse.createByWarning("项目组编号重复!");
+        }
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 禁用项目组
+     */
+    @PostMapping("forbidden.do")
+    public ServerResponse forbidden(String id) {
+        groupService.update(new UpdateWrapper<Group>().set("status", 0).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 启用项目组
+     */
+    @PostMapping("permit.do")
+    public ServerResponse permit(String id) {
+        groupService.update(new UpdateWrapper<Group>().set("status", 1).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 更新项目组信息
+     */
+    @PostMapping("update.do")
+    public ServerResponse update(Group group) {
+        return ServerResponse.createBySuccess(groupService.updateById(group));
+    }
+
+}

+ 20 - 0
src/main/java/com/zy/bms/controller/InstructionsController.java

@@ -0,0 +1,20 @@
+package com.zy.bms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 指令表 前端控制器
+ * </p>
+ *
+ * @author chenyi
+ * @since 2021-06-22
+ */
+@RestController
+@RequestMapping("/builder/instructions")
+public class InstructionsController {
+
+}

+ 75 - 0
src/main/java/com/zy/bms/controller/ItemController.java

@@ -0,0 +1,75 @@
+package com.zy.bms.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.entity.Group;
+import com.zy.bms.entity.Item;
+import com.zy.bms.pojo.io.GroupIO;
+import com.zy.bms.pojo.io.ItemIO;
+import com.zy.bms.service.IItemService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 项目表 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@RestController
+@RequestMapping("/bms/item")
+public class ItemController {
+    @Resource
+    private IItemService itemService;
+
+    /**
+     * 分页查询所有项目
+     */
+    @PostMapping("listPage.do")
+    public ServerResponse listPage(ItemIO io) {
+        return ServerResponse.createBySuccess(itemService.listPage(io));
+    }
+
+    /**
+     * 添加项目
+     */
+    @PostMapping("save.do")
+    public ServerResponse save(Item item) {
+        itemService.save(item);
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 禁用项目
+     */
+    @PostMapping("forbidden.do")
+    public ServerResponse forbidden(String id) {
+        itemService.update(new UpdateWrapper<Item>().set("status", 0).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 启用项目
+     */
+    @PostMapping("permit.do")
+    public ServerResponse permit(String id) {
+        itemService.update(new UpdateWrapper<Item>().set("status", 1).eq("id", id));
+        return ServerResponse.createBySuccess();
+    }
+
+    /**
+     * 更新项目信息
+     */
+    @PostMapping("update.do")
+    public ServerResponse update(Item item) {
+        itemService.updateById(item);
+        return ServerResponse.createBySuccess();
+    }
+}

+ 18 - 0
src/main/java/com/zy/bms/controller/RoleController.java

@@ -0,0 +1,18 @@
+package com.zy.bms.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 角色表 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@RestController
+@RequestMapping("/builder/role")
+public class RoleController {
+
+}

+ 20 - 0
src/main/java/com/zy/bms/controller/UserController.java

@@ -0,0 +1,20 @@
+package com.zy.bms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户表 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@RestController
+@RequestMapping("/builder/user")
+public class UserController {
+
+}

+ 20 - 0
src/main/java/com/zy/bms/controller/lp/LpInfoStateController.java

@@ -0,0 +1,20 @@
+package com.zy.bms.controller.lp;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 设备-路牌 前端控制器
+ * </p>
+ *
+ * @author chenyi
+ * @since 2021-06-22
+ */
+@RestController
+@RequestMapping("/builder/lp-info-state")
+public class LpInfoStateController {
+
+}

+ 42 - 0
src/main/java/com/zy/bms/controller/ubi/UbiDeviceController.java

@@ -0,0 +1,42 @@
+package com.zy.bms.controller.ubi;
+
+
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.pojo.io.DeviceIO;
+import com.zy.bms.service.IDeviceBaseService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 设备静态信息 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-01
+ */
+@RestController
+@RequestMapping("/builder/device")
+public class UbiDeviceController {
+    @Resource
+    private IDeviceBaseService deviceStaticService;
+
+    /**
+     * 分页查询设备列表
+     */
+    @PostMapping("listPage.do")
+    public ServerResponse listPage(DeviceIO io) {
+        return ServerResponse.createBySuccess(deviceStaticService.listPage(io));
+    }
+
+    /**
+     * 查询设备详情信息
+     */
+    @PostMapping("getDetail.do")
+    public ServerResponse getDetail(String openNum) {
+        return ServerResponse.createBySuccess(deviceStaticService.getDetail(openNum));
+    }
+}

+ 16 - 0
src/main/java/com/zy/bms/controller/ubi/UbiInfoRecordController.java

@@ -0,0 +1,16 @@
+package com.zy.bms.controller.ubi;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 心跳包记录 前端控制器
+ *
+ * @author yangxiaokun
+ * @since 2021-06-01
+ */
+@RestController
+@RequestMapping("/bms/heartbeat")
+public class UbiInfoRecordController {
+
+}

+ 44 - 0
src/main/java/com/zy/bms/controller/ubi/UbiNtripController.java

@@ -0,0 +1,44 @@
+package com.zy.bms.controller.ubi;
+
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.entity.ubi.UbiNtrip;
+import com.zy.bms.service.ubi.IUbiNtripService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 数据链路设置信息 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-01
+ */
+@RestController
+@RequestMapping("/bms/ntrip")
+public class UbiNtripController {
+    @Resource
+    private IUbiNtripService ntripSetService;
+
+    /**
+     * 通过设备码查询数据链路设置
+     *
+     * @param openNum 设备码
+     */
+    @GetMapping("listByOpenNum.do")
+    public ServerResponse getByOpenNum(String openNum) {
+        return ServerResponse.createBySuccess(ntripSetService.listByOpenNum(openNum));
+    }
+
+    /**
+     * 更新数据链路设置
+     */
+    @PostMapping("update.do")
+    public ServerResponse updateById(UbiNtrip entity) {
+        return ServerResponse.createBySuccess(ntripSetService.updateById(entity));
+    }
+}

+ 44 - 0
src/main/java/com/zy/bms/controller/ubi/UbiTcpController.java

@@ -0,0 +1,44 @@
+package com.zy.bms.controller.ubi;
+
+import com.zy.bms.common.ServerResponse;
+import com.zy.bms.entity.ubi.UbiTcp;
+import com.zy.bms.service.ubi.IUbiTcpService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * TCP链路设置 前端控制器
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-01
+ */
+@RestController
+@RequestMapping("/bms/tcp")
+public class UbiTcpController {
+    @Resource
+    private IUbiTcpService tcpSetService;
+
+    /**
+     * 通过设备码查询TCP设置
+     *
+     * @param openNum 设备码
+     */
+    @GetMapping("listByOpenNum.do")
+    public ServerResponse listByOpenNum(String openNum) {
+        return ServerResponse.createBySuccess(tcpSetService.listByOpenNum(openNum));
+    }
+
+    /**
+     * 更新 TCP 数据链路设置
+     */
+    @PostMapping("update.do")
+    public ServerResponse updateById(UbiTcp entity) {
+        return ServerResponse.createBySuccess(tcpSetService.updateById(entity));
+    }
+}

+ 56 - 0
src/main/java/com/zy/bms/entity/Admin.java

@@ -0,0 +1,56 @@
+package com.zy.bms.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 管理员表
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-03
+ */
+@Data
+public class Admin implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户名(手机号)
+     */
+    private String username;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 姓名
+     */
+    private String nickname;
+
+    /**
+     * 角色ID
+     */
+    private Integer roleId;
+
+    /**
+     * 0:停用 1:启用
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+}

+ 62 - 0
src/main/java/com/zy/bms/entity/DeviceBase.java

@@ -0,0 +1,62 @@
+package com.zy.bms.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 设备基础信息
+ * </p>
+ *
+ * @author yangxiaokun
+ * @since 2021-06-01
+ */
+@Data
+public class DeviceBase implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId
+    private Integer id;
+
+    /**
+     * 设备码(公开)
+     */
+    private String openNum;
+
+    /**
+     * mqtt登录用户名
+     */
+    private String username;
+
+    /**
+     * mqtt登录密码
+     */
+    private String password;
+
+    /**
+     * 设备组
+     */
+    private String group;
+
+    /**
+     * 设备SN码
+     */
+    private String sn;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+
+}

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