diff --git a/src/main/java/com/iflytop/handacid/app/service/DeviceService.java b/src/main/java/com/iflytop/handacid/app/service/DeviceService.java index f5368ef..6d21a5a 100644 --- a/src/main/java/com/iflytop/handacid/app/service/DeviceService.java +++ b/src/main/java/com/iflytop/handacid/app/service/DeviceService.java @@ -26,15 +26,23 @@ public class DeviceService { private final ChannelService channelService; public void syncOperations(SyncOperationsDTO syncOperationsDTO) { - deviceState.setMode(syncOperationsDTO.getMode()); - systemConfigService.updateValueByKey(SystemConfigKey.SOLUTION_ADD_MODE, syncOperationsDTO.getMode().toString()); - for (SyncOperationsChannel syncOperationsChannel : syncOperationsDTO.getChannels()) { - ChannelState channelState = deviceState.getChannelStateMap().get(syncOperationsChannel.getChannelCode()); - channelState.setSelected(syncOperationsChannel.isSelected()); - channelState.setTargetVolume(syncOperationsChannel.getTargetVolume()); - Channel channel = channelService.getOne(new LambdaQueryWrapper<>(Channel.class).eq(Channel::getCode, syncOperationsChannel.getChannelCode())); - channel.setTargetVolume(syncOperationsChannel.getTargetVolume()); - channelService.updateById(channel); + if(syncOperationsDTO.getMode() != null){ + deviceState.setMode(syncOperationsDTO.getMode()); + systemConfigService.updateValueByKey(SystemConfigKey.SOLUTION_ADD_MODE, syncOperationsDTO.getMode().toString()); + } + if(syncOperationsDTO.getChannels() != null){ + for (SyncOperationsChannel syncOperationsChannel : syncOperationsDTO.getChannels()) { + ChannelState channelState = deviceState.getChannelStateMap().get(syncOperationsChannel.getChannelCode()); + if(syncOperationsChannel.getSelected() != null){ + channelState.setSelected(syncOperationsChannel.getSelected()); + } + if(syncOperationsChannel.getTargetVolume() != null){ + channelState.setTargetVolume(syncOperationsChannel.getTargetVolume()); + Channel channel = channelService.getOne(new LambdaQueryWrapper<>(Channel.class).eq(Channel::getCode, syncOperationsChannel.getChannelCode())); + channel.setTargetVolume(syncOperationsChannel.getTargetVolume()); + channelService.updateById(channel); + } + } } } }