|
@@ -8,6 +8,7 @@ import org.jetlinks.community.device.enums.DirectiveState;
|
|
|
import org.jetlinks.community.device.service.DeviceDirectivesService;
|
|
import org.jetlinks.community.device.service.DeviceDirectivesService;
|
|
|
import org.jetlinks.core.device.DeviceOperator;
|
|
import org.jetlinks.core.device.DeviceOperator;
|
|
|
import org.jetlinks.core.exception.DeviceOperationException;
|
|
import org.jetlinks.core.exception.DeviceOperationException;
|
|
|
|
|
+import org.jetlinks.core.message.ChildDeviceMessage;
|
|
|
import org.jetlinks.core.message.CommonDeviceMessage;
|
|
import org.jetlinks.core.message.CommonDeviceMessage;
|
|
|
import org.jetlinks.core.message.DeviceMessage;
|
|
import org.jetlinks.core.message.DeviceMessage;
|
|
|
import org.jetlinks.core.message.function.FunctionInvokeMessage;
|
|
import org.jetlinks.core.message.function.FunctionInvokeMessage;
|
|
@@ -58,7 +59,8 @@ public class DeviceDirectiveSendInterceptor implements DeviceMessageSenderInterc
|
|
|
public <R extends DeviceMessage> Flux<R> afterSent(DeviceOperator device, DeviceMessage message, Flux<R> reply) {
|
|
public <R extends DeviceMessage> Flux<R> afterSent(DeviceOperator device, DeviceMessage message, Flux<R> reply) {
|
|
|
DeviceDirectivesEntity.MessageType directive = isDirective(message);
|
|
DeviceDirectivesEntity.MessageType directive = isDirective(message);
|
|
|
if(directive!=null){
|
|
if(directive!=null){
|
|
|
- return reply.cast(DeviceMessage.class)
|
|
|
|
|
|
|
+ return reply
|
|
|
|
|
+ .cast(DeviceMessage.class)
|
|
|
.flatMap(msg->
|
|
.flatMap(msg->
|
|
|
deviceDirectivesService.createUpdate()
|
|
deviceDirectivesService.createUpdate()
|
|
|
.where(DeviceDirectivesEntity::getDeviceId,msg.getDeviceId())
|
|
.where(DeviceDirectivesEntity::getDeviceId,msg.getDeviceId())
|
|
@@ -88,6 +90,9 @@ public class DeviceDirectiveSendInterceptor implements DeviceMessageSenderInterc
|
|
|
if(message instanceof WritePropertyMessage){
|
|
if(message instanceof WritePropertyMessage){
|
|
|
return DeviceDirectivesEntity.MessageType.WRITE_PROPERTY;
|
|
return DeviceDirectivesEntity.MessageType.WRITE_PROPERTY;
|
|
|
}
|
|
}
|
|
|
|
|
+ if(message instanceof ChildDeviceMessage){
|
|
|
|
|
+ return DeviceDirectivesEntity.MessageType.CHILD;
|
|
|
|
|
+ }
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|