diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/enums/rule/IotSceneRuleConditionLevelEnum.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/enums/rule/IotSceneRuleConditionLevelEnum.java deleted file mode 100644 index c83b72c1f5..0000000000 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/enums/rule/IotSceneRuleConditionLevelEnum.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.iocoder.yudao.module.iot.enums.rule; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * IoT 场景规则条件层级枚举 - *

- * 用于区分主条件(触发器级别)和子条件(条件分组级别) - * - * @author HUIHUI - */ -@AllArgsConstructor -@Getter -public enum IotSceneRuleConditionLevelEnum { - - /** - * 主条件 - 触发器级别的条件 - * 用于判断触发器本身是否匹配(如消息类型、设备标识等) - */ - PRIMARY(1, "主条件"), - - /** - * 子条件 - 条件分组级别的条件 - * 用于判断具体的业务条件(如设备状态、属性值、时间条件等) - */ - SECONDARY(2, "子条件"); - - /** - * 条件层级 - */ - private final Integer level; - - /** - * 条件层级名称 - */ - private final String name; - - /** - * 根据层级值获取枚举 - * - * @param level 层级值 - * @return 条件层级枚举 - */ - public static IotSceneRuleConditionLevelEnum levelOf(Integer level) { - if (level == null) { - return null; - } - for (IotSceneRuleConditionLevelEnum levelEnum : values()) { - if (levelEnum.getLevel().equals(level)) { - return levelEnum; - } - } - return null; - } - - /** - * 判断是否为主条件 - * - * @return 是否为主条件 - */ - public boolean isPrimary() { - return this == PRIMARY; - } - - /** - * 判断是否为子条件 - * - * @return 是否为子条件 - */ - public boolean isSecondary() { - return this == SECONDARY; - } -} diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/CurrentTimeConditionMatcher.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/CurrentTimeConditionMatcher.java index df11c666da..ae6c8f671d 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/CurrentTimeConditionMatcher.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/CurrentTimeConditionMatcher.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iot.service.rule.scene.matcher; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO; -import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionLevelEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -43,11 +42,6 @@ public class CurrentTimeConditionMatcher extends AbstractIotSceneRuleMatcher { return IotSceneRuleConditionTypeEnum.CURRENT_TIME; } - @Override - public IotSceneRuleConditionLevelEnum getSupportedConditionLevel() { - return IotSceneRuleConditionLevelEnum.SECONDARY; - } - @Override public boolean isMatched(IotDeviceMessage message, IotSceneRuleDO.TriggerCondition condition) { // 1. 基础参数校验 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DevicePropertyConditionMatcher.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DevicePropertyConditionMatcher.java index 70c789edcd..ed8e12d6c6 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DevicePropertyConditionMatcher.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DevicePropertyConditionMatcher.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iot.service.rule.scene.matcher; import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.core.util.IotDeviceMessageUtils; import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO; -import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionLevelEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum; import org.springframework.stereotype.Component; @@ -27,11 +26,6 @@ public class DevicePropertyConditionMatcher extends AbstractIotSceneRuleMatcher return IotSceneRuleConditionTypeEnum.DEVICE_PROPERTY; } - @Override - public IotSceneRuleConditionLevelEnum getSupportedConditionLevel() { - return IotSceneRuleConditionLevelEnum.SECONDARY; - } - @Override public boolean isMatched(IotDeviceMessage message, IotSceneRuleDO.TriggerCondition condition) { // 1. 基础参数校验 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DeviceStateConditionMatcher.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DeviceStateConditionMatcher.java index aa3acab2a1..f946e499c8 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DeviceStateConditionMatcher.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/DeviceStateConditionMatcher.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.iot.service.rule.scene.matcher; import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO; -import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionLevelEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum; import org.springframework.stereotype.Component; @@ -26,11 +25,6 @@ public class DeviceStateConditionMatcher extends AbstractIotSceneRuleMatcher { return IotSceneRuleConditionTypeEnum.DEVICE_STATE; } - @Override - public IotSceneRuleConditionLevelEnum getSupportedConditionLevel() { - return IotSceneRuleConditionLevelEnum.SECONDARY; - } - @Override public boolean isMatched(IotDeviceMessage message, IotSceneRuleDO.TriggerCondition condition) { // 1. 基础参数校验 diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcher.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcher.java index 5e5c35baf5..cb12384647 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcher.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcher.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.iot.service.rule.scene.matcher; import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO; -import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionLevelEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum; @@ -58,15 +57,6 @@ public interface IotSceneRuleMatcher { return null; } - /** - * 获取支持的条件层级(仅条件匹配器需要实现) - * - * @return 条件层级枚举,触发器匹配器返回 null - */ - default IotSceneRuleConditionLevelEnum getSupportedConditionLevel() { - return null; - } - /** * 检查触发器是否匹配消息(仅触发器匹配器需要实现) * diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcherManager.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcherManager.java index 9852e4acdb..7c45a6ca6b 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcherManager.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/IotSceneRuleMatcherManager.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.iot.service.rule.scene.matcher; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.module.iot.core.mq.message.IotDeviceMessage; import cn.iocoder.yudao.module.iot.dal.dataobject.rule.IotSceneRuleDO; -import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionLevelEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleConditionTypeEnum; import cn.iocoder.yudao.module.iot.enums.rule.IotSceneRuleTriggerTypeEnum; import lombok.extern.slf4j.Slf4j; @@ -107,8 +106,8 @@ public class IotSceneRuleMatcherManager { // 记录条件匹配器详情 this.conditionMatcherMap.forEach((type, matcher) -> - log.info("[IotSceneRuleMatcherManager][条件匹配器] 类型: {}, 匹配器: {}, 优先级: {}, 层级: {}", - type, matcher.getMatcherName(), matcher.getPriority(), matcher.getSupportedConditionLevel())); + log.info("[IotSceneRuleMatcherManager][条件匹配器] 类型: {}, 匹配器: {}, 优先级: {}", + type, matcher.getMatcherName(), matcher.getPriority())); } /** @@ -232,19 +231,6 @@ public class IotSceneRuleMatcherManager { return conditionMatcherMap.get(conditionType); } - /** - * 根据条件层级获取匹配器列表 - * - * @param level 条件层级 - * @return 匹配器列表 - */ - public List getMatchersByLevel(IotSceneRuleConditionLevelEnum level) { - return allMatchers.stream() - .filter(matcher -> matcher.getMatcherType() == IotSceneRuleMatcher.MatcherType.CONDITION) - .filter(matcher -> matcher.getSupportedConditionLevel() == level) - .collect(Collectors.toList()); - } - /** * 获取所有匹配器的统计信息 * @@ -258,15 +244,6 @@ public class IotSceneRuleMatcherManager { statistics.put("supportedTriggerTypes", getSupportedTriggerTypes()); statistics.put("supportedConditionTypes", getSupportedConditionTypes()); - // 按层级统计条件匹配器 - Map levelStats = allMatchers.stream() - .filter(matcher -> matcher.getMatcherType() == IotSceneRuleMatcher.MatcherType.CONDITION) - .collect(Collectors.groupingBy( - IotSceneRuleMatcher::getSupportedConditionLevel, - Collectors.counting() - )); - statistics.put("conditionLevelStatistics", levelStats); - // 触发器匹配器详情 Map triggerMatcherDetails = new HashMap<>(); triggerMatcherMap.forEach((type, matcher) -> { @@ -284,7 +261,6 @@ public class IotSceneRuleMatcherManager { Map detail = new HashMap<>(); detail.put("matcherName", matcher.getMatcherName()); detail.put("priority", matcher.getPriority()); - detail.put("level", matcher.getSupportedConditionLevel()); detail.put("enabled", matcher.isEnabled()); conditionMatcherDetails.put(type.name(), detail); });