diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java index 16af03a..1b1fd0f 100644 --- a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/test/TeFlowController.java @@ -1,5 +1,6 @@ package com.cmvr.web.controller.test; +import com.cmvr.common.annotation.Anonymous; import com.cmvr.common.core.controller.BaseController; import com.cmvr.common.core.domain.AjaxResult; import com.cmvr.test.flow.context.TaskContextManager; @@ -49,6 +50,7 @@ public class TeFlowController extends BaseController { @ApiOperation("任务执行入口") @PostMapping("/execute") + @Anonymous public AjaxResult execute(@Valid @RequestBody TeTaskExecuteNormalVO taskExecuteNormalVO) { return AjaxResult.success(flowTaskRuntimeService.executeTask(taskExecuteNormalVO)); } diff --git a/cmvr-iot-api/cmvr-iot-llm/src/main/java/com/cmvr/llm/util/LlmChatService.java b/cmvr-iot-api/cmvr-iot-llm/src/main/java/com/cmvr/llm/util/LlmChatService.java index fa79a79..8bc7a93 100644 --- a/cmvr-iot-api/cmvr-iot-llm/src/main/java/com/cmvr/llm/util/LlmChatService.java +++ b/cmvr-iot-api/cmvr-iot-llm/src/main/java/com/cmvr/llm/util/LlmChatService.java @@ -3,6 +3,7 @@ package com.cmvr.llm.util; import com.alibaba.fastjson2.JSONObject; import com.cmvr.llm.service.LLMAiTtsService; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; import okhttp3.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +21,7 @@ import java.util.concurrent.atomic.AtomicReference; /** * LLM聊天服务 - 严格保持原接口参数 */ +@Slf4j @Service public class LlmChatService { @Autowired @@ -251,9 +253,9 @@ public class LlmChatService { processBufferIfNeed(); } } else if ("message_start".equals(event)) { - System.out.println("消息开始,ID: " + finalMessageId); + log.info("消息开始,ID: " + finalMessageId); } else if ("message_output_start".equals(event)) { - System.out.println("输出开始"); + log.info("输出开始"); } else if ("message_end".equals(event) || "end".equals(event)) { fullContent.append(localContent); finalMessageIdRef.set(finalMessageId); @@ -359,7 +361,7 @@ public class LlmChatService { private void yourAsyncMethod(String sentence, JSONObject ttsConfig) { try { - System.out.println("正在处理句子: " + sentence); + log.info("正在处理句子: " + sentence); llmAiTtsService.play(ttsConfig.getString("url"), sentence, ttsConfig.getString("voice"), ttsConfig.getString("speed"), ttsConfig.getString("volume")); } catch (Exception e) { throw new RuntimeException(e); diff --git a/cmvr-iot-framework/src/main/java/com/cmvr/framework/config/SecurityConfig.java b/cmvr-iot-framework/src/main/java/com/cmvr/framework/config/SecurityConfig.java index 3419b27..95db287 100644 --- a/cmvr-iot-framework/src/main/java/com/cmvr/framework/config/SecurityConfig.java +++ b/cmvr-iot-framework/src/main/java/com/cmvr/framework/config/SecurityConfig.java @@ -115,7 +115,7 @@ public class SecurityConfig // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/system/file/upload","/evaluation/callback","/flow/**","/flowise/**","/kws/**","/ws/**","/api/grpc/**","/show/**", - "/node-red/**","/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**", "/ti/**").permitAll() + "/node-red/**","/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**", "/ti/**", "/flow/execute").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) diff --git a/cmvr-iot-framework/src/main/java/com/cmvr/framework/mybatisPlus/MyMetaObjectHandler.java b/cmvr-iot-framework/src/main/java/com/cmvr/framework/mybatisPlus/MyMetaObjectHandler.java index d53d4e0..836ffea 100644 --- a/cmvr-iot-framework/src/main/java/com/cmvr/framework/mybatisPlus/MyMetaObjectHandler.java +++ b/cmvr-iot-framework/src/main/java/com/cmvr/framework/mybatisPlus/MyMetaObjectHandler.java @@ -24,10 +24,17 @@ public class MyMetaObjectHandler implements MetaObjectHandler { */ @Override public void insertFill(MetaObject metaObject) { + // 获取用户名(异常时给默认值 anonymous) + String username; + try { + username = SecurityUtils.getUsername(); + } catch (Exception e) { + username = "anonymous"; // 匿名接口默认值 + } // 起始版本 3.3.0(推荐使用) - this.setFieldValByName(CREATE_BY, SecurityUtils.getUsername(), metaObject); + this.setFieldValByName(CREATE_BY, username, metaObject); this.setFieldValByName(CREATE_TIME, formatDate(metaObject.getSetterType(CREATE_TIME)), metaObject); - this.setFieldValByName(UPDATE_BY, SecurityUtils.getUsername(), metaObject); + this.setFieldValByName(UPDATE_BY, username, metaObject); this.setFieldValByName(UPDATE_TIME, formatDate(metaObject.getSetterType(CREATE_TIME)), metaObject); this.setFieldValByName(DELETED, "0", metaObject); // this.setFieldValByName(STATUS, "1", metaObject); @@ -41,7 +48,14 @@ public class MyMetaObjectHandler implements MetaObjectHandler { */ @Override public void updateFill(MetaObject metaObject) { - this.setFieldValByName(UPDATE_BY, SecurityUtils.getUsername(), metaObject); + // 获取用户名(异常时给默认值 anonymous) + String username; + try { + username = SecurityUtils.getUsername(); + } catch (Exception e) { + username = "anonymous"; // 匿名接口默认值 + } + this.setFieldValByName(UPDATE_BY, username, metaObject); this.setFieldValByName(UPDATE_TIME, formatDate(metaObject.getSetterType(CREATE_TIME)), metaObject); } diff --git a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/control/FlowControlService.java b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/control/FlowControlService.java index 5e35a9c..7ab789e 100644 --- a/cmvr-iot-test/src/main/java/com/cmvr/test/flow/control/FlowControlService.java +++ b/cmvr-iot-test/src/main/java/com/cmvr/test/flow/control/FlowControlService.java @@ -54,7 +54,10 @@ public class FlowControlService { if (ctx.isStopped()) { throw new GlobalException("任务已终止,无需重复操作"); } - edgeSystemService.stopAll(ctx.getTerminalId()); + // 异步终止 + executor.execute(() -> { + edgeSystemService.stopAll(ctx.getTerminalId()); + }); // 统一记录日志 + 设置上下文状态 + 数据库状态 taskInstHolder.syncStatus(instId, TaskStatusEnum.STOPPED);