From 2cab7be62a04f9cc7af2c2540eebf3d548c81519 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 23 Sep 2025 15:00:49 +0800
Subject: [PATCH] feat(ai): 新增根据类型和公司ID查询工作流功能- 在AiCompanyService接口中添加getWorkflowByTypeAndCompanyId方法 - 实现类AiCompanyServiceImpl中增加对应查询逻辑 - 在AiServiceImpl中调用新方法获取公司特定应用ID - 更新百炼API调用逻辑以支持动态应用ID - 为新工作流类型5添加初始化配置
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java | 11 +++++++++++
src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java | 17 ++++++++++++++++-
src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java | 2 ++
3 files changed, 29 insertions(+), 1 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java
index 3654ec3..369d307 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyService.java
@@ -23,6 +23,8 @@
AiCompanyWorkflow getWorkflowById(String id);
+ AiCompanyWorkflow getWorkflowByTypeAndCompanyId(int type, String companyId);
+
IPage<AiCompanyWorkflow> workflowListInPage(AiCompanyWorkflow dto, QueryRequest request);
FebsResponse addWorkflow(AiCompanyWorkflow dto);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java
index 5a1a242..f04f657 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyServiceImpl.java
@@ -57,6 +57,7 @@
this.addWorkflow(entity.getId(),2,null,createTime);
this.addWorkflow(entity.getId(),3,null,createTime);
this.addWorkflow(entity.getId(),4,null,createTime);
+ this.addWorkflow(entity.getId(),5,null,createTime);
this.addWorkflow(entity.getId(),6,null,createTime);
return new FebsResponse().success().message("操作成功");
@@ -92,6 +93,16 @@
}
@Override
+ public AiCompanyWorkflow getWorkflowByTypeAndCompanyId(int type, String companyId) {
+
+ LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class);
+ query.eq(AiCompanyWorkflow::getCompanyId, companyId);
+ query.eq(AiCompanyWorkflow::getType, type);
+ query.last("limit 1");
+ return aiCompanyWorkflowMapper.selectOne(query);
+ }
+
+ @Override
public IPage<AiCompanyWorkflow> workflowListInPage(AiCompanyWorkflow dto, QueryRequest request) {
Page<AiCompanyWorkflow> page = new Page<>(request.getPageNum(), request.getPageSize());
LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
index 75d87dd..931084e 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiServiceImpl.java
@@ -1,10 +1,14 @@
package cc.mrbird.febs.ai.service.impl;
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import cc.mrbird.febs.ai.mapper.AiCompanyWorkflowMapper;
import cc.mrbird.febs.ai.req.AiProductQuestionAiDto;
+import cc.mrbird.febs.ai.service.AiCompanyService;
import cc.mrbird.febs.ai.service.AiService;
import cc.mrbird.febs.common.exception.FebsException;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import com.alibaba.dashscope.app.Application;
import com.alibaba.dashscope.app.ApplicationParam;
import com.alibaba.dashscope.app.ApplicationResult;
@@ -23,6 +27,8 @@
@RequiredArgsConstructor
public class AiServiceImpl implements AiService {
+ private final AiCompanyService aiCompanyService;
+
private static final String apiKey = "sk-babdcf8799144134915cee2683794b2f";
private static final String appId = "963b854d994a4f578d8207cd477a2464";
@@ -36,6 +42,15 @@
throw new FebsException("百炼工作流初始化异常");
}
+ String companyAppId = appId;
+ String companyId = dto.getCompanyId();
+ if (StrUtil.isNotEmpty(companyId)){
+ AiCompanyWorkflow workflowByTypeAndCompanyId = aiCompanyService.getWorkflowByTypeAndCompanyId(5, companyId);
+ companyAppId = workflowByTypeAndCompanyId.getCode();
+ }
+
+
+
HashMap<String, Object> bizParams = new HashMap<>();
bizParams.put(bizParam_1,dto.getQuestionCnt());
bizParams.put(bizParam_2,dto.getPromptAiSystem());
@@ -45,7 +60,7 @@
ApplicationParam param = ApplicationParam.builder()
// 若没有配置环境变量,可用百炼API Key将下行替换为:.apiKey("sk-xxx")。但不建议在生产环境中直接将API Key硬编码到代码中,以减少API Key泄露风险。
.apiKey(apiKey)
- .appId(appId) //替换为实际的应用 ID
+ .appId(companyAppId) //替换为实际的应用 ID
.flowStreamMode(FlowStreamMode.MESSAGE_FORMAT)
.prompt(query)
.bizParams(JsonUtils.toJsonObject( bizParams))
--
Gitblit v1.9.1