【代码优化】IoT:去除 Simulation 关键字,定义更清晰

This commit is contained in:
YunaiV 2025-01-31 22:47:04 +08:00
parent 252366781d
commit 47c281d933
8 changed files with 36 additions and 31 deletions

View File

@ -6,9 +6,9 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationDownstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceDownstreamReqVO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.device.*; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.device.*;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationUpstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceUpstreamReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
import cn.iocoder.yudao.module.iot.service.device.IotDeviceService; import cn.iocoder.yudao.module.iot.service.device.IotDeviceService;
import cn.iocoder.yudao.module.iot.service.device.control.IotDeviceDownstreamService; import cn.iocoder.yudao.module.iot.service.device.control.IotDeviceDownstreamService;
@ -159,21 +159,19 @@ public class IotDeviceController {
ExcelUtils.write(response, "设备导入模板.xls", "数据", IotDeviceImportExcelVO.class, list); ExcelUtils.write(response, "设备导入模板.xls", "数据", IotDeviceImportExcelVO.class, list);
} }
@PostMapping("/simulation-upstream") @PostMapping("/upstream")
@Operation(summary = "模拟设备上行") @Operation(summary = "设备上行", description = "可用于设备模拟")
@PreAuthorize("@ss.hasPermission('iot:device:simulation')") @PreAuthorize("@ss.hasPermission('iot:device:upstream')")
public CommonResult<Boolean> simulationDeviceUpstream( public CommonResult<Boolean> upstreamDevice(@Valid @RequestBody IotDeviceUpstreamReqVO upstreamReqVO) {
@Valid @RequestBody IotDeviceSimulationUpstreamReqVO upstreamReqVO) { deviceUpstreamService.upstreamDevice(upstreamReqVO);
deviceUpstreamService.simulationDeviceUpstream(upstreamReqVO);
return success(true); return success(true);
} }
@PostMapping("/simulation-downstream") @PostMapping("/downstream")
@Operation(summary = "模拟设备下行") @Operation(summary = "设备下行", description = "可用于设备模拟")
@PreAuthorize("@ss.hasPermission('iot:device:simulation')") @PreAuthorize("@ss.hasPermission('iot:device:downstream')")
public CommonResult<Boolean> simulationDownstreamDevice( public CommonResult<Boolean> downstreamDevice(@Valid @RequestBody IotDeviceDownstreamReqVO downstreamReqVO) {
@Valid @RequestBody IotDeviceSimulationDownstreamReqVO downstreamReqVO) { deviceDownstreamService.downstreamDevice(downstreamReqVO);
deviceDownstreamService.simulationDeviceDownstream(downstreamReqVO);
return success(true); return success(true);
} }

View File

@ -7,9 +7,9 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@Schema(description = "管理后台 - IoT 模拟设备下行 Request VO") // 服务调用属性设置属性获取等 @Schema(description = "管理后台 - IoT 设备下行 Request VO") // 服务调用属性设置属性获取等
@Data @Data
public class IotDeviceSimulationDownstreamReqVO { public class IotDeviceDownstreamReqVO {
@Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "177") @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "177")
@NotNull(message = "设备编号不能为空") @NotNull(message = "设备编号不能为空")

View File

@ -7,9 +7,9 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@Schema(description = "管理后台 - IoT 模拟设备上行 Request VO") // 属性上报事件上报状态变更等 @Schema(description = "管理后台 - IoT 设备上行 Request VO") // 属性上报事件上报状态变更等
@Data @Data
public class IotDeviceSimulationUpstreamReqVO { public class IotDeviceUpstreamReqVO {
@Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "177") @Schema(description = "设备编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "177")
@NotNull(message = "设备编号不能为空") @NotNull(message = "设备编号不能为空")

View File

@ -160,4 +160,11 @@ public class IotDeviceDO extends BaseDO {
*/ */
private String address; private String address;
/**
* 设备配置
*
* JSON 格式可下发给 device 进行自定义配置
*/
private String config;
} }

View File

@ -1,6 +1,6 @@
package cn.iocoder.yudao.module.iot.service.device.control; package cn.iocoder.yudao.module.iot.service.device.control;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationDownstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceDownstreamReqVO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
/** /**
@ -13,10 +13,10 @@ import jakarta.validation.Valid;
public interface IotDeviceDownstreamService { public interface IotDeviceDownstreamService {
/** /**
* 模拟设备下行 * 设备下行可用于设备模拟
* *
* @param downstreamReqVO 设备下行请求 VO * @param downstreamReqVO 设备下行请求 VO
*/ */
void simulationDeviceDownstream(@Valid IotDeviceSimulationDownstreamReqVO downstreamReqVO); void downstreamDevice(@Valid IotDeviceDownstreamReqVO downstreamReqVO);
} }

View File

