diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentVoicePrintService.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentVoicePrintService.java index 816c02e3..d6264e71 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentVoicePrintService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/AgentVoicePrintService.java @@ -24,26 +24,29 @@ public interface AgentVoicePrintService { /** * 删除智能体的指的声纹 * + * @param userId 当前登录的用户id * @param voicePrintId 声纹id * @return 是否成功 T:成功 F:失败 */ - boolean delete(String voicePrintId); + boolean delete(Long userId, String voicePrintId); /** * 获取指定智能体的所有声纹数据 * + * @param userId 当前登录的用户id * @param agentId 智能体id * @return 声纹数据集合 */ - List list(String agentId); + List list(Long userId, String agentId); /** * 更新智能体的指的声纹数据 * + * @param userId 当前登录的用户id * @param dto 修改的声纹的数据 * @return 是否成功 T:成功 F:失败 */ - boolean update(AgentVoicePrintUpdateDTO dto); + boolean update(Long userId, AgentVoicePrintUpdateDTO dto); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentVoicePrintServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentVoicePrintServiceImpl.java index 5341e823..2a254932 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentVoicePrintServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentVoicePrintServiceImpl.java @@ -73,12 +73,14 @@ public class AgentVoicePrintServiceImpl extends ServiceImpl { try { - // 删除声纹 - int row = baseMapper.deleteById(voicePrintId); + // 删除声纹,按照指定当前登录用户和智能体 + int row = baseMapper.delete(new LambdaQueryWrapper() + .eq(AgentVoicePrintEntity::getId,voicePrintId) + .eq(AgentVoicePrintEntity::getCreator,userId)); if(row != 1){ status.setRollbackOnly(); // 标记事务回滚 return false; @@ -95,9 +97,11 @@ public class AgentVoicePrintServiceImpl extends ServiceImpl list(String agentId) { + public List list(Long userId, String agentId) { + // 按照指定当前登录用户和智能体查找数据 List list = baseMapper.selectList(new LambdaQueryWrapper() - .eq(AgentVoicePrintEntity::getAgentId, agentId)); + .eq(AgentVoicePrintEntity::getAgentId, agentId) + .eq(AgentVoicePrintEntity::getCreator, userId)); return list.stream().map(entity -> { // 遍历转换成AgentVoicePrintVO类型 return ConvertUtils.sourceToTarget(entity, AgentVoicePrintVO.class); @@ -106,7 +110,13 @@ public class AgentVoicePrintServiceImpl extends ServiceImpl() + .eq(AgentVoicePrintEntity::getAgentId, dto.getId()) + .eq(AgentVoicePrintEntity::getCreator, userId)); + if (l != 1) { + return false; + } // 获取音频Id String audioId = dto.getAudioId(); // 如果有新的音频 @@ -228,12 +238,14 @@ public class AgentVoicePrintServiceImpl extends ServiceImpl response = restTemplate.postForEntity(requestUrl, requestEntity, String.class); if (response.getStatusCode() != HttpStatus.OK) { - throw new RenException("声纹保存失败"); + log.error("声纹注册失败,请求路径:{}", requestUrl); + throw new RenException("声纹保存失败,请求不成功"); } // 检查响应内容 String responseBody = response.getBody(); if(responseBody == null || !responseBody.contains("true")){ - throw new RenException("声纹保存失败"); + log.error("声纹注册失败,请求处理失败内容:{}", responseBody == null ? "空内容" : responseBody); + throw new RenException("声纹保存失败,请求处理失败"); } } @@ -254,12 +266,14 @@ public class AgentVoicePrintServiceImpl extends ServiceImpl response = restTemplate.exchange(requestUrl, HttpMethod.DELETE, requestEntity, String.class); if (response.getStatusCode() != HttpStatus.OK) { - throw new RenException("声纹保存失败"); + log.error("声纹注销失败,请求路径:{}", requestUrl); + throw new RenException("声纹注销失败,请求不成功"); } // 检查响应内容 String responseBody = response.getBody(); if(responseBody == null || !responseBody.contains("true")){ - throw new RenException("声纹保存失败"); + log.error("声纹注销失败,请求处理失败内容:{}", responseBody == null ? "空内容" : responseBody); + throw new RenException("声纹注销失败,请求处理失败"); } } }