From 341ed22370905bc175b8fa9af02c25abe0326562 Mon Sep 17 00:00:00 2001 From: LJH-rgsze <3241304429@qq.com> Date: Mon, 5 Jan 2026 15:27:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent/controller/AgentController.java | 17 +--- .../modules/agent/dto/AgentSearchDTO.java | 17 ---- .../modules/agent/service/AgentService.java | 13 +-- .../agent/service/impl/AgentServiceImpl.java | 85 ++++++++----------- 4 files changed, 44 insertions(+), 88 deletions(-) delete mode 100644 main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentSearchDTO.java diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java index 7197d159..76669e67 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentController.java @@ -39,7 +39,6 @@ import xiaozhi.modules.agent.dto.AgentChatSessionDTO; import xiaozhi.modules.agent.dto.AgentCreateDTO; import xiaozhi.modules.agent.dto.AgentDTO; import xiaozhi.modules.agent.dto.AgentMemoryDTO; -import xiaozhi.modules.agent.dto.AgentSearchDTO; import xiaozhi.modules.agent.dto.AgentUpdateDTO; import xiaozhi.modules.agent.entity.AgentEntity; import xiaozhi.modules.agent.entity.AgentTemplateEntity; @@ -79,19 +78,9 @@ public class AgentController { @RequestParam(value = "searchType", defaultValue = "name") String searchType) { UserDetail user = SecurityUser.getUser(); - // 如果有搜索关键词,则使用搜索功能 - if (StringUtils.isNotBlank(keyword)) { - AgentSearchDTO searchDTO = new AgentSearchDTO(); - searchDTO.setKeyword(keyword); - searchDTO.setSearchType(searchType); - searchDTO.setUserId(user.getId()); - List agents = agentService.searchAgent(searchDTO); - return new Result>().ok(agents); - } else { - // 否则返回所有智能体 - List agents = agentService.getUserAgents(user.getId()); - return new Result>().ok(agents); - } + // 直接调用整合后的getUserAgents方法,无需再区分搜索和普通查询 + List agents = agentService.getUserAgents(user.getId(), keyword, searchType); + return new Result>().ok(agents); } @GetMapping("/all") diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentSearchDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentSearchDTO.java deleted file mode 100644 index 9715a276..00000000 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentSearchDTO.java +++ /dev/null @@ -1,17 +0,0 @@ -package xiaozhi.modules.agent.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -@Data -@Schema(description = "智能体搜索查询DTO") -public class AgentSearchDTO { - @Schema(description = "搜索关键词") - private String keyword; - - @Schema(description = "搜索类型: mac - 按MAC地址搜索, name - 按名称搜索") - private String searchType; - - @Schema(description = "用户ID") - private Long userId; -} diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java index 63806a0a..22e8a2e0 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentService.java @@ -7,7 +7,6 @@ import xiaozhi.common.page.PageData; import xiaozhi.common.service.BaseService; import xiaozhi.modules.agent.dto.AgentCreateDTO; import xiaozhi.modules.agent.dto.AgentDTO; -import xiaozhi.modules.agent.dto.AgentSearchDTO; import xiaozhi.modules.agent.dto.AgentUpdateDTO; import xiaozhi.modules.agent.entity.AgentEntity; import xiaozhi.modules.agent.vo.AgentInfoVO; @@ -55,9 +54,11 @@ public interface AgentService extends BaseService { * 获取用户智能体列表 * * @param userId 用户ID + * @param keyword 搜索关键词 + * @param searchType 搜索类型(name - 按名称搜索,mac - 按MAC地址搜索) * @return 智能体列表 */ - List getUserAgents(Long userId); + List getUserAgents(Long userId, String keyword, String searchType); /** * 根据智能体ID获取设备数量 @@ -100,11 +101,5 @@ public interface AgentService extends BaseService { */ String createAgent(AgentCreateDTO dto); - /** - * 搜索智能体 - * - * @param searchDTO 搜索条件DTO - * @return 智能体列表 - */ - List searchAgent(AgentSearchDTO searchDTO); + } 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 81f084da..71a4641a 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 @@ -31,7 +31,6 @@ import xiaozhi.common.utils.JsonUtils; import xiaozhi.modules.agent.dao.AgentDao; import xiaozhi.modules.agent.dto.AgentCreateDTO; import xiaozhi.modules.agent.dto.AgentDTO; -import xiaozhi.modules.agent.dto.AgentSearchDTO; import xiaozhi.modules.agent.dto.AgentUpdateDTO; import xiaozhi.modules.agent.entity.AgentContextProviderEntity; import xiaozhi.modules.agent.entity.AgentEntity; @@ -129,11 +128,42 @@ public class AgentServiceImpl extends BaseServiceImpl imp } @Override - public List getUserAgents(Long userId) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("user_id", userId); - List agents = agentDao.selectList(wrapper); - return agents.stream().map(this::buildAgentDTO).collect(Collectors.toList()); + public List getUserAgents(Long userId, String keyword, String searchType) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id", userId); + + // 如果有搜索关键词,根据搜索类型添加相应的查询条件 + if (StringUtils.isNotBlank(keyword)) { + if ("mac".equals(searchType)) { + // 按MAC地址搜索:先搜索设备,再获取对应的智能体 + List devices = deviceService.searchDevicesByMacAddress(keyword, userId); + + if (!devices.isEmpty()) { + // 获取设备对应的智能体ID列表 + List agentIds = devices.stream() + .map(DeviceEntity::getAgentId) + .distinct() + .collect(Collectors.toList()); + + if (!agentIds.isEmpty()) { + queryWrapper.in("id", agentIds); + } else { + return new ArrayList<>(); + } + } else { + return new ArrayList<>(); + } + } else { + // 按名称搜索 + queryWrapper.like("agent_name", keyword); + } + } + + // 执行查询 + List agentEntities = baseDao.selectList(queryWrapper); + + // 转换为DTO并设置所有必要字段 + return agentEntities.stream().map(this::buildAgentDTO).collect(Collectors.toList()); } /** @@ -477,45 +507,4 @@ public class AgentServiceImpl extends BaseServiceImpl imp return entity.getId(); } - @Override - public List searchAgent(AgentSearchDTO searchDTO) { - if (StringUtils.isBlank(searchDTO.getKeyword())) { - return new ArrayList<>(); - } - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("user_id", searchDTO.getUserId()); - - if ("mac".equals(searchDTO.getSearchType())) { - // 按MAC地址搜索:先搜索设备,再获取对应的智能体 - List devices = deviceService.searchDevicesByMacAddress(searchDTO.getKeyword(), - searchDTO.getUserId()); - - if (devices.isEmpty()) { - return new ArrayList<>(); - } - - // 获取设备对应的智能体ID列表 - List agentIds = devices.stream() - .map(DeviceEntity::getAgentId) - .distinct() - .collect(Collectors.toList()); - - if (agentIds.isEmpty()) { - return new ArrayList<>(); - } - - // 查询智能体 - queryWrapper.in("id", agentIds); - } else { - // 按名称搜索 - queryWrapper.like("agent_name", searchDTO.getKeyword()); - } - - // 执行查询 - List agentEntities = baseDao.selectList(queryWrapper); - - // 转换为DTO并设置所有必要字段 - return agentEntities.stream().map(this::buildAgentDTO).collect(Collectors.toList()); - } -} +} \ No newline at end of file