前端和json优化
This commit is contained in:
@@ -189,7 +189,7 @@ public class AiChatController {
|
||||
*/
|
||||
@PutMapping("/conversation")
|
||||
public ResultDomain<TbAiConversation> updateConversation(@RequestBody TbAiConversation conversation) {
|
||||
log.info("更新会话: id={}", conversation.getID());
|
||||
log.info("更新会话: id={}", conversation.getId());
|
||||
return chatService.updateConversation(conversation);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,9 +65,9 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
}
|
||||
|
||||
// 4. 设置默认值
|
||||
agentConfig.setID(UUID.randomUUID().toString());
|
||||
agentConfig.setCreator(currentUser.getID());
|
||||
agentConfig.setUpdater(currentUser.getID());
|
||||
agentConfig.setId(UUID.randomUUID().toString());
|
||||
agentConfig.setCreator(currentUser.getId());
|
||||
agentConfig.setUpdater(currentUser.getId());
|
||||
agentConfig.setCreateTime(new Date());
|
||||
agentConfig.setUpdateTime(new Date());
|
||||
agentConfig.setDeleted(false);
|
||||
@@ -79,7 +79,7 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
// 5. 插入数据库
|
||||
int rows = agentConfigMapper.insertAgentConfig(agentConfig);
|
||||
if (rows > 0) {
|
||||
log.info("创建智能体成功: {} - {}", agentConfig.getID(), agentConfig.getName());
|
||||
log.info("创建智能体成功: {} - {}", agentConfig.getId(), agentConfig.getName());
|
||||
resultDomain.success("创建智能体成功", agentConfig);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -101,13 +101,13 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
try {
|
||||
// 1. 参数验证
|
||||
if (!StringUtils.hasText(agentConfig.getID())) {
|
||||
if (!StringUtils.hasText(agentConfig.getId())) {
|
||||
resultDomain.fail("智能体ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 2. 检查是否存在
|
||||
TbAiAgentConfig existing = agentConfigMapper.selectAgentConfigById(agentConfig.getID());
|
||||
TbAiAgentConfig existing = agentConfigMapper.selectAgentConfigById(agentConfig.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("智能体不存在");
|
||||
return resultDomain;
|
||||
@@ -116,7 +116,7 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
// 3. 检查名称是否重复
|
||||
if (StringUtils.hasText(agentConfig.getName()) &&
|
||||
!agentConfig.getName().equals(existing.getName())) {
|
||||
ResultDomain<Boolean> checkResult = checkNameExists(agentConfig.getName(), agentConfig.getID());
|
||||
ResultDomain<Boolean> checkResult = checkNameExists(agentConfig.getName(), agentConfig.getId());
|
||||
if (checkResult.getData()) {
|
||||
resultDomain.fail("智能体名称已存在");
|
||||
return resultDomain;
|
||||
@@ -131,15 +131,15 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
}
|
||||
|
||||
// 5. 更新字段
|
||||
agentConfig.setUpdater(currentUser.getID());
|
||||
agentConfig.setUpdater(currentUser.getId());
|
||||
agentConfig.setUpdateTime(new Date());
|
||||
|
||||
// 6. 执行更新
|
||||
int rows = agentConfigMapper.updateAgentConfig(agentConfig);
|
||||
if (rows > 0) {
|
||||
// 重新查询最新数据
|
||||
TbAiAgentConfig updated = agentConfigMapper.selectAgentConfigById(agentConfig.getID());
|
||||
log.info("更新智能体成功: {} - {}", agentConfig.getID(), agentConfig.getName());
|
||||
TbAiAgentConfig updated = agentConfigMapper.selectAgentConfigById(agentConfig.getId());
|
||||
log.info("更新智能体成功: {} - {}", agentConfig.getId(), agentConfig.getName());
|
||||
resultDomain.success("更新智能体成功", updated);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -182,8 +182,8 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 4. 逻辑删除
|
||||
TbAiAgentConfig deleteEntity = new TbAiAgentConfig();
|
||||
deleteEntity.setID(agentId);
|
||||
deleteEntity.setUpdater(currentUser.getID());
|
||||
deleteEntity.setId(agentId);
|
||||
deleteEntity.setUpdater(currentUser.getId());
|
||||
|
||||
int rows = agentConfigMapper.deleteAgentConfig(deleteEntity);
|
||||
if (rows > 0) {
|
||||
@@ -310,13 +310,13 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 3. 更新状态
|
||||
TbAiAgentConfig update = new TbAiAgentConfig();
|
||||
update.setID(agentId);
|
||||
update.setId(agentId);
|
||||
update.setStatus(status);
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
int rows = agentConfigMapper.updateAgentConfig(update);
|
||||
@@ -370,14 +370,14 @@ public class AiAgentConfigServiceImpl implements AiAgentConfigService {
|
||||
|
||||
// 4. 更新Dify配置
|
||||
TbAiAgentConfig update = new TbAiAgentConfig();
|
||||
update.setID(agentId);
|
||||
update.setId(agentId);
|
||||
update.setDifyAppId(difyAppId);
|
||||
update.setDifyApiKey(difyApiKey);
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
int rows = agentConfigMapper.updateAgentConfig(update);
|
||||
|
||||
@@ -55,7 +55,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询数据
|
||||
List<TbAiConversation> conversations = conversationMapper.selectUserConversationsPage(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agentId,
|
||||
keyword,
|
||||
isFavorite,
|
||||
@@ -66,7 +66,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询总数
|
||||
long total = conversationMapper.countUserConversationsWithFilter(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agentId,
|
||||
keyword,
|
||||
isFavorite,
|
||||
@@ -105,14 +105,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 搜索会话
|
||||
List<TbAiConversation> conversations = conversationMapper.searchConversationsByKeyword(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
pageParam
|
||||
);
|
||||
|
||||
// 查询总数
|
||||
long total = conversationMapper.countSearchConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword
|
||||
);
|
||||
|
||||
@@ -147,7 +147,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 搜索消息
|
||||
List<TbAiMessage> messages = messageMapper.searchMessagesByContent(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
conversationId,
|
||||
pageParam
|
||||
@@ -155,7 +155,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询总数
|
||||
long total = messageMapper.countSearchMessages(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
keyword,
|
||||
conversationId
|
||||
);
|
||||
@@ -197,14 +197,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权操作此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 更新收藏状态
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setIsFavorite(isFavorite);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -240,14 +240,14 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权操作此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 更新置顶状态
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setIsPinned(isPinned);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -284,17 +284,17 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
int deleteCount = 0;
|
||||
for (String conversationId : conversationIds) {
|
||||
TbAiConversation conversation = conversationMapper.selectConversationById(conversationId);
|
||||
if (conversation != null && conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (conversation != null && conversation.getUserID().equals(currentUser.getId())) {
|
||||
// 逻辑删除会话
|
||||
TbAiConversation deleteEntity = new TbAiConversation();
|
||||
deleteEntity.setID(conversationId);
|
||||
deleteEntity.setId(conversationId);
|
||||
conversationMapper.deleteConversation(deleteEntity);
|
||||
|
||||
// 同时删除消息
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
String targetUserId = StringUtils.hasText(userId) ? userId : currentUser.getID();
|
||||
String targetUserId = StringUtils.hasText(userId) ? userId : currentUser.getId();
|
||||
|
||||
// 统计数据
|
||||
Map<String, Object> statistics = new HashMap<>();
|
||||
@@ -388,7 +388,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -455,7 +455,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -523,7 +523,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -631,7 +631,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
// 查询过期会话ID
|
||||
List<String> expiredIds = conversationMapper.selectExpiredConversationIds(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
beforeDate
|
||||
);
|
||||
|
||||
@@ -648,7 +648,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
}
|
||||
@@ -677,7 +677,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
int queryLimit = (limit != null && limit > 0) ? limit : 10;
|
||||
List<TbAiConversation> conversations = conversationMapper.selectRecentConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
queryLimit
|
||||
);
|
||||
|
||||
@@ -704,7 +704,7 @@ public class AiChatHistoryServiceImpl implements AiChatHistoryService {
|
||||
|
||||
int queryLimit = (limit != null && limit > 0) ? limit : 10;
|
||||
List<TbAiConversation> conversations = conversationMapper.selectPopularConversations(
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
queryLimit
|
||||
);
|
||||
|
||||
|
||||
@@ -206,7 +206,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
emitter.complete();
|
||||
return emitter;
|
||||
}
|
||||
if (!conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (!conversation.getUserID().equals(currentUser.getId())) {
|
||||
emitter.send(SseEmitter.event().name("error").data("无权访问此会话"));
|
||||
emitter.complete();
|
||||
return emitter;
|
||||
@@ -222,12 +222,12 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
conversation = createResult.getData();
|
||||
}
|
||||
|
||||
final String finalConversationId = conversation.getID();
|
||||
final String finalConversationId = conversation.getId();
|
||||
|
||||
// 5. 创建用户消息记录
|
||||
TbAiMessage userMessage = new TbAiMessage();
|
||||
String userMessageId = UUID.randomUUID().toString();
|
||||
userMessage.setID(userMessageId);
|
||||
userMessage.setId(userMessageId);
|
||||
userMessage.setConversationID(finalConversationId);
|
||||
userMessage.setAgentID(agentId);
|
||||
userMessage.setRole("user");
|
||||
@@ -235,7 +235,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
userMessage.setCreateTime(new Date());
|
||||
userMessage.setUpdateTime(new Date());
|
||||
userMessage.setDeleted(false);
|
||||
userMessage.setUserID(currentUser.getID());
|
||||
userMessage.setUserID(currentUser.getId());
|
||||
|
||||
// 处理文件关联(将文件ID列表转换为JSON数组保存)
|
||||
if (filesData != null && !filesData.isEmpty()) {
|
||||
@@ -261,7 +261,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 6. 保存文件关联记录到tb_ai_upload_file
|
||||
if (filesData != null && !filesData.isEmpty()) {
|
||||
saveMessageFileRecords(userMessageId, finalConversationId, currentUser.getID(), filesData);
|
||||
saveMessageFileRecords(userMessageId, finalConversationId, currentUser.getId(), filesData);
|
||||
}
|
||||
|
||||
// 注意:AI消息记录将在获取到Dify的task_id后创建
|
||||
@@ -272,7 +272,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 7. 构建Dify请求
|
||||
ChatRequest chatRequest = new ChatRequest();
|
||||
chatRequest.setQuery(query);
|
||||
chatRequest.setUser(currentUser.getID());
|
||||
chatRequest.setUser(currentUser.getId());
|
||||
|
||||
if (StringUtils.hasText(conversation.getDifyConversationId())) {
|
||||
chatRequest.setConversationId(conversation.getDifyConversationId());
|
||||
@@ -331,7 +331,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 更新AI消息内容(使用task_id作为消息ID)
|
||||
if (taskId.get() != null) {
|
||||
TbAiMessage updateMessage = new TbAiMessage();
|
||||
updateMessage.setID(taskId.get());
|
||||
updateMessage.setId(taskId.get());
|
||||
updateMessage.setContent(fullAnswer.toString());
|
||||
updateMessage.setDifyMessageId(difyMessageId.get());
|
||||
updateMessage.setUpdateTime(new Date());
|
||||
@@ -341,7 +341,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 更新会话的Dify会话ID
|
||||
if (StringUtils.hasText(difyConversationId.get())) {
|
||||
TbAiConversation updateConv = new TbAiConversation();
|
||||
updateConv.setID(finalConversationId);
|
||||
updateConv.setId(finalConversationId);
|
||||
updateConv.setDifyConversationId(difyConversationId.get());
|
||||
updateConv.setMessageCount((finalConversation.getMessageCount() != null ?
|
||||
finalConversation.getMessageCount() : 0) + 2);
|
||||
@@ -382,7 +382,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 使用task_id作为消息ID,创建AI消息记录
|
||||
TbAiMessage aiMessage = new TbAiMessage();
|
||||
aiMessage.setID(difyTaskId); // 使用Dify的task_id作为消息ID
|
||||
aiMessage.setId(difyTaskId); // 使用Dify的task_id作为消息ID
|
||||
aiMessage.setConversationID(finalConversationId);
|
||||
aiMessage.setAgentID(agentId);
|
||||
aiMessage.setRole("assistant");
|
||||
@@ -515,7 +515,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
TbAiConversation conversation;
|
||||
if (StringUtils.hasText(conversationId)) {
|
||||
conversation = conversationMapper.selectConversationById(conversationId);
|
||||
if (conversation == null || !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (conversation == null || !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("会话不存在或无权访问");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -526,12 +526,12 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
return resultDomain;
|
||||
}
|
||||
conversation = createResult.getData();
|
||||
conversationId = conversation.getID();
|
||||
conversationId = conversation.getId();
|
||||
}
|
||||
|
||||
// 创建用户消息
|
||||
TbAiMessage userMessage = new TbAiMessage();
|
||||
userMessage.setID(UUID.randomUUID().toString());
|
||||
userMessage.setId(UUID.randomUUID().toString());
|
||||
userMessage.setConversationID(conversationId);
|
||||
userMessage.setAgentID(agentId);
|
||||
userMessage.setRole("user");
|
||||
@@ -544,7 +544,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 构建Dify请求
|
||||
ChatRequest chatRequest = new ChatRequest();
|
||||
chatRequest.setQuery(query);
|
||||
chatRequest.setUser(currentUser.getID());
|
||||
chatRequest.setUser(currentUser.getId());
|
||||
|
||||
if (StringUtils.hasText(conversation.getDifyConversationId())) {
|
||||
chatRequest.setConversationId(conversation.getDifyConversationId());
|
||||
@@ -561,7 +561,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 创建AI回复消息
|
||||
TbAiMessage aiMessage = new TbAiMessage();
|
||||
aiMessage.setID(UUID.randomUUID().toString());
|
||||
aiMessage.setId(UUID.randomUUID().toString());
|
||||
aiMessage.setConversationID(conversationId);
|
||||
aiMessage.setAgentID(agentId);
|
||||
aiMessage.setRole("assistant");
|
||||
@@ -574,14 +574,14 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新会话
|
||||
TbAiConversation updateConv = new TbAiConversation();
|
||||
updateConv.setID(conversationId);
|
||||
updateConv.setId(conversationId);
|
||||
updateConv.setDifyConversationId(chatResponse.getConversationId());
|
||||
updateConv.setMessageCount((conversation.getMessageCount() != null ?
|
||||
conversation.getMessageCount() : 0) + 2);
|
||||
updateConv.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(updateConv);
|
||||
|
||||
log.info("阻塞式对话成功: {} - {}", conversationId, aiMessage.getID());
|
||||
log.info("阻塞式对话成功: {} - {}", conversationId, aiMessage.getId());
|
||||
resultDomain.success("对话成功", aiMessage);
|
||||
return resultDomain;
|
||||
|
||||
@@ -624,7 +624,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
try {
|
||||
difyApiClient.stopChatMessage(
|
||||
taskId,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agent.getDifyApiKey()
|
||||
);
|
||||
log.info("对话停止成功,task_id: {}", taskId);
|
||||
@@ -673,8 +673,8 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 创建会话
|
||||
TbAiConversation conversation = new TbAiConversation();
|
||||
conversation.setID(UUID.randomUUID().toString());
|
||||
conversation.setUserID(currentUser.getID());
|
||||
conversation.setId(UUID.randomUUID().toString());
|
||||
conversation.setUserID(currentUser.getId());
|
||||
conversation.setAgentID(agentId);
|
||||
conversation.setTitle(StringUtils.hasText(title) ? title : "新对话");
|
||||
conversation.setMessageCount(0);
|
||||
@@ -684,7 +684,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
conversationMapper.insertConversation(conversation);
|
||||
|
||||
log.info("创建会话成功: {} - {}", conversation.getID(), currentUser.getID());
|
||||
log.info("创建会话成功: {} - {}", conversation.getId(), currentUser.getId());
|
||||
resultDomain.success("创建会话成功", conversation);
|
||||
return resultDomain;
|
||||
|
||||
@@ -713,7 +713,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 验证所属权
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -734,20 +734,20 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
ResultDomain<TbAiConversation> resultDomain = new ResultDomain<>();
|
||||
|
||||
try {
|
||||
if (!StringUtils.hasText(conversation.getID())) {
|
||||
if (!StringUtils.hasText(conversation.getId())) {
|
||||
resultDomain.fail("会话ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 验证所属权
|
||||
TbAiConversation existing = conversationMapper.selectConversationById(conversation.getID());
|
||||
TbAiConversation existing = conversationMapper.selectConversationById(conversation.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("会话不存在");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权修改此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -757,7 +757,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
conversationMapper.updateConversation(conversation);
|
||||
|
||||
// 重新查询
|
||||
TbAiConversation updated = conversationMapper.selectConversationById(conversation.getID());
|
||||
TbAiConversation updated = conversationMapper.selectConversationById(conversation.getId());
|
||||
resultDomain.success("更新成功", updated);
|
||||
return resultDomain;
|
||||
|
||||
@@ -787,21 +787,21 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !existing.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权删除此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 逻辑删除会话
|
||||
TbAiConversation deleteEntity = new TbAiConversation();
|
||||
deleteEntity.setID(conversationId);
|
||||
deleteEntity.setId(conversationId);
|
||||
conversationMapper.deleteConversation(deleteEntity);
|
||||
|
||||
// 同时逻辑删除该会话的所有消息
|
||||
List<TbAiMessage> messages = messageMapper.selectMessagesByConversationId(conversationId);
|
||||
for (TbAiMessage message : messages) {
|
||||
TbAiMessage deleteMsg = new TbAiMessage();
|
||||
deleteMsg.setID(message.getID());
|
||||
deleteMsg.setId(message.getId());
|
||||
messageMapper.deleteMessage(deleteMsg);
|
||||
}
|
||||
|
||||
@@ -828,7 +828,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
List<TbAiConversation> conversations = conversationMapper.selectConversationsByUserId(
|
||||
currentUser.getID(), agentId
|
||||
currentUser.getId(), agentId
|
||||
);
|
||||
|
||||
resultDomain.success("查询成功", conversations);
|
||||
@@ -859,7 +859,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getID())) {
|
||||
if (currentUser != null && !conversation.getUserID().equals(currentUser.getId())) {
|
||||
resultDomain.fail("无权访问此会话");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -996,7 +996,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新会话摘要
|
||||
TbAiConversation update = new TbAiConversation();
|
||||
update.setID(conversationId);
|
||||
update.setId(conversationId);
|
||||
update.setSummary(summary);
|
||||
update.setUpdateTime(new Date());
|
||||
conversationMapper.updateConversation(update);
|
||||
@@ -1066,7 +1066,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
difyApiClient.submitMessageFeedback(
|
||||
message.getDifyMessageId(),
|
||||
difyRating,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
feedback,
|
||||
agent.getDifyApiKey()
|
||||
);
|
||||
@@ -1079,7 +1079,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
// 更新本地评价
|
||||
TbAiMessage update = new TbAiMessage();
|
||||
update.setID(messageId);
|
||||
update.setId(messageId);
|
||||
update.setRating(rating);
|
||||
update.setFeedback(feedback);
|
||||
update.setUpdateTime(new Date());
|
||||
@@ -1110,7 +1110,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
|
||||
for (DifyFileInfo fileInfo : filesData) {
|
||||
TbAiUploadFile uploadFile = new TbAiUploadFile();
|
||||
uploadFile.setID(UUID.randomUUID().toString());
|
||||
uploadFile.setId(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(userId);
|
||||
uploadFile.setConversationID(conversationId);
|
||||
uploadFile.setMessageID(messageId); // 绑定到消息
|
||||
@@ -1152,7 +1152,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
// 获取当前登录用户的完整信息(包含部门角色列表)
|
||||
LoginDomain loginDomain = LoginUtil.getCurrentLoginDomain();
|
||||
if (loginDomain == null || loginDomain.getRoles() == null || loginDomain.getRoles().isEmpty()) {
|
||||
log.warn("用户 {} 没有部门角色信息,返回空知识库列表", user.getID());
|
||||
log.warn("用户 {} 没有部门角色信息,返回空知识库列表", user.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1161,7 +1161,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
String deptPath = userRole.getDeptPath();
|
||||
|
||||
if (deptPath == null || deptPath.isEmpty()) {
|
||||
log.warn("用户 {} 的部门路径为空,返回空知识库列表", user.getID());
|
||||
log.warn("用户 {} 的部门路径为空,返回空知识库列表", user.getId());
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1169,15 +1169,15 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
List<String> knowledgeIds = ((AiKnowledgeRedisServiceImpl) knowledgeRedisService).getKnowledgeIdsByDeptPath(deptPath);
|
||||
|
||||
if (knowledgeIds == null || knowledgeIds.isEmpty()) {
|
||||
log.warn("用户 {} 所在部门路径 {} 没有关联的知识库", user.getID(), deptPath);
|
||||
log.warn("用户 {} 所在部门路径 {} 没有关联的知识库", user.getId(), deptPath);
|
||||
return null;
|
||||
}
|
||||
|
||||
log.info("用户 {} 从部门路径 {} 获取到 {} 个知识库", user.getID(), deptPath, knowledgeIds.size());
|
||||
log.info("用户 {} 从部门路径 {} 获取到 {} 个知识库", user.getId(), deptPath, knowledgeIds.size());
|
||||
return knowledgeIds;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("根据用户获取知识库ID失败: userId={}", user.getID(), e);
|
||||
log.error("根据用户获取知识库ID失败: userId={}", user.getId(), e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class AiKnowledgeRedisServiceImpl implements AiKnowledgeRedisService, Com
|
||||
|
||||
String deptId = knowledge.getCreatorDept();
|
||||
if (deptId == null || deptId.isEmpty()) {
|
||||
log.warn("知识库 {} 没有部门信息,跳过", knowledge.getID());
|
||||
log.warn("知识库 {} 没有部门信息,跳过", knowledge.getId());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
|
||||
// 4. 保存到本地数据库
|
||||
knowledge.setID(UUID.randomUUID().toString());
|
||||
knowledge.setId(UUID.randomUUID().toString());
|
||||
knowledge.setDifyDatasetId(difyDatasetId);
|
||||
knowledge.setDifyIndexingTechnique(indexingTechnique);
|
||||
knowledge.setEmbeddingModel(embeddingModel);
|
||||
@@ -198,9 +198,9 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
// 保存检索配置(从前端传入,已经在 knowledge 对象中)
|
||||
// retrievalTopK, retrievalScoreThreshold, rerankModel, rerankModelProvider 已设置
|
||||
knowledge.setCreator(currentUser.getID());
|
||||
knowledge.setCreator(currentUser.getId());
|
||||
knowledge.setCreatorDept(deptId);
|
||||
knowledge.setUpdater(currentUser.getID());
|
||||
knowledge.setUpdater(currentUser.getId());
|
||||
knowledge.setCreateTime(new Date());
|
||||
knowledge.setUpdateTime(new Date());
|
||||
knowledge.setDeleted(false);
|
||||
@@ -230,7 +230,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
// 5. 创建权限记录
|
||||
try {
|
||||
createKnowledgePermission(
|
||||
knowledge.getID(),
|
||||
knowledge.getId(),
|
||||
permissionType,
|
||||
deptIds,
|
||||
roleIds,
|
||||
@@ -250,7 +250,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
// 缓存更新失败不影响知识库创建,记录日志即可
|
||||
}
|
||||
|
||||
log.info("知识库创建成功: {} - {}", knowledge.getID(), knowledge.getTitle());
|
||||
log.info("知识库创建成功: {} - {}", knowledge.getId(), knowledge.getTitle());
|
||||
resultDomain.success("知识库创建成功", knowledge);
|
||||
return resultDomain;
|
||||
|
||||
@@ -268,20 +268,20 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
try {
|
||||
// 1. 参数验证
|
||||
if (!StringUtils.hasText(knowledge.getID())) {
|
||||
if (!StringUtils.hasText(knowledge.getId())) {
|
||||
resultDomain.fail("知识库ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 2. 检查是否存在
|
||||
TbAiKnowledge existing = knowledgeMapper.selectKnowledgeById(knowledge.getID());
|
||||
TbAiKnowledge existing = knowledgeMapper.selectKnowledgeById(knowledge.getId());
|
||||
if (existing == null || existing.getDeleted()) {
|
||||
resultDomain.fail("知识库不存在");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 3. 权限检查:只有创建者或有write权限的用户可以修改
|
||||
ResultDomain<Boolean> permissionCheck = checkKnowledgePermission(knowledge.getID(), "write");
|
||||
ResultDomain<Boolean> permissionCheck = checkKnowledgePermission(knowledge.getId(), "write");
|
||||
if (!permissionCheck.getData()) {
|
||||
resultDomain.fail("无权限修改此知识库");
|
||||
return resultDomain;
|
||||
@@ -319,7 +319,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
updateRequest.setIndexingTechnique(knowledge.getDifyIndexingTechnique());
|
||||
needUpdateDify = true;
|
||||
} else {
|
||||
log.warn("不允许从high_quality降级为economy: knowledgeId={}", knowledge.getID());
|
||||
log.warn("不允许从high_quality降级为economy: knowledgeId={}", knowledge.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,14 +425,14 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
}
|
||||
|
||||
// 6. 更新本地数据
|
||||
knowledge.setUpdater(currentUser.getID());
|
||||
knowledge.setUpdater(currentUser.getId());
|
||||
knowledge.setUpdateTime(new Date());
|
||||
|
||||
int rows = knowledgeMapper.updateKnowledge(knowledge);
|
||||
if (rows > 0) {
|
||||
// 重新查询最新数据
|
||||
TbAiKnowledge updated = knowledgeMapper.selectKnowledgeById(knowledge.getID());
|
||||
log.info("知识库更新成功: {} - {}", knowledge.getID(), knowledge.getTitle());
|
||||
TbAiKnowledge updated = knowledgeMapper.selectKnowledgeById(knowledge.getId());
|
||||
log.info("知识库更新成功: {} - {}", knowledge.getId(), knowledge.getTitle());
|
||||
resultDomain.success("知识库更新成功", updated);
|
||||
return resultDomain;
|
||||
} else {
|
||||
@@ -473,7 +473,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (!existing.getCreator().equals(currentUser.getID())) {
|
||||
if (!existing.getCreator().equals(currentUser.getId())) {
|
||||
resultDomain.fail("只有创建者可以删除知识库");
|
||||
return resultDomain;
|
||||
}
|
||||
@@ -491,8 +491,8 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
// 5. 逻辑删除本地记录
|
||||
TbAiKnowledge deleteEntity = new TbAiKnowledge();
|
||||
deleteEntity.setID(knowledgeId);
|
||||
deleteEntity.setUpdater(currentUser.getID());
|
||||
deleteEntity.setId(knowledgeId);
|
||||
deleteEntity.setUpdater(currentUser.getId());
|
||||
|
||||
int rows = knowledgeMapper.deleteKnowledge(deleteEntity);
|
||||
if (rows > 0) {
|
||||
@@ -623,14 +623,14 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
|
||||
// 3. 更新本地信息
|
||||
TbAiKnowledge update = new TbAiKnowledge();
|
||||
update.setID(knowledgeId);
|
||||
update.setId(knowledgeId);
|
||||
update.setDocumentCount(difyDetail.getDocumentCount());
|
||||
update.setTotalChunks(difyDetail.getWordCount()); // Dify的word_count对应我们的chunks
|
||||
update.setUpdateTime(new Date());
|
||||
|
||||
TbSysUser currentUser = LoginUtil.getCurrentUser();
|
||||
if (currentUser != null) {
|
||||
update.setUpdater(currentUser.getID());
|
||||
update.setUpdater(currentUser.getId());
|
||||
}
|
||||
|
||||
knowledgeMapper.updateKnowledge(update);
|
||||
@@ -679,7 +679,7 @@ public class AiKnowledgeServiceImpl implements AiKnowledgeService {
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
if (!knowledge.getCreator().equals(currentUser.getID())) {
|
||||
if (!knowledge.getCreator().equals(currentUser.getId())) {
|
||||
resultDomain.fail("只有创建者可以修改权限");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
file,
|
||||
"ai-agent", // 模块名
|
||||
agentId, // 业务ID(智能体ID)
|
||||
currentUser.getID() // 上传者
|
||||
currentUser.getId() // 上传者
|
||||
);
|
||||
|
||||
if (!uploadResult.isSuccess() || uploadResult.getData() == null) {
|
||||
@@ -123,7 +123,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
}
|
||||
|
||||
TbSysFile sysFile = (TbSysFile) uploadResult.getData();
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getID(), sysFile.getOriginalName());
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getId(), sysFile.getOriginalName());
|
||||
|
||||
// 6. 获取已保存文件的File对象,直接用于上传到Dify(不需要再保存临时文件)
|
||||
File fileToUpload = fileService.getFileByRelativePath(sysFile.getFilePath());
|
||||
@@ -133,13 +133,13 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
DifyFileInfo difyResponse = difyApiClient.uploadFileForChat(
|
||||
fileToUpload,
|
||||
originalFilename,
|
||||
currentUser.getID(),
|
||||
currentUser.getId(),
|
||||
agent.getDifyApiKey());
|
||||
|
||||
// 9. 转换为前端需要的格式,包含系统文件ID和文件路径
|
||||
Map<String, Object> fileInfo = new HashMap<>();
|
||||
fileInfo.put("id", difyResponse.getId()); // Dify文件ID
|
||||
fileInfo.put("sys_file_id", sysFile.getID()); // 系统文件ID(重要:用于关联消息)
|
||||
fileInfo.put("sys_file_id", sysFile.getId()); // 系统文件ID(重要:用于关联消息)
|
||||
fileInfo.put("file_path", sysFile.getFilePath()); // 文件路径(重要:用于保存记录)
|
||||
fileInfo.put("name", difyResponse.getName());
|
||||
fileInfo.put("size", difyResponse.getSize());
|
||||
@@ -150,7 +150,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
fileInfo.put("upload_file_id", difyResponse.getId()); // Dify上传文件ID
|
||||
fileInfo.put("file_url", sysFile.getFileUrl()); // 文件访问URL
|
||||
|
||||
log.info("对话文件上传成功: sysFileId={}, difyFileId={}", sysFile.getID(), difyResponse.getId());
|
||||
log.info("对话文件上传成功: sysFileId={}, difyFileId={}", sysFile.getId(), difyResponse.getId());
|
||||
resultDomain.success("文件上传成功", fileInfo);
|
||||
return resultDomain;
|
||||
|
||||
@@ -228,7 +228,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
file,
|
||||
"ai-knowledge", // 模块名
|
||||
knowledgeId, // 业务ID(知识库ID)
|
||||
currentUser.getID() // 上传者
|
||||
currentUser.getId() // 上传者
|
||||
);
|
||||
|
||||
if (!uploadResult.isSuccess() || uploadResult.getData() == null) {
|
||||
@@ -237,7 +237,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
}
|
||||
|
||||
TbSysFile sysFile = (TbSysFile) uploadResult.getData();
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getID(), sysFile.getOriginalName());
|
||||
log.info("文件已保存到系统文件表: sysFileId={}, fileName={}", sysFile.getId(), sysFile.getOriginalName());
|
||||
|
||||
// 6. 获取已保存文件的File对象,直接用于上传到Dify
|
||||
File fileToUpload = fileService.getFileByRelativePath(sysFile.getFilePath());
|
||||
@@ -259,10 +259,10 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 8. 保存到本地数据库
|
||||
TbAiUploadFile uploadFile = new TbAiUploadFile();
|
||||
uploadFile.setID(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(currentUser.getID());
|
||||
uploadFile.setId(UUID.randomUUID().toString());
|
||||
uploadFile.setUserID(currentUser.getId());
|
||||
uploadFile.setKnowledgeId(knowledgeId);
|
||||
uploadFile.setSysFileId(sysFile.getID()); // 关联系统文件ID
|
||||
uploadFile.setSysFileId(sysFile.getId()); // 关联系统文件ID
|
||||
uploadFile.setFileName(originalFilename);
|
||||
uploadFile.setFilePath(sysFile.getFilePath()); // 保存系统文件的相对路径
|
||||
uploadFile.setFileSize(file.getSize());
|
||||
@@ -282,10 +282,10 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
int knowledgeRows = knowledgeMapper.updateKnowledge(knowledge);
|
||||
if (rows > 0) {
|
||||
log.info("知识库文件上传成功: uploadFileId={}, sysFileId={}, fileName={}",
|
||||
uploadFile.getID(), sysFile.getID(), originalFilename);
|
||||
uploadFile.getId(), sysFile.getId(), originalFilename);
|
||||
|
||||
// 9. 异步更新向量化状态
|
||||
asyncUpdateVectorStatus(uploadFile.getID());
|
||||
asyncUpdateVectorStatus(uploadFile.getId());
|
||||
|
||||
resultDomain.success("文件上传成功", uploadFile);
|
||||
if (knowledgeRows <=0) {
|
||||
@@ -392,7 +392,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 4. 逻辑删除本地记录
|
||||
TbAiUploadFile deleteEntity = new TbAiUploadFile();
|
||||
deleteEntity.setID(fileId);
|
||||
deleteEntity.setId(fileId);
|
||||
|
||||
int rows = uploadFileMapper.deleteUploadFile(deleteEntity);
|
||||
knowledge.setDocumentCount(knowledge.getDocumentCount() - 1);
|
||||
@@ -522,7 +522,7 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
|
||||
// 4. 更新本地状态
|
||||
TbAiUploadFile update = new TbAiUploadFile();
|
||||
update.setID(fileId);
|
||||
update.setId(fileId);
|
||||
|
||||
// 映射Dify状态到本地状态:completed=2, processing=1, error=3
|
||||
// DocumentStatusResponse返回的是文档列表,取第一个
|
||||
@@ -583,9 +583,9 @@ public class AiUploadFileServiceImpl implements AiUploadFileService {
|
||||
List<CompletableFuture<Void>> futures = files.stream()
|
||||
.map(file -> CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
syncFileStatus(file.getID());
|
||||
syncFileStatus(file.getId());
|
||||
} catch (Exception e) {
|
||||
log.error("同步文件状态失败: {}", file.getID(), e);
|
||||
log.error("同步文件状态失败: {}", file.getId(), e);
|
||||
}
|
||||
}, executorService))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
) VALUES
|
||||
<foreach collection="files" item="file" separator=",">
|
||||
(
|
||||
#{file.ID}, #{file.userID}, #{file.knowledgeId}, #{file.conversationID}, #{file.messageID},
|
||||
#{file.id}, #{file.userID}, #{file.knowledgeId}, #{file.conversationID}, #{file.messageID},
|
||||
#{file.sysFileId}, #{file.fileName}, #{file.filePath}, #{file.fileSize},
|
||||
#{file.fileType}, #{file.mimeType}, #{file.difyDocumentId}, #{file.difyBatchId}, #{file.difyUploadFileId},
|
||||
#{file.chunkCount}, #{file.status}, #{file.enabled}, #{file.displayStatus}, #{file.createTime}, #{file.updateTime}, #{file.deleted}
|
||||
|
||||
@@ -255,7 +255,7 @@ const agentResult = await aiAgentConfigApi.createAgent({
|
||||
status: 1
|
||||
});
|
||||
|
||||
const agentId = agentResult.data?.ID;
|
||||
const agentId = agentResult.data?.id;
|
||||
|
||||
// 2. 流式对话
|
||||
await chatApi.streamChat(
|
||||
@@ -294,7 +294,7 @@ const knowledgeResult = await knowledgeApi.createKnowledge({
|
||||
embeddingModel: 'text-embedding-ada-002'
|
||||
});
|
||||
|
||||
const knowledgeId = knowledgeResult.data?.ID;
|
||||
const knowledgeId = knowledgeResult.data?.id;
|
||||
|
||||
// 2. 上传文件
|
||||
const files = document.querySelector('input[type="file"]').files;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class AiKnowledgeServiceImpl {
|
||||
String deptId = userDeptRoles.isEmpty() ? null : userDeptRoles.get(0).getDeptID();
|
||||
|
||||
// 2. 保存知识库
|
||||
knowledge.setCreator(currentUser.getID());
|
||||
knowledge.setCreator(currentUser.getId());
|
||||
knowledge.setCreatorDept(deptId);
|
||||
knowledgeMapper.insert(knowledge);
|
||||
|
||||
@@ -58,27 +58,27 @@ public class AiKnowledgeServiceImpl {
|
||||
switch (permissionType) {
|
||||
case PUBLIC:
|
||||
// 公开知识库:所有人可读
|
||||
createPublicPermission(knowledge.getID());
|
||||
createPublicPermission(knowledge.getId());
|
||||
break;
|
||||
|
||||
case DEPARTMENT:
|
||||
// 部门知识库:本部门所有人可读写
|
||||
createDepartmentPermission(knowledge.getID(), deptId);
|
||||
createDepartmentPermission(knowledge.getId(), deptId);
|
||||
break;
|
||||
|
||||
case DEPARTMENT_INHERIT:
|
||||
// 部门继承:本部门及子部门可读
|
||||
createDepartmentInheritPermission(knowledge.getID(), deptId);
|
||||
createDepartmentInheritPermission(knowledge.getId(), deptId);
|
||||
break;
|
||||
|
||||
case ROLE:
|
||||
// 角色知识库:特定角色可读(跨部门)
|
||||
createRolePermission(knowledge.getID(), roleIds);
|
||||
createRolePermission(knowledge.getId(), roleIds);
|
||||
break;
|
||||
|
||||
case PRIVATE:
|
||||
// 私有知识库:仅创建者所在部门的特定角色
|
||||
createPrivatePermission(knowledge.getID(), deptId, roleIds);
|
||||
createPrivatePermission(knowledge.getId(), deptId, roleIds);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ public class AiKnowledgeServiceImpl {
|
||||
// 创建公开权限
|
||||
private void createPublicPermission(String knowledgeId) {
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10); // AI_KNOWLEDGE
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(null); // NULL表示不限部门
|
||||
@@ -102,7 +102,7 @@ public class AiKnowledgeServiceImpl {
|
||||
// 创建部门权限
|
||||
private void createDepartmentPermission(String knowledgeId, String deptId) {
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10);
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(deptId); // 指定部门
|
||||
@@ -120,7 +120,7 @@ public class AiKnowledgeServiceImpl {
|
||||
|
||||
// 为本部门创建权限(已通过dept_path自动继承给子部门)
|
||||
TbResourcePermission permission = new TbResourcePermission();
|
||||
permission.setID(UUID.randomUUID().toString());
|
||||
permission.setId(UUID.randomUUID().toString());
|
||||
permission.setResourceType(10);
|
||||
permission.setResourceId(knowledgeId);
|
||||
permission.setDeptId(deptId);
|
||||
@@ -392,7 +392,7 @@ private String getCurrentUserCacheKey() {
|
||||
String roleIds = roles.stream()
|
||||
.map(r -> r.getDeptID() + ":" + r.getRoleID())
|
||||
.collect(Collectors.joining(","));
|
||||
return user.getID() + ":" + roleIds;
|
||||
return user.getId() + ":" + roleIds;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user