Commit d9b62aea2503af568a9972b4702421a065d45fce
1 parent
5bd06662
refactor(DEFECT-1062): 设备事件验证设备有效性
Showing
2 changed files
with
10 additions
and
7 deletions
@@ -593,8 +593,6 @@ public class DefaultTransportService implements TransportService { | @@ -593,8 +593,6 @@ public class DefaultTransportService implements TransportService { | ||
593 | DeviceId deviceId = new DeviceId(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB())); | 593 | DeviceId deviceId = new DeviceId(new UUID(sessionInfo.getDeviceIdMSB(), sessionInfo.getDeviceIdLSB())); |
594 | metaData.putValue("deviceName", sessionInfo.getDeviceName()); | 594 | metaData.putValue("deviceName", sessionInfo.getDeviceName()); |
595 | metaData.putValue("deviceType", sessionInfo.getDeviceType()); | 595 | metaData.putValue("deviceType", sessionInfo.getDeviceType()); |
596 | - UUID deviceProfileId = new UUID(sessionInfo.getDeviceProfileIdMSB(),sessionInfo.getDeviceProfileIdLSB()); | ||
597 | - metaData.putValue("device_profile_id", deviceProfileId.toString()); | ||
598 | metaData.putValue("deviceId",eventInfo[0]); | 596 | metaData.putValue("deviceId",eventInfo[0]); |
599 | metaData.putValue("event_identifier", eventInfo[1]); | 597 | metaData.putValue("event_identifier", eventInfo[1]); |
600 | sendToRuleEngine(tenantId, deviceId, customerId, sessionInfo, json, metaData, SessionMsgType.POST_EVENT_REQUEST, | 598 | sendToRuleEngine(tenantId, deviceId, customerId, sessionInfo, json, metaData, SessionMsgType.POST_EVENT_REQUEST, |
@@ -20,6 +20,7 @@ import org.thingsboard.rule.engine.api.*; | @@ -20,6 +20,7 @@ import org.thingsboard.rule.engine.api.*; | ||
20 | import org.thingsboard.rule.engine.api.util.TbNodeUtils; | 20 | import org.thingsboard.rule.engine.api.util.TbNodeUtils; |
21 | import org.thingsboard.rule.engine.telemetry.TelemetryNodeCallback; | 21 | import org.thingsboard.rule.engine.telemetry.TelemetryNodeCallback; |
22 | import org.thingsboard.server.common.data.DeviceProfile; | 22 | import org.thingsboard.server.common.data.DeviceProfile; |
23 | +import org.thingsboard.server.common.data.id.DeviceId; | ||
23 | import org.thingsboard.server.common.data.id.DeviceProfileId; | 24 | import org.thingsboard.server.common.data.id.DeviceProfileId; |
24 | import org.thingsboard.server.common.data.id.TenantId; | 25 | import org.thingsboard.server.common.data.id.TenantId; |
25 | import org.thingsboard.server.common.data.plugin.ComponentType; | 26 | import org.thingsboard.server.common.data.plugin.ComponentType; |
@@ -66,11 +67,15 @@ public class TkMsgEventNode implements TbNode { | @@ -66,11 +67,15 @@ public class TkMsgEventNode implements TbNode { | ||
66 | ctx.tellFailure(msg, new IllegalArgumentException("Unsupported msg type: " + msg.getType())); | 67 | ctx.tellFailure(msg, new IllegalArgumentException("Unsupported msg type: " + msg.getType())); |
67 | return; | 68 | return; |
68 | } | 69 | } |
69 | - String deviceProfileId = msg.getMetaData().getValue(DEVICE_DEVICE_PROFILE_ID_PROPERTY); | ||
70 | - TenantId tenantId = ctx.getTenantId(); | ||
71 | - DeviceProfileId profileId = new DeviceProfileId(UUID.fromString(deviceProfileId)); | ||
72 | - DeviceProfile profile = cache.get(tenantId,profileId); | 70 | + String deviceIdStr = msg.getMetaData().getValue("deviceId"); |
71 | + DeviceId deviceId = DeviceId.fromString(deviceIdStr); | ||
73 | String eventIdentifier = msg.getMetaData().getValue(EVENT_IDENTIFIER_COLUMN); | 72 | String eventIdentifier = msg.getMetaData().getValue(EVENT_IDENTIFIER_COLUMN); |
73 | + TenantId tenantId = ctx.getTenantId(); | ||
74 | + DeviceProfile profile = cache.get(tenantId,deviceId); | ||
75 | + if(profile == null){ | ||
76 | + ctx.tellFailure(msg,new TbNodeException(String.format("设备【%s】不存在。", deviceIdStr))); | ||
77 | + return; | ||
78 | + } | ||
74 | List<TkThingsModel> eventList =profile.getProfileData().getThingsModel().stream() | 79 | List<TkThingsModel> eventList =profile.getProfileData().getThingsModel().stream() |
75 | .filter(f -> f.getIdentifier().equals(eventIdentifier) && FunctionTypeEnum.events.equals(f.getFunctionType())) | 80 | .filter(f -> f.getIdentifier().equals(eventIdentifier) && FunctionTypeEnum.events.equals(f.getFunctionType())) |
76 | .collect(Collectors.toList()); | 81 | .collect(Collectors.toList()); |
@@ -90,7 +95,7 @@ public class TkMsgEventNode implements TbNode { | @@ -90,7 +95,7 @@ public class TkMsgEventNode implements TbNode { | ||
90 | long ts = System.currentTimeMillis(); | 95 | long ts = System.currentTimeMillis(); |
91 | String src = msg.getData(); | 96 | String src = msg.getData(); |
92 | ctx.getTelemetryService().saveAndNotify( | 97 | ctx.getTelemetryService().saveAndNotify( |
93 | - tenantId,profileId, | 98 | + tenantId,profile.getId(), |
94 | msg.getOriginator(), | 99 | msg.getOriginator(), |
95 | entryList, | 100 | entryList, |
96 | src,ts, | 101 | src,ts, |