diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentDTO.java index 218ee1eb..e5d6b029 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/dto/AgentDTO.java @@ -1,6 +1,7 @@ package xiaozhi.modules.agent.dto; import java.util.Date; +import java.util.List; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -45,4 +46,7 @@ public class AgentDTO { @Schema(description = "设备数量", example = "10") private Integer deviceCount; + + @Schema(description = "关联设备的MAC地址列表", example = "[\"00:11:22:33:44:55\", \"66:77:88:99:AA:BB\"]") + private List macAddresses; } \ No newline at end of file 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 0adf0873..65e842fd 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 @@ -42,6 +42,7 @@ import xiaozhi.modules.agent.service.AgentPluginMappingService; import xiaozhi.modules.agent.service.AgentService; import xiaozhi.modules.agent.service.AgentTemplateService; import xiaozhi.modules.agent.vo.AgentInfoVO; +import xiaozhi.modules.device.entity.DeviceEntity; import xiaozhi.modules.device.service.DeviceService; import xiaozhi.modules.model.dto.ModelProviderDTO; import xiaozhi.modules.model.dto.VoiceDTO; @@ -157,6 +158,15 @@ public class AgentServiceImpl extends BaseServiceImpl imp // 获取设备数量 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()); } diff --git a/main/manager-web/package-lock.json b/main/manager-web/package-lock.json index acc4aec2..6ace205e 100644 --- a/main/manager-web/package-lock.json +++ b/main/manager-web/package-lock.json @@ -11096,6 +11096,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/main/manager-web/src/views/home.vue b/main/manager-web/src/views/home.vue index fea5af89..d88a44ac 100644 --- a/main/manager-web/src/views/home.vue +++ b/main/manager-web/src/views/home.vue @@ -136,7 +136,15 @@ export default { } this.devices = this.originalDevices.filter(device => { - return this.searchRegex.test(device.agentName); + // 搜索智能体名称 + if (this.searchRegex.test(device.agentName)) { + return true; + } + // 搜索关联设备的MAC地址 + if (device.macAddresses && device.macAddresses.length > 0) { + return device.macAddresses.some(macAddress => this.searchRegex.test(macAddress)); + } + return false; }); }, // 搜索更新智能体列表