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 + + + + + + + and status = #{status} + and device_id = #{deviceId} + + + + - + insert into mqtts_device id, @@ -164,7 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update mqtts_device client_id = #{clientId},