diff --git a/mqtts-api/mqtts-api-link/pom.xml b/mqtts-api/mqtts-api-link/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..090023e695ec9b7e1c9499998deee993cd2db97e
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/pom.xml
@@ -0,0 +1,33 @@
+
+
+
+ mqtts-api
+ net.mqtts
+ 3.1.0
+
+ 4.0.0
+
+ mqtts-api-link
+
+
+
+ mqtts-api-link 设备接口模块
+
+
+
+
+
+
+ net.mqtts
+ mqtts-common-core
+ 3.1.0
+
+
+ org.projectlombok
+ lombok
+
+
+
+
\ No newline at end of file
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceActionService.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceActionService.java
new file mode 100644
index 0000000000000000000000000000000000000000..9a8af7b3e0feff8dd4ae727fa1f12040e0170c14
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceActionService.java
@@ -0,0 +1,26 @@
+package net.mqtts.link.api;
+
+import net.mqtts.common.core.constant.ServiceNameConstants;
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.domain.MqttsDeviceAction;
+import net.mqtts.link.api.factory.RemoteMqttsDeviceActionFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 设备动作服务
+ *
+ * @author mqtts
+ */
+@FeignClient(contextId = "remoteMqttsDeviceActionService", value = ServiceNameConstants.MQTTS_LINK, fallbackFactory = RemoteMqttsDeviceActionFallbackFactory.class)
+public interface RemoteMqttsDeviceActionService {
+
+ /**
+ * 新增设备动作
+ *
+ * @param mqttsDeviceAction
+ * @return
+ */
+ @PostMapping("/device/action/add")
+ public R add(@RequestBody MqttsDeviceAction mqttsDeviceAction);
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceDatasService.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceDatasService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c43360265d084af5aaffe9db6085951ae08ef254
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceDatasService.java
@@ -0,0 +1,24 @@
+package net.mqtts.link.api;
+
+import net.mqtts.common.core.constant.ServiceNameConstants;
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
+import net.mqtts.link.api.factory.RemoteMqttsDeviceDatasFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 设备消息服务
+ *
+ * @author shisen
+ */
+@FeignClient(contextId = "remoteMqttsDeviceDatasService", value = ServiceNameConstants.MQTTS_LINK, fallbackFactory = RemoteMqttsDeviceDatasFallbackFactory.class)
+public interface RemoteMqttsDeviceDatasService {
+
+ /**
+ * 新增设备消息
+ */
+ @PostMapping("/device/datas/add")
+ public R add(@RequestBody MqttsDeviceDatas mqttsDeviceDatas);
+
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceService.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceService.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f53d94ec00a69511fe7da82f4b849f294d55d7e
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/RemoteMqttsDeviceService.java
@@ -0,0 +1,44 @@
+package net.mqtts.link.api;
+
+import net.mqtts.common.core.constant.ServiceNameConstants;
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.domain.MqttsDevice;
+import net.mqtts.link.api.factory.RemoteMqttsDeviceFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 设备管理服务
+ *
+ * @author shisen
+ */
+@FeignClient(contextId = "remoteMqttsDeviceService", value = ServiceNameConstants.MQTTS_LINK, fallbackFactory = RemoteMqttsDeviceFallbackFactory.class)
+public interface RemoteMqttsDeviceService {
+
+ /**
+ * 认证接口
+ *
+ * @param clientId
+ * @param userName
+ * @param password
+ * @param deviceStatus
+ * @param protocolType
+ * @return
+ */
+ @GetMapping("/device/findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType")
+ public R findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(@RequestParam(value = "clientId", required = true) String clientId,
+ @RequestParam(value = "userName", required = true) String userName,
+ @RequestParam(value = "password", required = true) String password,
+ @RequestParam(value = "deviceStatus", required = true) String deviceStatus,
+ @RequestParam(value = "protocolType", required = true) String protocolType);
+
+ /**
+ * 更新设备在线状态
+ *
+ * @param mqttsDevice
+ * @return
+ */
+ @PutMapping("/device/updateConnectStatusByClientId")
+ public R updateConnectStatusByClientId(@RequestBody MqttsDevice mqttsDevice);
+
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDevice.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDevice.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb8302c4af692f40890b1e31e5328c3595f47350
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDevice.java
@@ -0,0 +1,319 @@
+package net.mqtts.link.api.domain;
+
+import net.mqtts.common.core.annotation.Excel;
+import net.mqtts.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+
+/**
+ * 设备管理对象 mqtts_device
+ *
+ * @author mqtts
+ * @date 2021-10-22
+ */
+public class MqttsDevice extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @Excel(name = "id")
+ private Long id;
+
+ /**
+ * 客户端标识
+ */
+ @Excel(name = "客户端标识")
+ private String clientId;
+
+ /**
+ * 用户名
+ */
+ private String userName;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 认证方式
+ */
+ @Excel(name = "认证方式")
+ private String authMode;
+
+ /**
+ * 设备标识
+ */
+ @Excel(name = "设备标识")
+ private String deviceId;
+
+ /**
+ * 设备名称
+ */
+ @Excel(name = "设备名称")
+ private String deviceName;
+
+ /**
+ * 纬度
+ */
+ private BigDecimal latitude;
+
+ /**
+ * 经度
+ */
+ private BigDecimal longitude;
+
+ /**
+ * 连接实例
+ */
+ @Excel(name = "连接实例")
+ private String connector;
+
+ /**
+ * 设备描述
+ */
+ @Excel(name = "设备描述")
+ private String deviceDescription;
+
+ /**
+ * 设备状态
+ */
+ @Excel(name = "设备状态")
+ private String deviceStatus;
+
+ /**
+ * 连接状态
+ */
+ @Excel(name = "连接状态")
+ private String connectStatus;
+
+ /**
+ * 是否遗言
+ */
+ @Excel(name = "是否遗言")
+ private String isWill;
+
+ /**
+ * 设备标签
+ */
+ @Excel(name = "设备标签")
+ private String deviceTags;
+
+ /**
+ * 产品型号
+ */
+ @Excel(name = "产品型号")
+ private String productId;
+
+ /**
+ * 厂商ID
+ */
+ @Excel(name = "厂商ID")
+ private String manufacturerId;
+
+ /**
+ * 产品协议类型
+ */
+ @Excel(name = "产品协议类型")
+ private String protocolType;
+
+ /**
+ * 设备类型
+ */
+ @Excel(name = "设备类型")
+ private String deviceType;
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setAuthMode(String authMode) {
+ this.authMode = authMode;
+ }
+
+ public String getAuthMode() {
+ return authMode;
+ }
+
+ public void setDeviceId(String deviceId) {
+ this.deviceId = deviceId;
+ }
+
+ public String getDeviceId() {
+ return deviceId;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setLatitude(BigDecimal latitude) {
+ this.latitude = latitude;
+ }
+
+ public BigDecimal getLatitude() {
+ return latitude;
+ }
+
+ public void setLongitude(BigDecimal longitude) {
+ this.longitude = longitude;
+ }
+
+ public BigDecimal getLongitude() {
+ return longitude;
+ }
+
+ public void setConnector(String connector) {
+ this.connector = connector;
+ }
+
+ public String getConnector() {
+ return connector;
+ }
+
+ public void setDeviceDescription(String deviceDescription) {
+ this.deviceDescription = deviceDescription;
+ }
+
+ public String getDeviceDescription() {
+ return deviceDescription;
+ }
+
+ public void setDeviceStatus(String deviceStatus) {
+ this.deviceStatus = deviceStatus;
+ }
+
+ public String getDeviceStatus() {
+ return deviceStatus;
+ }
+
+ public void setConnectStatus(String connectStatus) {
+ this.connectStatus = connectStatus;
+ }
+
+ public String getConnectStatus() {
+ return connectStatus;
+ }
+
+ public void setIsWill(String isWill) {
+ this.isWill = isWill;
+ }
+
+ public String getIsWill() {
+ return isWill;
+ }
+
+ public void setDeviceTags(String deviceTags) {
+ this.deviceTags = deviceTags;
+ }
+
+ public String getDeviceTags() {
+ return deviceTags;
+ }
+
+ public void setProductId(String productId) {
+ this.productId = productId;
+ }
+
+ public String getProductId() {
+ return productId;
+ }
+
+ public void setManufacturerId(String manufacturerId) {
+ this.manufacturerId = manufacturerId;
+ }
+
+ public String getManufacturerId() {
+ return manufacturerId;
+ }
+
+ public void setProtocolType(String protocolType) {
+ this.protocolType = protocolType;
+ }
+
+ public String getProtocolType() {
+ return protocolType;
+ }
+
+ public void setDeviceType(String deviceType) {
+ this.deviceType = deviceType;
+ }
+
+ public String getDeviceType() {
+ return deviceType;
+ }
+
+ public MqttsDevice() {
+
+ }
+
+ public MqttsDevice(String connectStatus, String clientId) {
+ this.connectStatus = connectStatus;
+ this.clientId = clientId;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("clientId", getClientId())
+ .append("userName", getUserName())
+ .append("password", getPassword())
+ .append("authMode", getAuthMode())
+ .append("deviceId", getDeviceId())
+ .append("deviceName", getDeviceName())
+ .append("latitude", getLatitude())
+ .append("longitude", getLongitude())
+ .append("connector", getConnector())
+ .append("deviceDescription", getDeviceDescription())
+ .append("deviceStatus", getDeviceStatus())
+ .append("connectStatus", getConnectStatus())
+ .append("isWill", getIsWill())
+ .append("deviceTags", getDeviceTags())
+ .append("productId", getProductId())
+ .append("manufacturerId", getManufacturerId())
+ .append("protocolType", getProtocolType())
+ .append("deviceType", getDeviceType())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .append("remark", getRemark())
+ .toString();
+ }
+}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceAction.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceAction.java
similarity index 97%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceAction.java
rename to mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceAction.java
index a265ebe58e9c99fae4ef485d5bd273c585c4ab7b..05e9771ffb21fa86d1564bfb9074415f5ca5ffe7 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceAction.java
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceAction.java
@@ -1,10 +1,11 @@
-package net.mqtts.link.domain.device;
+package net.mqtts.link.api.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
import java.io.Serializable;
import java.time.LocalDateTime;
-import lombok.Data;
/**
@@ -27,6 +28,7 @@ import lombok.Data;
* @Version: 1.0
*/
+
/**
* 设备动作数据
*/
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceDatas.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceDatas.java
similarity index 97%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceDatas.java
rename to mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceDatas.java
index 517ad47c8582edb79c152af65fa26a57502c9d97..34160e1cc75e3dde4acd76f4aaa4651a3c1778e3 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDeviceDatas.java
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/domain/MqttsDeviceDatas.java
@@ -1,10 +1,11 @@
-package net.mqtts.link.domain.device;
+package net.mqtts.link.api.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
import java.io.Serializable;
import java.time.LocalDateTime;
-import lombok.Data;
/**
@@ -27,6 +28,7 @@ import lombok.Data;
* @Version: 1.0
*/
+
/**
* 设备消息
*/
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceActionFallbackFactory.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceActionFallbackFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b9046001a1c19a9e997b68226bd1148780d76ba
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceActionFallbackFactory.java
@@ -0,0 +1,30 @@
+package net.mqtts.link.api.factory;
+
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.RemoteMqttsDeviceActionService;
+import net.mqtts.link.api.domain.MqttsDeviceAction;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 设备动作服务降级处理
+ *
+ * @author shisen
+ */
+@Component
+public class RemoteMqttsDeviceActionFallbackFactory implements FallbackFactory {
+ private static final Logger log = LoggerFactory.getLogger(RemoteMqttsDeviceActionFallbackFactory.class);
+
+ @Override
+ public RemoteMqttsDeviceActionService create(Throwable throwable) {
+ log.error("设备消息服务调用失败:{}", throwable.getMessage());
+ return new RemoteMqttsDeviceActionService() {
+ @Override
+ public R add(MqttsDeviceAction mqttsDeviceAction) {
+ return R.fail("新增设备动作失败:" + throwable.getMessage());
+ }
+ };
+ }
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceDatasFallbackFactory.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceDatasFallbackFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8cd01727dc84d5157e6c5ab67cabdde944e1294
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceDatasFallbackFactory.java
@@ -0,0 +1,31 @@
+package net.mqtts.link.api.factory;
+
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.RemoteMqttsDeviceDatasService;
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 设备消息服务降级处理
+ *
+ * @author shisen
+ */
+@Component
+public class RemoteMqttsDeviceDatasFallbackFactory implements FallbackFactory {
+ private static final Logger log = LoggerFactory.getLogger(RemoteMqttsDeviceDatasFallbackFactory.class);
+
+ @Override
+ public RemoteMqttsDeviceDatasService create(Throwable throwable) {
+ log.error("设备消息服务调用失败:{}", throwable.getMessage());
+ return new RemoteMqttsDeviceDatasService() {
+ @Override
+ public R add(MqttsDeviceDatas mqttsDeviceDatas) {
+ return R.fail("新增设备消息失败:" + throwable.getMessage());
+ }
+
+ };
+ }
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceFallbackFactory.java b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceFallbackFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..31daae7cafc28c0a89fe9d41fbdff61680908c18
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/java/net/mqtts/link/api/factory/RemoteMqttsDeviceFallbackFactory.java
@@ -0,0 +1,35 @@
+package net.mqtts.link.api.factory;
+
+import net.mqtts.common.core.domain.R;
+import net.mqtts.link.api.RemoteMqttsDeviceService;
+import net.mqtts.link.api.domain.MqttsDevice;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 设备管理服务降级处理
+ *
+ * @author shisen
+ */
+@Component
+public class RemoteMqttsDeviceFallbackFactory implements FallbackFactory {
+ private static final Logger log = LoggerFactory.getLogger(RemoteMqttsDeviceFallbackFactory.class);
+
+ @Override
+ public RemoteMqttsDeviceService create(Throwable throwable) {
+ log.error("设备管理服务调用失败:{}", throwable.getMessage());
+ return new RemoteMqttsDeviceService() {
+ @Override
+ public R findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(String clientId, String userName, String password, String deviceStatus, String protocolType) {
+ return R.fail("认证接口失败:" + throwable.getMessage());
+ }
+
+ @Override
+ public R updateConnectStatusByClientId(MqttsDevice mqttsDevice) {
+ return R.fail("更新设备在线状态失败:" + throwable.getMessage());
+ }
+ };
+ }
+}
diff --git a/mqtts-api/mqtts-api-link/src/main/resources/META-INF/spring.factories b/mqtts-api/mqtts-api-link/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000000000000000000000000000000000000..0ee3435f7212ff0c9dbbd798169f035ec3eb5932
--- /dev/null
+++ b/mqtts-api/mqtts-api-link/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,4 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ net.mqtts.link.api.factory.RemoteMqttsDeviceFallbackFactory,\
+ net.mqtts.link.api.factory.RemoteMqttsDeviceActionFallbackFactory, \
+ net.mqtts.link.api.factory.RemoteMqttsDeviceDatasFallbackFactory
diff --git a/mqtts-api/pom.xml b/mqtts-api/pom.xml
index 75fd16f5168d682a9747305f88651fa308707e52..ce1c10b3e5c84d0a674f235e91add0c535c1e8e6 100644
--- a/mqtts-api/pom.xml
+++ b/mqtts-api/pom.xml
@@ -10,6 +10,7 @@
mqtts-api-system
+ mqtts-api-link
mqtts-api
diff --git a/mqtts-common/mqtts-common-core/src/main/java/net/mqtts/common/core/constant/ServiceNameConstants.java b/mqtts-common/mqtts-common-core/src/main/java/net/mqtts/common/core/constant/ServiceNameConstants.java
index 3814d6f09703153668d50083a8c562edc853e32b..8df5226a43ae38b65bbdb7a32dbba458dbe1c2ba 100644
--- a/mqtts-common/mqtts-common-core/src/main/java/net/mqtts/common/core/constant/ServiceNameConstants.java
+++ b/mqtts-common/mqtts-common-core/src/main/java/net/mqtts/common/core/constant/ServiceNameConstants.java
@@ -21,4 +21,9 @@ public class ServiceNameConstants
* 文件服务的serviceid
*/
public static final String FILE_SERVICE = "mqtts-file";
+
+ /**
+ * Link服务
+ */
+ public static final String MQTTS_LINK = "mqtts-link";
}
diff --git a/mqtts-modules/mqtts-modules-broker/pom.xml b/mqtts-modules/mqtts-modules-broker/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01bdc63bcc3c20352c60ce909646d19e2305e107
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/pom.xml
@@ -0,0 +1,194 @@
+
+
+
+ mqtts-modules
+ net.mqtts
+ 3.1.0
+
+ 4.0.0
+
+ mqtts-modules-broker
+
+
+ mqtts-modules-broker broker模块
+
+
+
+
+ D:\mqtts-server\broker
+
+ net.mqtts.broker.MqttsBrokerApplication
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+
+ net.mqtts
+ mqtts-common-datasource
+ 3.1.0
+
+
+
+
+ net.mqtts
+ mqtts-common-datascope
+ 3.1.0
+
+
+
+
+ io.github.quickmsg
+ smqtt-spring-boot-starter
+ 1.0.9
+
+
+
+ io.github.quickmsg
+ smqtt-ui
+
+
+
+
+
+ net.mqtts
+ mqtts-api-link
+ 3.1.0
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ *.**
+ */*.xml
+
+
+
+ true
+
+ ../lib/
+
+ false
+
+ ${mqtts.mainClass.url}
+
+
+
+ ./resources/
+
+
+ ${iot.package.url}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+
+ ${mqtts.lib.package.url}
+
+
+
+
+
+
+
+
+ maven-resources-plugin
+
+
+ copy-resources
+ package
+
+ copy-resources
+
+
+
+
+ src/main/resources
+
+
+ ${mqtts.package.url}/resources
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.5.5
+
+
+
+
+ null
+ null
+
+
+ ZIP
+
+ true
+ ${mqtts.package.url}
+
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/Actors/PublishActor.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/Actors/PublishActor.java
similarity index 97%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/Actors/PublishActor.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/Actors/PublishActor.java
index 870e6c03f7b823b150481e848ce10dd9be15818d..237e17d2a89bf29e0869ca736fe206976e107b51 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/Actors/PublishActor.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/Actors/PublishActor.java
@@ -1,4 +1,4 @@
-package net.mqtts.link.controller.Actors;
+package net.mqtts.broker.Actors;
import io.github.quickmsg.common.annotation.AllowCors;
import io.github.quickmsg.common.annotation.Router;
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/MqttsBrokerApplication.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/MqttsBrokerApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..d0d9cf272013a3a66d2ee476e7d6572217f2cee5
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/MqttsBrokerApplication.java
@@ -0,0 +1,32 @@
+package net.mqtts.broker;
+
+import io.github.quickmsg.starter.EnableMqttServer;
+import net.mqtts.common.security.annotation.EnableCustomConfig;
+import net.mqtts.common.security.annotation.EnableRyFeignClients;
+import net.mqtts.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.web.bind.annotation.CrossOrigin;
+
+/**
+ * Broker
+ *
+ * @author mqtts
+ */
+@EnableMqttServer
+@EnableCustomSwagger2
+@EnableRyFeignClients
+//实现跨域注解
+//origin="*"代表所有域名都可访问
+//maxAge飞行前响应的缓存持续时间的最大年龄,简单来说就是Cookie的有效期 单位为秒
+//若maxAge是负数,则代表为临时Cookie,不会被持久化,Cookie信息保存在浏览器内存中,浏览器关闭Cookie就消失
+@CrossOrigin(origins = "*",maxAge = 3600)
+@SpringBootApplication
+public class MqttsBrokerApplication
+{
+ public static void main(String[] args)
+ {
+ SpringApplication.run(MqttsBrokerApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ Broker模块启动成功 ლ(´ڡ`ლ)゙ ");
+ }
+}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DemoMessageInterceptor.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DemoMessageInterceptor.java
similarity index 90%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DemoMessageInterceptor.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DemoMessageInterceptor.java
index f3562e3510778e4e33f766be9fd98916614d8d60..56e8755c4f87cbd7e47692fd87bdd01541cc5017 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DemoMessageInterceptor.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DemoMessageInterceptor.java
@@ -1,6 +1,5 @@
-package net.mqtts.link.service.impl;
+package net.mqtts.broker.service;
-import com.alibaba.fastjson.JSONObject;
import io.github.quickmsg.common.channel.MqttChannel;
import io.github.quickmsg.common.config.Configuration;
import io.github.quickmsg.common.context.ReceiveContext;
@@ -8,22 +7,17 @@ import io.github.quickmsg.common.interceptor.Interceptor;
import io.github.quickmsg.common.interceptor.Invocation;
import io.github.quickmsg.common.message.HeapMqttMessage;
import io.github.quickmsg.common.message.SmqttMessage;
-import io.github.quickmsg.common.protocol.ProtocolAdaptor;
import io.github.quickmsg.common.rule.DslExecutor;
import io.github.quickmsg.common.utils.MessageUtils;
-import io.netty.buffer.ByteBuf;
-import io.netty.handler.codec.mqtt.*;
-import io.netty.util.CharsetUtil;
+import io.netty.handler.codec.mqtt.MqttFixedHeader;
+import io.netty.handler.codec.mqtt.MqttMessage;
+import io.netty.handler.codec.mqtt.MqttPublishMessage;
+import io.netty.handler.codec.mqtt.MqttPublishVariableHeader;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import reactor.core.scheduler.Schedulers;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.stream.Collectors;
-
/**
* @Description: mqtt消息拦截器示例
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceActionInterceptor.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceActionInterceptor.java
similarity index 83%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceActionInterceptor.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceActionInterceptor.java
index 4defbd6fda38637dc4e3705f1ee66913a864dc19..0edf30571cceb778b46bc6c439b5e61e6aa2b184 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceActionInterceptor.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceActionInterceptor.java
@@ -1,7 +1,6 @@
-package net.mqtts.link.service.impl;
+package net.mqtts.broker.service;
import cn.hutool.core.date.LocalDateTimeUtil;
-import cn.hutool.core.lang.copier.Copier;
import io.github.quickmsg.common.channel.MqttChannel;
import io.github.quickmsg.common.config.Configuration;
import io.github.quickmsg.common.context.ReceiveContext;
@@ -13,16 +12,15 @@ import io.github.quickmsg.common.rule.DslExecutor;
import io.github.quickmsg.common.utils.MessageUtils;
import io.netty.handler.codec.mqtt.*;
import lombok.extern.slf4j.Slf4j;
-import net.mqtts.link.domain.device.MqttsDeviceAction;
-import net.mqtts.link.domain.device.MqttsDeviceDatas;
-import net.mqtts.link.service.device.MqttsDeviceActionService;
-import net.mqtts.link.service.device.MqttsDeviceService;
+import net.mqtts.link.api.RemoteMqttsDeviceActionService;
+import net.mqtts.link.api.RemoteMqttsDeviceService;
+import net.mqtts.link.api.domain.MqttsDevice;
+import net.mqtts.link.api.domain.MqttsDeviceAction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -45,10 +43,10 @@ public class DeviceActionInterceptor implements Interceptor {
private static DeviceActionInterceptor DeviceActionInterceptor;
@Autowired
- private MqttsDeviceService mqttsDeviceService;
+ private RemoteMqttsDeviceService mqttsDeviceService;
@Autowired
- private MqttsDeviceActionService mqttsDeviceActionService;
+ private RemoteMqttsDeviceActionService mqttsDeviceActionService;
@PostConstruct
@@ -73,8 +71,8 @@ public class DeviceActionInterceptor implements Interceptor {
DslExecutor dslExecutor = mqttReceiveContext.getDslExecutor();
MqttMessage message = smqttMessage.getMessage();
//TODO MQTT动作数据处理
- List mqttMessageType = Arrays.asList(MqttMessageType.PUBLISH,MqttMessageType.DISCONNECT,MqttMessageType.PINGRESP,MqttMessageType.SUBSCRIBE,MqttMessageType.UNSUBSCRIBE);
- if (!smqttMessage.getIsCluster() && mqttMessageType.contains(message.fixedHeader().messageType()) ) {
+ List mqttMessageType = Arrays.asList(MqttMessageType.PUBLISH, MqttMessageType.DISCONNECT, MqttMessageType.PINGRESP, MqttMessageType.SUBSCRIBE, MqttMessageType.UNSUBSCRIBE);
+ if (!smqttMessage.getIsCluster() && mqttMessageType.contains(message.fixedHeader().messageType())) {
MqttPublishMessage publishMessage = (MqttPublishMessage) message;
HeapMqttMessage heapMqttMessage = this.clusterMessage(publishMessage, mqttChannel, smqttMessage.getTimestamp());
MqttsDeviceAction mqttsDeviceAction = new MqttsDeviceAction();
@@ -83,8 +81,8 @@ public class DeviceActionInterceptor implements Interceptor {
mqttsDeviceAction.setStatus(message.decoderResult().toString());
mqttsDeviceAction.setMessage(heapMqttMessage.getTopic());
mqttsDeviceAction.setCreate_time(LocalDateTimeUtil.now());
- DeviceActionInterceptor.mqttsDeviceActionService.insert(mqttsDeviceAction);
- DeviceActionInterceptor.mqttsDeviceService.updateConnectStatusByClientId(mqttChannel.getStatus().toString(), mqttChannel.getClientIdentifier());
+ DeviceActionInterceptor.mqttsDeviceActionService.add(mqttsDeviceAction);
+ DeviceActionInterceptor.mqttsDeviceService.updateConnectStatusByClientId(new MqttsDevice(mqttChannel.getStatus().toString(), mqttChannel.getClientIdentifier()));
}
// 拦截业务
return invocation.proceed(); // 放行
@@ -116,7 +114,8 @@ public class DeviceActionInterceptor implements Interceptor {
/**
* 排序
- *值越大权重越高
+ * 值越大权重越高
+ *
* @return 排序
*/
@Override
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceDatasInterceptor.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceDatasInterceptor.java
similarity index 88%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceDatasInterceptor.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceDatasInterceptor.java
index 6726ab00c5ff015fe96a2adbd6cd8ca8057896c5..744540c046793d2a6c36d580a184948b0144ccaa 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/DeviceDatasInterceptor.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/DeviceDatasInterceptor.java
@@ -1,4 +1,4 @@
-package net.mqtts.link.service.impl;
+package net.mqtts.broker.service;
import cn.hutool.core.date.LocalDateTimeUtil;
import io.github.quickmsg.common.channel.MqttChannel;
@@ -12,12 +12,11 @@ import io.github.quickmsg.common.rule.DslExecutor;
import io.github.quickmsg.common.utils.MessageUtils;
import io.netty.handler.codec.mqtt.*;
import lombok.extern.slf4j.Slf4j;
-import net.mqtts.link.domain.device.MqttsDeviceDatas;
-import net.mqtts.link.service.device.MqttsDeviceDatasService;
+import net.mqtts.link.api.RemoteMqttsDeviceDatasService;
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
-import reactor.core.scheduler.Schedulers;
import javax.annotation.PostConstruct;
@@ -40,13 +39,13 @@ public class DeviceDatasInterceptor implements Interceptor {
private static DeviceDatasInterceptor DeviceDatasInterceptor;
@Autowired
- private MqttsDeviceDatasService mqttsDeviceDatasService;
+ private RemoteMqttsDeviceDatasService remoteMqttsDeviceDatasService;
@PostConstruct
public void init() {
DeviceDatasInterceptor = this;
- DeviceDatasInterceptor.mqttsDeviceDatasService = this.mqttsDeviceDatasService;
+ DeviceDatasInterceptor.remoteMqttsDeviceDatasService = this.remoteMqttsDeviceDatasService;
}
/**
@@ -67,15 +66,15 @@ public class DeviceDatasInterceptor implements Interceptor {
if (!smqttMessage.getIsCluster() && message instanceof MqttPublishMessage && message.fixedHeader().messageType() == MqttMessageType.PUBLISH) {
MqttPublishMessage publishMessage = (MqttPublishMessage) message;
HeapMqttMessage heapMqttMessage = this.clusterMessage(publishMessage, mqttChannel, smqttMessage.getTimestamp());
- log.info("Topic->{}"+heapMqttMessage.getTopic()+"Message->{}"+new String(heapMqttMessage.getMessage()));
+ log.info("Topic->{}" + heapMqttMessage.getTopic() + "Message->{}" + new String(heapMqttMessage.getMessage()));
MqttsDeviceDatas mqttsDeviceDatas = new MqttsDeviceDatas();
mqttsDeviceDatas.setDevice_id(heapMqttMessage.getClientIdentifier());
mqttsDeviceDatas.setTopic(heapMqttMessage.getTopic());
mqttsDeviceDatas.setMessage_id(String.valueOf(heapMqttMessage.getTimestamp()));
- mqttsDeviceDatas.setMessage(new String(heapMqttMessage.getMessage()).trim());
+ mqttsDeviceDatas.setMessage(new String(heapMqttMessage.getMessage(), "UTF-8").trim());
mqttsDeviceDatas.setStatus(message.decoderResult().toString());
mqttsDeviceDatas.setCreate_time(LocalDateTimeUtil.now());
- DeviceDatasInterceptor.mqttsDeviceDatasService.insert(mqttsDeviceDatas);
+ DeviceDatasInterceptor.remoteMqttsDeviceDatasService.add(mqttsDeviceDatas);
/* if (mqttReceiveContext.getConfiguration().getClusterConfig().isEnable()) {
mqttReceiveContext.getClusterRegistry().spreadPublishMessage(heapMqttMessage).subscribeOn(Schedulers.boundedElastic()).subscribe();
}
@@ -110,6 +109,7 @@ public class DeviceDatasInterceptor implements Interceptor {
.qos(fixedHeader.qosLevel().value())
.build();
}
+
/**
* 排序
* 值越大权重越高
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/MessageRegistryImpl.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/MessageRegistryImpl.java
similarity index 97%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/MessageRegistryImpl.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/MessageRegistryImpl.java
index a2318f35e80c552b68a671e5c4b73beb1a508c55..165632d2eb1d699a1036d8f5886872bbf9985a09 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/MessageRegistryImpl.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/MessageRegistryImpl.java
@@ -1,4 +1,4 @@
-package net.mqtts.link.service.impl;
+package net.mqtts.broker.service;
import io.github.quickmsg.common.message.MessageRegistry;
import io.github.quickmsg.common.message.RetainMessage;
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/PasswordAuthenticationImpl.java b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/PasswordAuthenticationImpl.java
similarity index 63%
rename from mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/PasswordAuthenticationImpl.java
rename to mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/PasswordAuthenticationImpl.java
index 03bf1c62e36305edd53c6bc00a6ee01e7c613341..d1d9b7f492b832a896322b0e2545279f594574d1 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/impl/PasswordAuthenticationImpl.java
+++ b/mqtts-modules/mqtts-modules-broker/src/main/java/net/mqtts/broker/service/PasswordAuthenticationImpl.java
@@ -1,13 +1,10 @@
-package net.mqtts.link.service.impl;
+package net.mqtts.broker.service;
import io.github.quickmsg.common.auth.PasswordAuthentication;
import lombok.extern.slf4j.Slf4j;
-import net.mqtts.link.common.enums.DeviceConnectStatus;
-import net.mqtts.link.common.enums.DeviceStatus;
-import net.mqtts.link.common.enums.ProtocolType;
-import net.mqtts.link.domain.device.MqttsDevice;
-import net.mqtts.link.service.device.MqttsDeviceService;
+import net.mqtts.link.api.RemoteMqttsDeviceService;
+import net.mqtts.link.api.domain.MqttsDevice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@@ -33,7 +30,7 @@ public class PasswordAuthenticationImpl implements PasswordAuthentication {
private static PasswordAuthenticationImpl PasswordAuthenticationImpl;
@Autowired
- private MqttsDeviceService mqttsDeviceService;
+ private RemoteMqttsDeviceService mqttsDeviceService;
@PostConstruct
@@ -52,10 +49,10 @@ public class PasswordAuthenticationImpl implements PasswordAuthentication {
*/
@Override
public boolean auth(String userName, byte[] passwordInBytes, String clientIdentifier) {
- MqttsDevice oneByClientIdAndUserNameAndPassword = PasswordAuthenticationImpl.mqttsDeviceService.findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(clientIdentifier, userName, new String(passwordInBytes), DeviceStatus.ENABLE.getValue(), ProtocolType.MQTT.getValue());
- if (Optional.ofNullable(oneByClientIdAndUserNameAndPassword).isPresent()){
+ MqttsDevice mqttsDevice = PasswordAuthenticationImpl.mqttsDeviceService.findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(clientIdentifier, userName, new String(passwordInBytes), "ENABLE", "MQTT").getData();
+ if (Optional.ofNullable(mqttsDevice).isPresent()) {
//更改设备在线状态为在线
- PasswordAuthenticationImpl.mqttsDeviceService.updateConnectStatusByClientId(DeviceConnectStatus.ONLINE.getValue(),clientIdentifier);
+ PasswordAuthenticationImpl.mqttsDeviceService.updateConnectStatusByClientId(new MqttsDevice("INIT", clientIdentifier));
return true;
}
return false;
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication
new file mode 100644
index 0000000000000000000000000000000000000000..d02d629030b581a8263f96fca31990615b923958
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication
@@ -0,0 +1 @@
+net.mqtts.broker.service.PasswordAuthenticationImpl
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor
new file mode 100644
index 0000000000000000000000000000000000000000..f8955843557e9136a664fe20897b75ce8b23582f
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor
@@ -0,0 +1 @@
+net.mqtts.broker.Actors.PublishActor
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor
new file mode 100644
index 0000000000000000000000000000000000000000..51fcc1f92552a5022193ae6921013f14c5c0b2d1
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor
@@ -0,0 +1,3 @@
+net.mqtts.broker.service.DemoMessageInterceptor
+net.mqtts.broker.service.DeviceActionInterceptor
+net.mqtts.broker.service.DeviceDatasInterceptor
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry
new file mode 100644
index 0000000000000000000000000000000000000000..9a086d2ab3aadd6a9fd07f937afa2b9e64b01147
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry
@@ -0,0 +1 @@
+net.mqtts.broker.service.MessageRegistryImpl
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.core.http.AbstractHttpActor b/mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.core.http.AbstractHttpActor
similarity index 100%
rename from mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.core.http.AbstractHttpActor
rename to mqtts-modules/mqtts-modules-broker/src/main/resources/META-INF/services/io.github.quickmsg.core.http.AbstractHttpActor
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/banner.txt b/mqtts-modules/mqtts-modules-broker/src/main/resources/banner.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b71b48f517282e6f7c6b8b445fe5c8bd5b7ec872
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/banner.txt
@@ -0,0 +1,19 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
+
+ ,----, ,----,
+ ____ ,/ .`| ,/ .`|
+ ,' , `. ,----.. ,` .' : ,` .' : .--.--.
+ ,-+-,.' _ | / / \ ; ; / ; ; // / '.
+ ,-+-. ; , || / . : .'___,/ ,'.'___,/ ,'| : /`. /
+ ,--.'|' | ;| . / ;. \| : | | : | ; | |--`
+| | ,', | ':. ; / ` ;; |.'; ; ; |.'; ; | : ;_
+| | / | | ||; | ; \ ; |`----' | | `----' | | \ \ `.
+' | : | : |,| : | ; | ' ' : ; ' : ; `----. \
+; . | ; |--' . | ' ' ' : | | ' | | ' __ \ \ |
+| : | | , ' ; \; / | ' : | ' : | / /`--' /
+| : ' |/ \ \ ', . \ ; |.' ; |.' '--'. /
+; | |`-' ; : ; | '---' '---' `--'---'
+| ;/ \ \ .'`--"
+'---' `---`
+
diff --git a/mqtts-modules/mqtts-modules-broker/src/main/resources/logback.xml b/mqtts-modules/mqtts-modules-broker/src/main/resources/logback.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5cabab2e9946fdf07eafb4cbd1d94ac7958fdd27
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-broker/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/pom.xml b/mqtts-modules/mqtts-modules-link/pom.xml
index d14616b211d0d1c94ae0e81beb00f20c2321dd64..788d5e2fbd0a3aa546beec70c827be0ea45c1b22 100644
--- a/mqtts-modules/mqtts-modules-link/pom.xml
+++ b/mqtts-modules/mqtts-modules-link/pom.xml
@@ -89,40 +89,14 @@
3.1.0
-
- io.github.quickmsg
- smqtt-spring-boot-starter
- 1.0.9
-
-
-
- io.github.quickmsg
- smqtt-ui
-
-
+ net.mqtts
+ mqtts-api-link
+ 3.1.0
-
-
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/MqttsLinkApplication.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/MqttsLinkApplication.java
index 778732da8e404bd8bf10a0ae055b6fe515f30fdf..23b70ad9dcc3a8507cb471d8ef07e8ea3ca46052 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/MqttsLinkApplication.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/MqttsLinkApplication.java
@@ -1,23 +1,17 @@
package net.mqtts.link;
-import io.github.quickmsg.starter.EnableMqttServer;
import net.mqtts.common.security.annotation.EnableCustomConfig;
import net.mqtts.common.security.annotation.EnableRyFeignClients;
import net.mqtts.common.swagger.annotation.EnableCustomSwagger2;
-import net.mqtts.link.service.impl.PasswordAuthenticationImpl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.CrossOrigin;
-import java.util.Iterator;
-import java.util.ServiceLoader;
-
/**
* Link
*
* @author mqtts
*/
-@EnableMqttServer
@EnableCustomConfig
@EnableCustomSwagger2
@EnableRyFeignClients
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceActionController.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceActionController.java
new file mode 100644
index 0000000000000000000000000000000000000000..aa6bb9de1b9e951e3862fccd1479db45320fbcc6
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceActionController.java
@@ -0,0 +1,58 @@
+package net.mqtts.link.controller.device;
+
+import net.mqtts.common.core.domain.R;
+import net.mqtts.common.core.web.controller.BaseController;
+import net.mqtts.common.core.web.domain.AjaxResult;
+import net.mqtts.common.core.web.page.TableDataInfo;
+import net.mqtts.common.log.annotation.Log;
+import net.mqtts.common.log.enums.BusinessType;
+import net.mqtts.common.security.annotation.PreAuthorize;
+import net.mqtts.link.api.domain.MqttsDeviceAction;
+import net.mqtts.link.service.device.MqttsDeviceActionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 设备动作Controller
+ *
+ * @author shisen
+ * @date 2021-11-20
+ */
+@RestController
+@RequestMapping("/device/action")
+public class MqttsDeviceActionController extends BaseController {
+ @Autowired
+ private MqttsDeviceActionService mqttsDeviceActionService;
+
+ /**
+ * 查询设备动作列表
+ */
+ @PreAuthorize(hasPermi = "link:device:action:list")
+ @GetMapping("/list")
+ public TableDataInfo list(MqttsDeviceAction mqttsDeviceAction) {
+ startPage();
+ List list = mqttsDeviceActionService.selectMqttsDeviceActionList(mqttsDeviceAction);
+ return getDataTable(list);
+ }
+
+ /**
+ * 新增设备动作
+ */
+ @Log(title = "设备动作", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ public R add(@RequestBody MqttsDeviceAction mqttsDeviceAction) {
+ return R.ok(mqttsDeviceActionService.insertOrUpdate(mqttsDeviceAction));
+ }
+
+ /**
+ * 删除设备动作
+ */
+ @PreAuthorize(hasPermi = "link:device:action:remove")
+ @Log(title = "设备管理", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
+ return toAjax(mqttsDeviceActionService.deleteMqttsDeviceActionByIds(ids));
+ }
+}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceController.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceController.java
index 4f0376b7d172d01d5bce04ea0e94bef208d471bf..3daad985be2b475614b2839744540f6bce408164 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceController.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceController.java
@@ -4,6 +4,7 @@ import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
+import net.mqtts.common.core.domain.R;
import net.mqtts.common.core.utils.poi.ExcelUtil;
import net.mqtts.common.core.web.controller.BaseController;
import net.mqtts.common.core.web.domain.AjaxResult;
@@ -11,28 +12,20 @@ import net.mqtts.common.core.web.page.TableDataInfo;
import net.mqtts.common.log.annotation.Log;
import net.mqtts.common.log.enums.BusinessType;
import net.mqtts.common.security.annotation.PreAuthorize;
+import net.mqtts.link.api.domain.MqttsDevice;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import net.mqtts.link.domain.device.MqttsDevice;
+import org.springframework.web.bind.annotation.*;
import net.mqtts.link.service.device.MqttsDeviceService;
/**
* 设备管理Controller
- *
+ *
* @author mqtts
* @date 2021-10-22
*/
@RestController
@RequestMapping("/device")
-public class MqttsDeviceController extends BaseController
-{
+public class MqttsDeviceController extends BaseController {
@Autowired
private MqttsDeviceService mqttsDeviceService;
@@ -41,8 +34,7 @@ public class MqttsDeviceController extends BaseController
*/
@PreAuthorize(hasPermi = "link:device:list")
@GetMapping("/list")
- public TableDataInfo list(MqttsDevice mqttsDevice)
- {
+ public TableDataInfo list(MqttsDevice mqttsDevice) {
startPage();
List list = mqttsDeviceService.selectMqttsDeviceList(mqttsDevice);
return getDataTable(list);
@@ -54,8 +46,7 @@ public class MqttsDeviceController extends BaseController
@PreAuthorize(hasPermi = "link:device:export")
@Log(title = "设备管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
- public void export(HttpServletResponse response, MqttsDevice mqttsDevice) throws IOException
- {
+ public void export(HttpServletResponse response, MqttsDevice mqttsDevice) throws IOException {
List list = mqttsDeviceService.selectMqttsDeviceList(mqttsDevice);
ExcelUtil util = new ExcelUtil(MqttsDevice.class);
util.exportExcel(response, list, "设备管理数据");
@@ -66,8 +57,7 @@ public class MqttsDeviceController extends BaseController
*/
@PreAuthorize(hasPermi = "link:device:query")
@GetMapping(value = "/{id}")
- public AjaxResult getInfo(@PathVariable("id") Long id)
- {
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
return AjaxResult.success(mqttsDeviceService.selectMqttsDeviceById(id));
}
@@ -77,8 +67,7 @@ public class MqttsDeviceController extends BaseController
@PreAuthorize(hasPermi = "link:device:add")
@Log(title = "设备管理", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody MqttsDevice mqttsDevice)
- {
+ public AjaxResult add(@RequestBody MqttsDevice mqttsDevice) {
return toAjax(mqttsDeviceService.insertMqttsDevice(mqttsDevice));
}
@@ -88,8 +77,7 @@ public class MqttsDeviceController extends BaseController
@PreAuthorize(hasPermi = "link:device:edit")
@Log(title = "设备管理", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult edit(@RequestBody MqttsDevice mqttsDevice)
- {
+ public AjaxResult edit(@RequestBody MqttsDevice mqttsDevice) {
return toAjax(mqttsDeviceService.updateMqttsDevice(mqttsDevice));
}
@@ -98,9 +86,29 @@ public class MqttsDeviceController extends BaseController
*/
@PreAuthorize(hasPermi = "link:device:remove")
@Log(title = "设备管理", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids)
- {
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(mqttsDeviceService.deleteMqttsDeviceByIds(ids));
}
+
+ /**
+ * 更新设备在线状态
+ */
+ @Log(title = "设备管理", businessType = BusinessType.UPDATE)
+ @PutMapping("/updateConnectStatusByClientId")
+ public R updateConnectStatusByClientId(@RequestBody MqttsDevice mqttsDevice) {
+ return R.ok(mqttsDeviceService.updateConnectStatusByClientId(mqttsDevice.getConnectStatus(), mqttsDevice.getClientId()));
+ }
+
+ /**
+ * 认证接口
+ */
+ @GetMapping("/findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType")
+ public R findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(@RequestParam(value = "clientId", required = true) String clientId,
+ @RequestParam(value = "userName", required = true) String userName,
+ @RequestParam(value = "password", required = true) String password,
+ @RequestParam(value = "deviceStatus", required = true) String deviceStatus,
+ @RequestParam(value = "protocolType", required = true) String protocolType) {
+ return R.ok(mqttsDeviceService.findOneByClientIdAndUserNameAndPasswordAndDeviceStatusAndProtocolType(clientId, userName, password, deviceStatus, protocolType));
+ }
}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceDatasController.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceDatasController.java
new file mode 100644
index 0000000000000000000000000000000000000000..2874cc9432b58c4ffb97e8121f0a3c7ebdbd3cf2
--- /dev/null
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/controller/device/MqttsDeviceDatasController.java
@@ -0,0 +1,60 @@
+package net.mqtts.link.controller.device;
+
+import net.mqtts.common.core.domain.R;
+import net.mqtts.common.core.web.controller.BaseController;
+import net.mqtts.common.core.web.domain.AjaxResult;
+import net.mqtts.common.core.web.page.TableDataInfo;
+import net.mqtts.common.log.annotation.Log;
+import net.mqtts.common.log.enums.BusinessType;
+import net.mqtts.common.security.annotation.PreAuthorize;
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
+import net.mqtts.link.service.device.MqttsDeviceDatasService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 设备消息Controller
+ *
+ * @author shisen
+ * @date 2021-11-20
+ */
+@RestController
+@RequestMapping("/device/datas")
+public class MqttsDeviceDatasController extends BaseController {
+ @Autowired
+ private MqttsDeviceDatasService mqttsDeviceDatasService;
+
+ /**
+ * 查询设备消息
+ */
+ @PreAuthorize(hasPermi = "link:device:datas:list")
+ @GetMapping("/list")
+ public TableDataInfo list(MqttsDeviceDatas mqttsDeviceDatas) {
+ startPage();
+ List list = mqttsDeviceDatasService.selectMqttsDeviceDatasList(mqttsDeviceDatas);
+ return getDataTable(list);
+ }
+
+
+ /**
+ * 新增设备消息
+ */
+ @Log(title = "设备消息", businessType = BusinessType.INSERT)
+ @PostMapping("/add")
+ public R add(@RequestBody MqttsDeviceDatas mqttsDeviceDatas) {
+ return R.ok(mqttsDeviceDatasService.insertOrUpdate(mqttsDeviceDatas));
+ }
+
+
+ /**
+ * 删除设备消息
+ */
+ @PreAuthorize(hasPermi = "link:device:datas:remove")
+ @Log(title = "设备消息", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
+ return toAjax(mqttsDeviceDatasService.deleteMqttsDeviceDatasByIds(ids));
+ }
+}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDevice.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDevice.java
deleted file mode 100644
index 17356f6a43554a28af069ac415bde19e30791815..0000000000000000000000000000000000000000
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/domain/device/MqttsDevice.java
+++ /dev/null
@@ -1,292 +0,0 @@
-package net.mqtts.link.domain.device;
-
-import java.math.BigDecimal;
-
-import net.mqtts.common.core.annotation.Excel;
-import net.mqtts.common.core.web.domain.BaseEntity;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-/**
- * 设备管理对象 mqtts_device
- *
- * @author mqtts
- * @date 2021-10-22
- */
-public class MqttsDevice extends BaseEntity
-{
- private static final long serialVersionUID = 1L;
-
- /** id */
- @Excel(name = "id")
- private Long id;
-
- /** 客户端标识 */
- @Excel(name = "客户端标识")
- private String clientId;
-
- /** 用户名 */
- private String userName;
-
- /** 密码 */
- private String password;
-
- /** 认证方式 */
- @Excel(name = "认证方式")
- private String authMode;
-
- /** 设备标识 */
- @Excel(name = "设备标识")
- private String deviceId;
-
- /** 设备名称 */
- @Excel(name = "设备名称")
- private String deviceName;
-
- /** 纬度 */
- private BigDecimal latitude;
-
- /** 经度 */
- private BigDecimal longitude;
-
- /** 连接实例 */
- @Excel(name = "连接实例")
- private String connector;
-
- /** 设备描述 */
- @Excel(name = "设备描述")
- private String deviceDescription;
-
- /** 设备状态 */
- @Excel(name = "设备状态")
- private String deviceStatus;
-
- /** 连接状态 */
- @Excel(name = "连接状态")
- private String connectStatus;
-
- /** 是否遗言 */
- @Excel(name = "是否遗言")
- private String isWill;
-
- /** 设备标签 */
- @Excel(name = "设备标签")
- private String deviceTags;
-
- /** 产品型号 */
- @Excel(name = "产品型号")
- private String productId;
-
- /** 厂商ID */
- @Excel(name = "厂商ID")
- private String manufacturerId;
-
- /** 产品协议类型 */
- @Excel(name = "产品协议类型")
- private String protocolType;
-
- /** 设备类型 */
- @Excel(name = "设备类型")
- private String deviceType;
-
- public void setId(Long id)
- {
- this.id = id;
- }
-
- public Long getId()
- {
- return id;
- }
- public void setClientId(String clientId)
- {
- this.clientId = clientId;
- }
-
- public String getClientId()
- {
- return clientId;
- }
- public void setUserName(String userName)
- {
- this.userName = userName;
- }
-
- public String getUserName()
- {
- return userName;
- }
- public void setPassword(String password)
- {
- this.password = password;
- }
-
- public String getPassword()
- {
- return password;
- }
- public void setAuthMode(String authMode)
- {
- this.authMode = authMode;
- }
-
- public String getAuthMode()
- {
- return authMode;
- }
- public void setDeviceId(String deviceId)
- {
- this.deviceId = deviceId;
- }
-
- public String getDeviceId()
- {
- return deviceId;
- }
- public void setDeviceName(String deviceName)
- {
- this.deviceName = deviceName;
- }
-
- public String getDeviceName()
- {
- return deviceName;
- }
- public void setLatitude(BigDecimal latitude)
- {
- this.latitude = latitude;
- }
-
- public BigDecimal getLatitude()
- {
- return latitude;
- }
- public void setLongitude(BigDecimal longitude)
- {
- this.longitude = longitude;
- }
-
- public BigDecimal getLongitude()
- {
- return longitude;
- }
- public void setConnector(String connector)
- {
- this.connector = connector;
- }
-
- public String getConnector()
- {
- return connector;
- }
- public void setDeviceDescription(String deviceDescription)
- {
- this.deviceDescription = deviceDescription;
- }
-
- public String getDeviceDescription()
- {
- return deviceDescription;
- }
- public void setDeviceStatus(String deviceStatus)
- {
- this.deviceStatus = deviceStatus;
- }
-
- public String getDeviceStatus()
- {
- return deviceStatus;
- }
- public void setConnectStatus(String connectStatus)
- {
- this.connectStatus = connectStatus;
- }
-
- public String getConnectStatus()
- {
- return connectStatus;
- }
- public void setIsWill(String isWill)
- {
- this.isWill = isWill;
- }
-
- public String getIsWill()
- {
- return isWill;
- }
- public void setDeviceTags(String deviceTags)
- {
- this.deviceTags = deviceTags;
- }
-
- public String getDeviceTags()
- {
- return deviceTags;
- }
- public void setProductId(String productId)
- {
- this.productId = productId;
- }
-
- public String getProductId()
- {
- return productId;
- }
- public void setManufacturerId(String manufacturerId)
- {
- this.manufacturerId = manufacturerId;
- }
-
- public String getManufacturerId()
- {
- return manufacturerId;
- }
- public void setProtocolType(String protocolType)
- {
- this.protocolType = protocolType;
- }
-
- public String getProtocolType()
- {
- return protocolType;
- }
- public void setDeviceType(String deviceType)
- {
- this.deviceType = deviceType;
- }
-
- public String getDeviceType()
- {
- return deviceType;
- }
-
- @Override
- public String toString() {
- return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
- .append("id", getId())
- .append("clientId", getClientId())
- .append("userName", getUserName())
- .append("password", getPassword())
- .append("authMode", getAuthMode())
- .append("deviceId", getDeviceId())
- .append("deviceName", getDeviceName())
- .append("latitude", getLatitude())
- .append("longitude", getLongitude())
- .append("connector", getConnector())
- .append("deviceDescription", getDeviceDescription())
- .append("deviceStatus", getDeviceStatus())
- .append("connectStatus", getConnectStatus())
- .append("isWill", getIsWill())
- .append("deviceTags", getDeviceTags())
- .append("productId", getProductId())
- .append("manufacturerId", getManufacturerId())
- .append("protocolType", getProtocolType())
- .append("deviceType", getDeviceType())
- .append("createBy", getCreateBy())
- .append("createTime", getCreateTime())
- .append("updateBy", getUpdateBy())
- .append("updateTime", getUpdateTime())
- .append("remark", getRemark())
- .toString();
- }
-}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceActionMapper.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceActionMapper.java
index fd5c77b2781f28de2dcf0c8ae3c19b0e64b1dc14..dd0dea8a383cedb61be5a2f94f78f5918dd20347 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceActionMapper.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceActionMapper.java
@@ -1,35 +1,27 @@
package net.mqtts.link.mapper.device;
import java.util.List;
-import net.mqtts.link.domain.device.MqttsDeviceAction;
+
+import net.mqtts.link.api.domain.MqttsDeviceAction;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
-
-* @Description: java类作用描述
-
-* @Author: ShiHuan Sun
-
-* @E-mail: 13733918655@163.com
-
-* @Website: http://mqtts.net
-
-* @CreateDate: 2021/11/18$ 9:41$
-
-* @UpdateUser: ShiHuan Sun
-
-* @UpdateDate: 2021/11/18$ 9:41$
-
-* @UpdateRemark: 修改内容
-
-* @Version: 1.0
-
-*/
+ * @Description: java类作用描述
+ * @Author: ShiHuan Sun
+ * @E-mail: 13733918655@163.com
+ * @Website: http://mqtts.net
+ * @CreateDate: 2021/11/18$ 9:41$
+ * @UpdateUser: ShiHuan Sun
+ * @UpdateDate: 2021/11/18$ 9:41$
+ * @UpdateRemark: 修改内容
+ * @Version: 1.0
+ */
@Mapper
public interface MqttsDeviceActionMapper {
/**
* delete by primary key
+ *
* @param id primaryKey
* @return deleteCount
*/
@@ -37,6 +29,7 @@ public interface MqttsDeviceActionMapper {
/**
* insert record to table
+ *
* @param record the record
* @return insert count
*/
@@ -50,13 +43,23 @@ public interface MqttsDeviceActionMapper {
/**
* insert record to table selective
+ *
* @param record the record
* @return insert count
*/
int insertSelective(MqttsDeviceAction record);
+ /**
+ * 查询设备动作列表
+ *
+ * @param record
+ * @return
+ */
+ List selectMqttsDeviceActionList(MqttsDeviceAction record);
+
/**
* select by primary key
+ *
* @param id primary key
* @return object by primary key
*/
@@ -64,6 +67,7 @@ public interface MqttsDeviceActionMapper {
/**
* update record selective
+ *
* @param record the updated record
* @return update count
*/
@@ -73,6 +77,7 @@ public interface MqttsDeviceActionMapper {
/**
* update record
+ *
* @param record the updated record
* @return update count
*/
@@ -83,4 +88,6 @@ public interface MqttsDeviceActionMapper {
int updateBatchSelective(List list);
int batchInsert(@Param("list") List list);
+
+ int deleteMqttsDeviceActionByIds(Long[] ids);
}
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceDatasMapper.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceDatasMapper.java
index 38797baf42fdbffe07f617aabe18b6a400f248ba..8ccc05e6d9288adf66a129b4161c2aa0b42bc318 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceDatasMapper.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceDatasMapper.java
@@ -1,7 +1,8 @@
package net.mqtts.link.mapper.device;
import java.util.List;
-import net.mqtts.link.domain.device.MqttsDeviceDatas;
+
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -55,6 +56,8 @@ public interface MqttsDeviceDatasMapper {
*/
int insertSelective(MqttsDeviceDatas record);
+ List selectMqttsDeviceDatasList(MqttsDeviceDatas record);
+
/**
* select by primary key
* @param id primary key
@@ -83,4 +86,6 @@ public interface MqttsDeviceDatasMapper {
int updateBatchSelective(List list);
int batchInsert(@Param("list") List list);
+
+ int deleteMqttsDeviceDatasByIds(Long[] ids);
}
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceMapper.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceMapper.java
index 0bb6739310d6ab7eb5d5f9d7d53f5498d1198b33..e382e8c576c2508d34e484b0aa4d20970e561d89 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceMapper.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/mapper/device/MqttsDeviceMapper.java
@@ -1,11 +1,10 @@
package net.mqtts.link.mapper.device;
+import net.mqtts.link.api.domain.MqttsDevice;
import org.apache.ibatis.annotations.Param;
import java.util.List;
-import net.mqtts.link.domain.device.MqttsDevice;
-
/**
* 设备管理Mapper接口
*
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceActionService.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceActionService.java
index 39d75e6c4250a810bc141e7c322dfb4b740a7bab..4f9da220021a92ab28acfab81bbf1f3991a71153 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceActionService.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceActionService.java
@@ -1,29 +1,21 @@
package net.mqtts.link.service.device;
-import java.util.List;
-import net.mqtts.link.domain.device.MqttsDeviceAction;
- /**
-
-* @Description: java类作用描述
-
-* @Author: ShiHuan Sun
-
-* @E-mail: 13733918655@163.com
-
-* @Website: http://mqtts.net
-
-* @CreateDate: 2021/11/18$ 9:41$
+import net.mqtts.link.api.domain.MqttsDeviceAction;
-* @UpdateUser: ShiHuan Sun
-
-* @UpdateDate: 2021/11/18$ 9:41$
-
-* @UpdateRemark: 修改内容
-
-* @Version: 1.0
+import java.util.List;
-*/
-public interface MqttsDeviceActionService{
+/**
+ * @Description: java类作用描述
+ * @Author: ShiHuan Sun
+ * @E-mail: 13733918655@163.com
+ * @Website: http://mqtts.net
+ * @CreateDate: 2021/11/18$ 9:41$
+ * @UpdateUser: ShiHuan Sun
+ * @UpdateDate: 2021/11/18$ 9:41$
+ * @UpdateRemark: 修改内容
+ * @Version: 1.0
+ */
+public interface MqttsDeviceActionService {
int deleteByPrimaryKey(Long id);
@@ -38,6 +30,8 @@ public interface MqttsDeviceActionService{
int insertSelective(MqttsDeviceAction record);
+ List selectMqttsDeviceActionList(MqttsDeviceAction record);
+
MqttsDeviceAction selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(MqttsDeviceAction record);
@@ -52,4 +46,5 @@ public interface MqttsDeviceActionService{
int batchInsert(List list);
+ int deleteMqttsDeviceActionByIds(Long[] ids);
}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceDatasService.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceDatasService.java
index 4d51e86f03ef99b4397bd3019143d72134bd0799..c32ed17c47d981f14b01024eaf40fb9098515043 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceDatasService.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceDatasService.java
@@ -1,29 +1,21 @@
package net.mqtts.link.service.device;
-import java.util.List;
-import net.mqtts.link.domain.device.MqttsDeviceDatas;
- /**
-
-* @Description: java类作用描述
-
-* @Author: ShiHuan Sun
-
-* @E-mail: 13733918655@163.com
-
-* @Website: http://mqtts.net
-
-* @CreateDate: 2021/11/18$ 9:41$
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
-* @UpdateUser: ShiHuan Sun
-
-* @UpdateDate: 2021/11/18$ 9:41$
-
-* @UpdateRemark: 修改内容
-
-* @Version: 1.0
+import java.util.List;
-*/
-public interface MqttsDeviceDatasService{
+/**
+ * @Description: java类作用描述
+ * @Author: ShiHuan Sun
+ * @E-mail: 13733918655@163.com
+ * @Website: http://mqtts.net
+ * @CreateDate: 2021/11/18$ 9:41$
+ * @UpdateUser: ShiHuan Sun
+ * @UpdateDate: 2021/11/18$ 9:41$
+ * @UpdateRemark: 修改内容
+ * @Version: 1.0
+ */
+public interface MqttsDeviceDatasService {
int deleteByPrimaryKey(Long id);
@@ -38,6 +30,8 @@ public interface MqttsDeviceDatasService{
int insertSelective(MqttsDeviceDatas record);
+ List selectMqttsDeviceDatasList(MqttsDeviceDatas record);
+
MqttsDeviceDatas selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(MqttsDeviceDatas record);
@@ -52,4 +46,5 @@ public interface MqttsDeviceDatasService{
int batchInsert(List list);
+ int deleteMqttsDeviceDatasByIds(Long[] ids);
}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceService.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceService.java
index 1faaf9abd52a4f10b8d1527610062fc3e95d513a..45a49765364cd66bab38d6898f8060534e5f02a9 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceService.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/MqttsDeviceService.java
@@ -1,8 +1,8 @@
package net.mqtts.link.service.device;
-import java.util.List;
+import net.mqtts.link.api.domain.MqttsDevice;
-import net.mqtts.link.domain.device.MqttsDevice;
+import java.util.List;
/**
* 设备管理Service接口
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceActionServiceImpl.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceActionServiceImpl.java
index 8a1e0f92aa2a7982d5a4173659dd53c27cd61e56..1fb0895b28e897384b2b2255487e658710e79ef8 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceActionServiceImpl.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceActionServiceImpl.java
@@ -1,6 +1,6 @@
package net.mqtts.link.service.device.impl;
-import net.mqtts.link.domain.device.MqttsDeviceAction;
+import net.mqtts.link.api.domain.MqttsDeviceAction;
import net.mqtts.link.mapper.device.MqttsDeviceActionMapper;
import net.mqtts.link.service.device.MqttsDeviceActionService;
import org.springframework.stereotype.Service;
@@ -9,28 +9,18 @@ import javax.annotation.Resource;
import java.util.List;
/**
-
-* @Description: java类作用描述
-
-* @Author: ShiHuan Sun
-
-* @E-mail: 13733918655@163.com
-
-* @Website: http://mqtts.net
-
-* @CreateDate: 2021/11/18$ 9:41$
-
-* @UpdateUser: ShiHuan Sun
-
-* @UpdateDate: 2021/11/18$ 9:41$
-
-* @UpdateRemark: 修改内容
-
-* @Version: 1.0
-
-*/
+ * @Description: java类作用描述
+ * @Author: ShiHuan Sun
+ * @E-mail: 13733918655@163.com
+ * @Website: http://mqtts.net
+ * @CreateDate: 2021/11/18$ 9:41$
+ * @UpdateUser: ShiHuan Sun
+ * @UpdateDate: 2021/11/18$ 9:41$
+ * @UpdateRemark: 修改内容
+ * @Version: 1.0
+ */
@Service
-public class MqttsDeviceActionServiceImpl implements MqttsDeviceActionService{
+public class MqttsDeviceActionServiceImpl implements MqttsDeviceActionService {
@Resource
private MqttsDeviceActionMapper mqttsDeviceActionMapper;
@@ -65,6 +55,11 @@ public class MqttsDeviceActionServiceImpl implements MqttsDeviceActionService{
return mqttsDeviceActionMapper.insertSelective(record);
}
+ @Override
+ public List selectMqttsDeviceActionList(MqttsDeviceAction record) {
+ return mqttsDeviceActionMapper.selectMqttsDeviceActionList(record);
+ }
+
@Override
public MqttsDeviceAction selectByPrimaryKey(Long id) {
return mqttsDeviceActionMapper.selectByPrimaryKey(id);
@@ -100,4 +95,9 @@ public class MqttsDeviceActionServiceImpl implements MqttsDeviceActionService{
return mqttsDeviceActionMapper.batchInsert(list);
}
+ @Override
+ public int deleteMqttsDeviceActionByIds(Long[] ids) {
+ return mqttsDeviceActionMapper.deleteMqttsDeviceActionByIds(ids);
+ }
+
}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceDatasServiceImpl.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceDatasServiceImpl.java
index bc5c9771667a10a77b0d21dbcff3ebe692a9da9c..1ec75b1a5fb61a217a04e0a53b7a589c56416377 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceDatasServiceImpl.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceDatasServiceImpl.java
@@ -1,6 +1,6 @@
package net.mqtts.link.service.device.impl;
-import net.mqtts.link.domain.device.MqttsDeviceDatas;
+import net.mqtts.link.api.domain.MqttsDeviceDatas;
import net.mqtts.link.mapper.device.MqttsDeviceDatasMapper;
import net.mqtts.link.service.device.MqttsDeviceDatasService;
import org.springframework.stereotype.Service;
@@ -65,6 +65,11 @@ public class MqttsDeviceDatasServiceImpl implements MqttsDeviceDatasService{
return mqttsDeviceDatasMapper.insertSelective(record);
}
+ @Override
+ public List selectMqttsDeviceDatasList(MqttsDeviceDatas record) {
+ return mqttsDeviceDatasMapper.selectMqttsDeviceDatasList(record);
+ }
+
@Override
public MqttsDeviceDatas selectByPrimaryKey(Long id) {
return mqttsDeviceDatasMapper.selectByPrimaryKey(id);
@@ -100,4 +105,9 @@ public class MqttsDeviceDatasServiceImpl implements MqttsDeviceDatasService{
return mqttsDeviceDatasMapper.batchInsert(list);
}
+ @Override
+ public int deleteMqttsDeviceDatasByIds(Long[] ids) {
+ return mqttsDeviceDatasMapper.deleteMqttsDeviceDatasByIds(ids);
+ }
+
}
diff --git a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceServiceImpl.java b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceServiceImpl.java
index 657954e188b253d089afa8e6d30a61d6a4e3a0d0..c7b2143d55240c4d03da932845d79a9a18acde20 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceServiceImpl.java
+++ b/mqtts-modules/mqtts-modules-link/src/main/java/net/mqtts/link/service/device/impl/MqttsDeviceServiceImpl.java
@@ -2,7 +2,7 @@ package net.mqtts.link.service.device.impl;
import net.mqtts.common.core.utils.DateUtils;
import net.mqtts.common.security.service.TokenService;
-import net.mqtts.link.domain.device.MqttsDevice;
+import net.mqtts.link.api.domain.MqttsDevice;
import net.mqtts.link.mapper.device.MqttsDeviceMapper;
import net.mqtts.link.service.device.MqttsDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication b/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication
deleted file mode 100644
index b6562b8ff6c46c01bffba94c0be12f89d8fa73a6..0000000000000000000000000000000000000000
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.auth.PasswordAuthentication
+++ /dev/null
@@ -1 +0,0 @@
-net.mqtts.link.service.impl.PasswordAuthenticationImpl
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor b/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor
deleted file mode 100644
index 3331d307c23b0089c04f260ea53d3405a4566b6d..0000000000000000000000000000000000000000
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.http.HttpActor
+++ /dev/null
@@ -1 +0,0 @@
-net.mqtts.link.controller.Actors.PublishActor
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor b/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor
deleted file mode 100644
index b5e6fc7a65e3bb6ff8529343d8def483ca4381e9..0000000000000000000000000000000000000000
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.interceptor.Interceptor
+++ /dev/null
@@ -1,3 +0,0 @@
-net.mqtts.link.service.impl.DemoMessageInterceptor
-net.mqtts.link.service.impl.DeviceActionInterceptor
-net.mqtts.link.service.impl.DeviceDatasInterceptor
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry b/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry
deleted file mode 100644
index be60c788d9caee9bcff29288eae09e99b7bf896d..0000000000000000000000000000000000000000
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/META-INF/services/io.github.quickmsg.common.message.MessageRegistry
+++ /dev/null
@@ -1 +0,0 @@
-net.mqtts.link.service.impl.MessageRegistryImpl
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceActionMapper.xml b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceActionMapper.xml
index 109e4b662fa869d7fd3879e0db98731deb4c4d6f..32b789a47b7a1e7f76f21a5695e9ce1c8b635d10 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceActionMapper.xml
+++ b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceActionMapper.xml
@@ -1,7 +1,7 @@
-
+
@@ -10,11 +10,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
id, device_id, action_type, `status`, create_time
@@ -23,6 +33,19 @@
message
+
+
+ select id, device_id, action_type, message, status, create_time from mqtts_device_action
+
+
+
+
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceDatasMapper.xml b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceDatasMapper.xml
index 68b4576b22e1a4fe3684a3f90d2bf695ba384406..4f1e6ac3dbbdf4ee146b10d41d7dbe43a1e416f5 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceDatasMapper.xml
+++ b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceDatasMapper.xml
@@ -1,7 +1,7 @@
-
+
@@ -11,11 +11,12 @@
-
+
+
id, device_id, message_id, topic, `status`, create_time
@@ -24,6 +25,20 @@
message
+
+
+ select id, device_id, message_id, topic, `status`, message,create_time from mqtts_device_datas
+
+
+
+
+
\ No newline at end of file
diff --git a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceMapper.xml b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceMapper.xml
index efbb44f61d3d0e70346a833506f67678d177f2b5..f1f9b544058ea01c672a3fe7eb3e21af270eccc5 100644
--- a/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceMapper.xml
+++ b/mqtts-modules/mqtts-modules-link/src/main/resources/mapper/link/device/MqttsDeviceMapper.xml
@@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update_time,
remark
-
+
@@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-
+
@@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, client_id, user_name, password, auth_mode, device_id, device_name, latitude, longitude, connector, device_description, device_status, connect_status, is_will, device_tags, product_id, manufacturer_id, protocol_type, device_type, create_by, create_time, update_by, update_time, remark from mqtts_device
-