Commit a9dc654b364a64f040ae10f97ebe04397099a2a7

Authored by 安浩浩
1 parent 9b238935

【功能优化】IoT: 注释掉脚本服务相关代码,移除不必要的依赖,简化产品脚本测试逻辑

yudao-module-iot/yudao-module-iot-biz/pom.xml
... ... @@ -70,11 +70,11 @@
70 70 </dependency>
71 71  
72 72 <!-- 脚本插件相关 -->
73   - <dependency>
  73 + <!--<dependency>
74 74 <groupId>cn.iocoder.boot</groupId>
75 75 <artifactId>yudao-module-iot-plugin-script</artifactId>
76 76 <version>${revision}</version>
77   - </dependency>
  77 + </dependency>-->
78 78  
79 79 <!-- 消息队列相关 -->
80 80 <dependency>
... ...
yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/service/product/IotProductScriptServiceImpl.java
... ... @@ -9,8 +9,6 @@ import cn.iocoder.yudao.module.iot.controller.admin.product.vo.script.IotProduct
9 9 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductDO;
10 10 import cn.iocoder.yudao.module.iot.dal.dataobject.product.IotProductScriptDO;
11 11 import cn.iocoder.yudao.module.iot.dal.mysql.product.IotProductScriptMapper;
12   -import cn.iocoder.yudao.module.iot.plugin.script.context.PluginScriptContext;
13   -import cn.iocoder.yudao.module.iot.plugin.script.service.ScriptService;
14 12 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
15 13 import jakarta.annotation.Resource;
16 14 import lombok.extern.slf4j.Slf4j;
... ... @@ -42,8 +40,8 @@ public class IotProductScriptServiceImpl implements IotProductScriptService {
42 40 @Resource
43 41 private IotProductService productService;
44 42  
45   - @Resource
46   - private ScriptService scriptService;
  43 +// @Resource
  44 +// private ScriptService scriptService;
47 45  
48 46 @Override
49 47 public Long createProductScript(IotProductScriptSaveReqVO createReqVO) {
... ... @@ -120,89 +118,90 @@ public class IotProductScriptServiceImpl implements IotProductScriptService {
120 118  
121 119 @Override
122 120 public IotProductScriptTestRespVO testProductScript(IotProductScriptTestReqVO testReqVO) {
123   - long startTime = System.currentTimeMillis();
124   -
125   - try {
126   - // 验证产品是否存在
127   - validateProductExists(testReqVO.getProductId());
128   -
129   - // 根据ID获取已保存的脚本(如果有)
130   - IotProductScriptDO existingScript = null;
131   - if (testReqVO.getId() != null) {
132   - existingScript = getProductScript(testReqVO.getId());
133   - }
134   -
135   - // 创建测试上下文
136   - PluginScriptContext context = new PluginScriptContext();
137   - IotProductDO product = productService.getProduct(testReqVO.getProductId());
138   -
139   - // 设置设备上下文(使用产品信息,没有具体设备)
140   - context.withDeviceContext(product.getProductKey(), null);
141   -
142   - // 设置输入参数
143   - Map<String, Object> params = new HashMap<>();
144   - params.put("input", testReqVO.getTestInput());
145   - params.put("productKey", product.getProductKey());
146   - params.put("scriptType", testReqVO.getScriptType());
147   -
148   - // 根据脚本类型设置特定参数
149   - switch (testReqVO.getScriptType()) {
150   - case 1: // PROPERTY_PARSER
151   - params.put("method", "property");
152   - break;
153   - case 2: // EVENT_PARSER
154   - params.put("method", "event");
155   - params.put("identifier", "default");
156   - break;
157   - case 3: // COMMAND_ENCODER
158   - params.put("method", "command");
159   - break;
160   - default:
161   - // 默认不添加额外参数
162   - }
163   -
164   - // 添加所有参数到上下文
165   - for (Map.Entry<String, Object> entry : params.entrySet()) {
166   - context.setParameter(entry.getKey(), entry.getValue());
167   - }
168   -
169   - // 执行脚本
170   - Object result = scriptService.executeScript(
171   - testReqVO.getScriptLanguage(),
172   - testReqVO.getScriptContent(),
173   - context);
174   -
175   - // 更新测试结果(如果是已保存的脚本)
176   - if (existingScript != null) {
177   - IotProductScriptDO updateObj = new IotProductScriptDO();
178   - updateObj.setId(existingScript.getId());
179   - updateObj.setLastTestTime(LocalDateTime.now());
180   - updateObj.setLastTestResult(1); // 1表示成功
181   - productScriptMapper.updateById(updateObj);
182   - }
183   -
184   - long executionTime = System.currentTimeMillis() - startTime;
185   - return IotProductScriptTestRespVO.success(result, executionTime);
186   -
187   - } catch (Exception e) {
188   - log.error("[testProductScript][测试脚本异常]", e);
189   -
190   - // 如果是已保存的脚本,更新测试失败状态
191   - if (testReqVO.getId() != null) {
192   - try {
193   - IotProductScriptDO updateObj = new IotProductScriptDO();
194   - updateObj.setId(testReqVO.getId());
195   - updateObj.setLastTestTime(LocalDateTime.now());
196   - updateObj.setLastTestResult(0); // 0表示失败
197   - productScriptMapper.updateById(updateObj);
198   - } catch (Exception ex) {
199   - log.error("[testProductScript][更新脚本测试结果异常]", ex);
200   - }
201   - }
202   -
203   - long executionTime = System.currentTimeMillis() - startTime;
204   - return IotProductScriptTestRespVO.error(e.getMessage(), executionTime);
205   - }
  121 +// long startTime = System.currentTimeMillis();
  122 +//
  123 +// try {
  124 +// // 验证产品是否存在
  125 +// validateProductExists(testReqVO.getProductId());
  126 +//
  127 +// // 根据ID获取已保存的脚本(如果有)
  128 +// IotProductScriptDO existingScript = null;
  129 +// if (testReqVO.getId() != null) {
  130 +// existingScript = getProductScript(testReqVO.getId());
  131 +// }
  132 +//
  133 +// // 创建测试上下文
  134 +// PluginScriptContext context = new PluginScriptContext();
  135 +// IotProductDO product = productService.getProduct(testReqVO.getProductId());
  136 +//
  137 +// // 设置设备上下文(使用产品信息,没有具体设备)
  138 +// context.withDeviceContext(product.getProductKey(), null);
  139 +//
  140 +// // 设置输入参数
  141 +// Map<String, Object> params = new HashMap<>();
  142 +// params.put("input", testReqVO.getTestInput());
  143 +// params.put("productKey", product.getProductKey());
  144 +// params.put("scriptType", testReqVO.getScriptType());
  145 +//
  146 +// // 根据脚本类型设置特定参数
  147 +// switch (testReqVO.getScriptType()) {
  148 +// case 1: // PROPERTY_PARSER
  149 +// params.put("method", "property");
  150 +// break;
  151 +// case 2: // EVENT_PARSER
  152 +// params.put("method", "event");
  153 +// params.put("identifier", "default");
  154 +// break;
  155 +// case 3: // COMMAND_ENCODER
  156 +// params.put("method", "command");
  157 +// break;
  158 +// default:
  159 +// // 默认不添加额外参数
  160 +// }
  161 +//
  162 +// // 添加所有参数到上下文
  163 +// for (Map.Entry<String, Object> entry : params.entrySet()) {
  164 +// context.setParameter(entry.getKey(), entry.getValue());
  165 +// }
  166 +//
  167 +// // 执行脚本
  168 +// Object result = scriptService.executeScript(
  169 +// testReqVO.getScriptLanguage(),
  170 +// testReqVO.getScriptContent(),
  171 +// context);
  172 +//
  173 +// // 更新测试结果(如果是已保存的脚本)
  174 +// if (existingScript != null) {
  175 +// IotProductScriptDO updateObj = new IotProductScriptDO();
  176 +// updateObj.setId(existingScript.getId());
  177 +// updateObj.setLastTestTime(LocalDateTime.now());
  178 +// updateObj.setLastTestResult(1); // 1表示成功
  179 +// productScriptMapper.updateById(updateObj);
  180 +// }
  181 +//
  182 +// long executionTime = System.currentTimeMillis() - startTime;
  183 +// return IotProductScriptTestRespVO.success(result, executionTime);
  184 +//
  185 +// } catch (Exception e) {
  186 +// log.error("[testProductScript][测试脚本异常]", e);
  187 +//
  188 +// // 如果是已保存的脚本,更新测试失败状态
  189 +// if (testReqVO.getId() != null) {
  190 +// try {
  191 +// IotProductScriptDO updateObj = new IotProductScriptDO();
  192 +// updateObj.setId(testReqVO.getId());
  193 +// updateObj.setLastTestTime(LocalDateTime.now());
  194 +// updateObj.setLastTestResult(0); // 0表示失败
  195 +// productScriptMapper.updateById(updateObj);
  196 +// } catch (Exception ex) {
  197 +// log.error("[testProductScript][更新脚本测试结果异常]", ex);
  198 +// }
  199 +// }
  200 +//
  201 +// long executionTime = System.currentTimeMillis() - startTime;
  202 +// return IotProductScriptTestRespVO.error(e.getMessage(), executionTime);
  203 +// }
  204 + return null;
206 205 }
207 206  
208 207 @Override
... ...