Commit 9c6c1584e7fdf065f81335070b6eb1fd2645cfe5

Authored by puhui999
1 parent 94abcdff

perf:【IoT 物联网】优化 CurrentTimeConditionMatcher 时间条件匹配器 switch 兼容 jdk8

yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/rule/scene/matcher/condition/CurrentTimeConditionMatcher.java
@@ -123,7 +123,6 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher @@ -123,7 +123,6 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher
123 isDateTimeOperator(operatorEnum); 123 isDateTimeOperator(operatorEnum);
124 } 124 }
125 125
126 - // TODO @puhui999:switch 兼容下 jdk8  
127 /** 126 /**
128 * 匹配日期时间(时间戳) 127 * 匹配日期时间(时间戳)
129 * 直接实现时间戳比较逻辑 128 * 直接实现时间戳比较逻辑
@@ -131,15 +130,17 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher @@ -131,15 +130,17 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher
131 private boolean matchDateTime(long currentTimestamp, IotSceneRuleConditionOperatorEnum operatorEnum, String param) { 130 private boolean matchDateTime(long currentTimestamp, IotSceneRuleConditionOperatorEnum operatorEnum, String param) {
132 try { 131 try {
133 long targetTimestamp = Long.parseLong(param); 132 long targetTimestamp = Long.parseLong(param);
134 - return switch (operatorEnum) {  
135 - case DATE_TIME_GREATER_THAN -> currentTimestamp > targetTimestamp;  
136 - case DATE_TIME_LESS_THAN -> currentTimestamp < targetTimestamp;  
137 - case DATE_TIME_BETWEEN -> matchDateTimeBetween(currentTimestamp, param);  
138 - default -> { 133 + switch (operatorEnum) {
  134 + case DATE_TIME_GREATER_THAN:
  135 + return currentTimestamp > targetTimestamp;
  136 + case DATE_TIME_LESS_THAN:
  137 + return currentTimestamp < targetTimestamp;
  138 + case DATE_TIME_BETWEEN:
  139 + return matchDateTimeBetween(currentTimestamp, param);
  140 + default:
139 log.warn("[matchDateTime][operatorEnum({}) 不支持的日期时间操作符]", operatorEnum); 141 log.warn("[matchDateTime][operatorEnum({}) 不支持的日期时间操作符]", operatorEnum);
140 - yield false;  
141 - }  
142 - }; 142 + return false;
  143 + }
143 } catch (Exception e) { 144 } catch (Exception e) {
144 log.error("[matchDateTime][operatorEnum({}) param({}) 日期时间匹配异常]", operatorEnum, param, e); 145 log.error("[matchDateTime][operatorEnum({}) param({}) 日期时间匹配异常]", operatorEnum, param, e);
145 return false; 146 return false;
@@ -167,15 +168,17 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher @@ -167,15 +168,17 @@ public class CurrentTimeConditionMatcher implements IotSceneRuleConditionMatcher
167 private boolean matchTime(LocalTime currentTime, IotSceneRuleConditionOperatorEnum operatorEnum, String param) { 168 private boolean matchTime(LocalTime currentTime, IotSceneRuleConditionOperatorEnum operatorEnum, String param) {
168 try { 169 try {
169 LocalTime targetTime = parseTime(param); 170 LocalTime targetTime = parseTime(param);
170 - return switch (operatorEnum) {  
171 - case TIME_GREATER_THAN -> currentTime.isAfter(targetTime);  
172 - case TIME_LESS_THAN -> currentTime.isBefore(targetTime);  
173 - case TIME_BETWEEN -> matchTimeBetween(currentTime, param);  
174 - default -> { 171 + switch (operatorEnum) {
  172 + case TIME_GREATER_THAN:
  173 + return currentTime.isAfter(targetTime);
  174 + case TIME_LESS_THAN:
  175 + return currentTime.isBefore(targetTime);
  176 + case TIME_BETWEEN:
  177 + return matchTimeBetween(currentTime, param);
  178 + default:
175 log.warn("[matchTime][operatorEnum({}) 不支持的时间操作符]", operatorEnum); 179 log.warn("[matchTime][operatorEnum({}) 不支持的时间操作符]", operatorEnum);
176 - yield false;  
177 - }  
178 - }; 180 + return false;
  181 + }
179 } catch (Exception e) { 182 } catch (Exception e) {
180 log.error("[matchTime][][operatorEnum({}) param({}) 时间解析异常]", operatorEnum, param, e); 183 log.error("[matchTime][][operatorEnum({}) param({}) 时间解析异常]", operatorEnum, param, e);
181 return false; 184 return false;