@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDeviceDo
import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDevicePropertyGetReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDevicePropertyGetReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDevicePropertySetReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDevicePropertySetReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDeviceServiceInvokeReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.downstream.IotDeviceServiceInvokeReqDTO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationDownstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceDownstreamReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.plugin.IotPluginInstanceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.plugin.IotPluginInstanceDO;
import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageIdentifierEnum; import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageIdentifierEnum;
@ -56,7 +56,7 @@ public class IotDeviceDownstreamServiceImpl implements IotDeviceDownstreamServic
private IotDeviceProducer deviceProducer; private IotDeviceProducer deviceProducer;
@Override @Override
public void simulationDeviceDownstream(IotDeviceSimulationDownstreamReqVO downstreamReqVO) { public void downstreamDevice(IotDeviceDownstreamReqVO downstreamReqVO) {
// 校验设备是否存在 // 校验设备是否存在
IotDeviceDO device = deviceService.validateDeviceExists(downstreamReqVO.getId()); IotDeviceDO device = deviceService.validateDeviceExists(downstreamReqVO.getId());
// TODO 芋艿父设备的处理 // TODO 芋艿父设备的处理
@ -93,7 +93,7 @@ public class IotDeviceDownstreamServiceImpl implements IotDeviceDownstreamServic
* @param parentDevice 父设备 * @param parentDevice 父设备
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void invokeDeviceService(IotDeviceSimulationDownstreamReqVO downstreamReqVO, private void invokeDeviceService(IotDeviceDownstreamReqVO downstreamReqVO,
IotDeviceDO device, IotDeviceDO parentDevice) { IotDeviceDO device, IotDeviceDO parentDevice) {
// 1. 参数校验 // 1. 参数校验
if (!(downstreamReqVO.getData() instanceof Map<?, ?>)) { if (!(downstreamReqVO.getData() instanceof Map<?, ?>)) {
@ -130,7 +130,7 @@ public class IotDeviceDownstreamServiceImpl implements IotDeviceDownstreamServic
* @param parentDevice 父设备 * @param parentDevice 父设备
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void setDeviceProperty(IotDeviceSimulationDownstreamReqVO downstreamReqVO, private void setDeviceProperty(IotDeviceDownstreamReqVO downstreamReqVO,
IotDeviceDO device, IotDeviceDO parentDevice) { IotDeviceDO device, IotDeviceDO parentDevice) {
// 1. 参数校验 // 1. 参数校验
if (!(downstreamReqVO.getData() instanceof Map<?, ?>)) { if (!(downstreamReqVO.getData() instanceof Map<?, ?>)) {
@ -168,7 +168,7 @@ public class IotDeviceDownstreamServiceImpl implements IotDeviceDownstreamServic
* @param parentDevice 父设备 * @param parentDevice 父设备
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void getDeviceProperty(IotDeviceSimulationDownstreamReqVO downstreamReqVO, private void getDeviceProperty(IotDeviceDownstreamReqVO downstreamReqVO,
IotDeviceDO device, IotDeviceDO parentDevice) { IotDeviceDO device, IotDeviceDO parentDevice) {
// 1. 参数校验 // 1. 参数校验
if (!(downstreamReqVO.getData() instanceof List<?>)) { if (!(downstreamReqVO.getData() instanceof List<?>)) {

View File

@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.iot.service.device.control;
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceEventReportReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceEventReportReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDevicePropertyReportReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDevicePropertyReportReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceStateUpdateReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceStateUpdateReqDTO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationUpstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceUpstreamReqVO;
import jakarta.validation.Valid; import jakarta.validation.Valid;
/** /**
@ -16,11 +16,11 @@ import jakarta.validation.Valid;
public interface IotDeviceUpstreamService { public interface IotDeviceUpstreamService {
/** /**
* 模拟设备上行 * 设备上行可用于设备模拟
* *
* @param simulatorReqVO 设备上行请求 VO * @param simulatorReqVO 设备上行请求 VO
*/ */
void simulationDeviceUpstream(@Valid IotDeviceSimulationUpstreamReqVO simulatorReqVO); void upstreamDevice(@Valid IotDeviceUpstreamReqVO simulatorReqVO);
/** /**
* 更新设备状态 * 更新设备状态

View File

@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceEven
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDevicePropertyReportReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDevicePropertyReportReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceStateUpdateReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceStateUpdateReqDTO;
import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceUpstreamAbstractReqDTO; import cn.iocoder.yudao.module.iot.api.device.dto.control.upstream.IotDeviceUpstreamAbstractReqDTO;
import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceSimulationUpstreamReqVO; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.control.IotDeviceUpstreamReqVO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO; import cn.iocoder.yudao.module.iot.dal.dataobject.device.IotDeviceDO;
import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageIdentifierEnum; import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageIdentifierEnum;
import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageTypeEnum; import cn.iocoder.yudao.module.iot.enums.device.IotDeviceMessageTypeEnum;
@ -52,7 +52,7 @@ public class IotDeviceUpstreamServiceImpl implements IotDeviceUpstreamService {
@Override @Override
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void simulationDeviceUpstream(IotDeviceSimulationUpstreamReqVO simulatorReqVO) { public void upstreamDevice(IotDeviceUpstreamReqVO simulatorReqVO) {
// 1. 校验存在 // 1. 校验存在
IotDeviceDO device = deviceService.validateDeviceExists(simulatorReqVO.getId()); IotDeviceDO device = deviceService.validateDeviceExists(simulatorReqVO.getId());