From 306a68e0b7c0f7c31385db687f0c42b445e9a731 Mon Sep 17 00:00:00 2001 From: dsy Date: Fri, 28 Jul 2023 10:19:00 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=8E=B7=E5=8F=96=E7=89=A9=E7=90=86=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=BF=AB=E7=85=A7=E6=B7=BB=E5=8A=A0=E7=89=A9=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iot-module/iot-openapi/pom.xml | 40 ++++++++++++++++++- .../controller/OpenDeviceController.java | 5 ++- .../openapi/dto/vo/OpenDevicePropertyVo.java | 29 ++++++++++++++ .../openapi/service/OpenDeviceService.java | 3 ++ .../service/impl/OpenDeviceServiceImpl.java | 20 ++++++++++ 5 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/dto/vo/OpenDevicePropertyVo.java diff --git a/iot-module/iot-openapi/pom.xml b/iot-module/iot-openapi/pom.xml index f694ef63..5a5bf0cf 100644 --- a/iot-module/iot-openapi/pom.xml +++ b/iot-module/iot-openapi/pom.xml @@ -13,8 +13,6 @@ - - joda-time joda-time @@ -101,11 +99,49 @@ cc.iotkit iot-manager + + io.github.linpeilie + mapstruct-plus-spring-boot-starter + ${mapstruct-plus.version} + 11 11 + 1.3.4 + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + ${java.version} + ${java.version} + utf8 + + + org.projectlombok + lombok + ${lombok.version} + + + io.github.linpeilie + mapstruct-plus-processor + ${mapstruct-plus.version} + + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + + + + + + + \ No newline at end of file diff --git a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/controller/OpenDeviceController.java b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/controller/OpenDeviceController.java index ed85fec2..d32ed79c 100644 --- a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/controller/OpenDeviceController.java +++ b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/controller/OpenDeviceController.java @@ -5,6 +5,7 @@ import cc.iotkit.model.InvokeResult; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.openapi.dto.bo.device.OpenapiDeviceBo; import cc.iotkit.openapi.dto.bo.device.OpenapiSetDeviceServicePropertyBo; +import cc.iotkit.openapi.dto.vo.OpenDevicePropertyVo; import cc.iotkit.openapi.service.OpenBaseService; import cc.iotkit.openapi.service.OpenDeviceService; import io.swagger.annotations.Api; @@ -57,7 +58,7 @@ public class OpenDeviceController { @ApiOperation("查询指定设备的属性快照") @PostMapping("/v1/queryDevicePropertyStatus") - public Map getDevicePropertyStatus(@RequestBody @Validated Request bo) { - return openDeviceService.getDetail(bo.getData()).getProperty(); + public OpenDevicePropertyVo getDevicePropertyStatus(@RequestBody @Validated Request bo) { + return openDeviceService.getDevicePropertyStatus(bo.getData()); } } diff --git a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/dto/vo/OpenDevicePropertyVo.java b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/dto/vo/OpenDevicePropertyVo.java new file mode 100644 index 00000000..6f4f79d1 --- /dev/null +++ b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/dto/vo/OpenDevicePropertyVo.java @@ -0,0 +1,29 @@ +package cc.iotkit.openapi.dto.vo; + +import cc.iotkit.model.product.ProductModel; +import cc.iotkit.model.product.ThingModel; +import io.github.linpeilie.annotations.AutoMapper; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@ApiModel(value = "OpenDevicePropertyVo") +@Data +@AutoMapper(target = ThingModel.class) +public class OpenDevicePropertyVo { + + @ApiModelProperty(value="设备属性") + private Map property = new HashMap<>(); + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "模型内容") + private ThingModel.Model model; + + @ApiModelProperty(value = "产品key") + private String productKey; +} diff --git a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/OpenDeviceService.java b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/OpenDeviceService.java index 504a93b5..567a7fca 100644 --- a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/OpenDeviceService.java +++ b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/OpenDeviceService.java @@ -2,6 +2,7 @@ package cc.iotkit.openapi.service; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.openapi.dto.bo.device.OpenapiDeviceBo; +import cc.iotkit.openapi.dto.vo.OpenDevicePropertyVo; import java.util.Map; @@ -22,4 +23,6 @@ public interface OpenDeviceService { * 设备属性设置 */ String setProperty(String productKey, String deviceName, Map properties); + + OpenDevicePropertyVo getDevicePropertyStatus(OpenapiDeviceBo data); } diff --git a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/impl/OpenDeviceServiceImpl.java b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/impl/OpenDeviceServiceImpl.java index 69a6d95e..0e148d84 100644 --- a/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/impl/OpenDeviceServiceImpl.java +++ b/iot-module/iot-openapi/src/main/java/cc/iotkit/openapi/service/impl/OpenDeviceServiceImpl.java @@ -3,13 +3,18 @@ package cc.iotkit.openapi.service.impl; import cc.iotkit.common.enums.ErrCode; import cc.iotkit.common.exception.BizException; import cc.iotkit.common.utils.DeviceUtil; +import cc.iotkit.common.utils.MapstructUtils; import cc.iotkit.data.manager.IDeviceInfoData; import cc.iotkit.data.manager.IProductData; +import cc.iotkit.data.manager.IThingModelData; +import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo; import cc.iotkit.manager.service.DeviceService; import cc.iotkit.model.device.DeviceInfo; import cc.iotkit.model.device.message.ThingModelMessage; import cc.iotkit.model.product.Product; +import cc.iotkit.model.product.ThingModel; import cc.iotkit.openapi.dto.bo.device.OpenapiDeviceBo; +import cc.iotkit.openapi.dto.vo.OpenDevicePropertyVo; import cc.iotkit.openapi.service.OpenDeviceService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +37,10 @@ public class OpenDeviceServiceImpl implements OpenDeviceService { @Qualifier("productDataCache") private IProductData productData; + @Autowired + @Qualifier("thingModelDataCache") + private IThingModelData thingModelData; + @Autowired private DeviceService deviceService; @@ -98,5 +107,16 @@ public class OpenDeviceServiceImpl implements OpenDeviceService { return deviceService.setProperty(deviceRepetition.getDeviceId(), args, true); } + @Override + public OpenDevicePropertyVo getDevicePropertyStatus(OpenapiDeviceBo bo) { + ThingModel thingModel = thingModelData.findByProductKey(bo.getProductKey()); + OpenDevicePropertyVo propertyVo = MapstructUtils.convert(thingModel, OpenDevicePropertyVo.class); + DeviceInfo deviceInfo = deviceInfoData.findByProductKeyAndDeviceName(bo.getProductKey(), bo.getDeviceName()); + if (propertyVo != null){ + propertyVo.setProperty(deviceInfoData.getProperties(deviceInfo.getDeviceId())); + } + return propertyVo; + } + }