diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java index 04c902a0..f14f8216 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentServiceImpl.java @@ -515,6 +515,44 @@ public class AgentServiceImpl extends BaseServiceImpl imp // 执行查询 List agentEntities = baseDao.selectList(queryWrapper); - return ConvertUtils.sourceToTarget(agentEntities, AgentDTO.class); + + // 转换为DTO并设置所有必要字段 + return agentEntities.stream().map(agent -> { + AgentDTO dto = new AgentDTO(); + dto.setId(agent.getId()); + dto.setAgentName(agent.getAgentName()); + dto.setSystemPrompt(agent.getSystemPrompt()); + + // 获取 TTS 模型名称 + dto.setTtsModelName(modelConfigService.getModelNameById(agent.getTtsModelId())); + + // 获取 LLM 模型名称 + dto.setLlmModelName(modelConfigService.getModelNameById(agent.getLlmModelId())); + + // 获取 VLLM 模型名称 + dto.setVllmModelName(modelConfigService.getModelNameById(agent.getVllmModelId())); + + // 获取记忆模型名称 + dto.setMemModelId(agent.getMemModelId()); + + // 获取 TTS 音色名称 + dto.setTtsVoiceName(timbreModelService.getTimbreNameById(agent.getTtsVoiceId())); + + // 获取智能体最近的最后连接时长 + dto.setLastConnectedAt(deviceService.getLatestLastConnectionTime(agent.getId())); + + // 获取设备数量 + dto.setDeviceCount(getDeviceCountByAgentId(agent.getId())); + + // 获取关联设备的MAC地址列表 + List devices = deviceService.getUserDevices(agent.getUserId(), agent.getId()); + List macAddresses = devices.stream() + .map(DeviceEntity::getMacAddress) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toList()); + dto.setMacAddresses(macAddresses); + + return dto; + }).collect(Collectors.toList()); } }