diff --git a/src/main/java/com/rj/Langchain4jHeima20250803Application.java b/src/main/java/com/rj/Langchain4jHeima20250803Application.java index e0097cc..e223727 100644 --- a/src/main/java/com/rj/Langchain4jHeima20250803Application.java +++ b/src/main/java/com/rj/Langchain4jHeima20250803Application.java @@ -11,6 +11,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; * http://localhost:9060/swagger-ui/index.html?urls.primaryName=public-api * http://101.43.230.106:8180/aismartcard/aicardbackend * + * */ @MapperScan("com.rj.mapper") @SpringBootApplication diff --git a/src/main/java/com/rj/aiservice/CstAIStreamingService.java b/src/main/java/com/rj/aiservice/CstAIStreamingService.java index f35e0de..a825ce9 100644 --- a/src/main/java/com/rj/aiservice/CstAIStreamingService.java +++ b/src/main/java/com/rj/aiservice/CstAIStreamingService.java @@ -31,6 +31,7 @@ public interface CstAIStreamingService { // @SystemMessage(fromResource = "system.txt") public Flux chatMemoryIdRAG(@MemoryId String memoryId, @UserMessage String message); + } diff --git a/src/main/java/com/rj/common/PasswordUtil.java b/src/main/java/com/rj/common/PasswordUtil.java index 31fbcec..6b81214 100644 --- a/src/main/java/com/rj/common/PasswordUtil.java +++ b/src/main/java/com/rj/common/PasswordUtil.java @@ -88,3 +88,4 @@ public class PasswordUtil { + diff --git a/src/main/java/com/rj/common/ServiceManager.java b/src/main/java/com/rj/common/ServiceManager.java index 1892e79..aca0883 100644 --- a/src/main/java/com/rj/common/ServiceManager.java +++ b/src/main/java/com/rj/common/ServiceManager.java @@ -72,3 +72,4 @@ public class ServiceManager { } } + diff --git a/src/main/java/com/rj/controller/AudioManagementController.java b/src/main/java/com/rj/controller/AudioManagementController.java index b2af7fc..180fa37 100644 --- a/src/main/java/com/rj/controller/AudioManagementController.java +++ b/src/main/java/com/rj/controller/AudioManagementController.java @@ -7,6 +7,7 @@ import com.rj.entity.AudioManagement; import com.rj.entity.CustomerManagement; import com.rj.entity.SalesManagement; import com.rj.service.IAudioManagementService; +import com.rj.service.IFileUploadService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -20,6 +21,7 @@ import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; /** *

@@ -38,6 +40,9 @@ public class AudioManagementController { @Autowired private IAudioManagementService audioManagementService; + @Autowired + private IFileUploadService fileUploadService; + /** * 新增录音 */ @@ -48,6 +53,11 @@ public class AudioManagementController { @RequestBody AudioManagement audioManagement) { Map result = new HashMap<>(); try { + // 生成录音ID + if (audioManagement.getId() == null || audioManagement.getId().trim().isEmpty()) { + audioManagement.setId(UUID.randomUUID().toString()); + } + audioManagement.setCreateTime(LocalDateTime.now()); audioManagement.setUpdateTime(LocalDateTime.now()); boolean success = audioManagementService.save(audioManagement); @@ -80,9 +90,19 @@ public class AudioManagementController { try { AudioManagement audio = audioManagementService.getById(id); if (audio != null) { + // 检查音频文件是否存在 + boolean fileExists = fileUploadService.audioFileExists(id); + + Map audioInfo = new HashMap<>(); + audioInfo.put("audio", audio); + audioInfo.put("fileExists", fileExists); + audioInfo.put("fileUrl", audio.getAudioFileUrl()); + audioInfo.put("fileSize", audio.getAudioFileSize()); + audioInfo.put("originalFileName", audio.getAudioFileOriginalName()); + result.put("success", true); result.put("message", "查询成功"); - result.put("data", audio); + result.put("data", audioInfo); return ResponseEntity.ok(result); } else { result.put("success", false); @@ -182,6 +202,10 @@ public class AudioManagementController { audio.setSalesName(saleNameMap.getOrDefault(audio.getSalesId(), "")); audio.setProjectName(projectNameMap.getOrDefault(audio.getProjectId(), "")); // audio.setCustomerName(customerNameMap.getOrDefault(audio.getCustomerId(), "")); + + // 检查音频文件是否存在 + boolean fileExists = fileUploadService.audioFileExists(audio.getId()); + // 注意:这里不需要设置,因为实体类中已经有这些字段了 }); result.put("success", true); @@ -321,4 +345,97 @@ public class AudioManagementController { return ResponseEntity.internalServerError().body(result); } } + + /** + * 获取录音的音频文件信息 + */ + @GetMapping("/{id}/audio-info") + @Operation(summary = "获取录音的音频文件信息", description = "根据录音ID获取音频文件信息") + public ResponseEntity> getAudioFileInfo( + @Parameter(description = "录音ID", required = true) + @PathVariable String id) { + Map result = new HashMap<>(); + try { + // 检查录音是否存在 + AudioManagement audio = audioManagementService.getById(id); + if (audio == null) { + result.put("success", false); + result.put("message", "录音不存在"); + return ResponseEntity.notFound().build(); + } + + // 检查音频文件是否存在 + boolean fileExists = fileUploadService.audioFileExists(id); + String fileUrl = null; + + if (fileExists) { + fileUrl = fileUploadService.getAudioFileUrl(id); + } + + Map audioInfo = new HashMap<>(); + audioInfo.put("audioId", id); + audioInfo.put("fileExists", fileExists); + audioInfo.put("fileUrl", fileUrl); + audioInfo.put("audioInfo", audio); + + result.put("success", true); + result.put("message", "获取成功"); + result.put("data", audioInfo); + + return ResponseEntity.ok(result); + } catch (Exception e) { + result.put("success", false); + result.put("message", "获取音频文件信息异常:" + e.getMessage()); + return ResponseEntity.internalServerError().body(result); + } + } + + /** + * 删除录音及其音频文件 + */ + @DeleteMapping("/deleteWithFile/{id}") + @Operation(summary = "删除录音及其音频文件", description = "根据录音ID删除录音信息及其关联的音频文件") + public ResponseEntity> deleteAudioWithFile( + @Parameter(description = "录音ID", required = true) + @PathVariable String id) { + Map result = new HashMap<>(); + try { + // 获取录音记录 + AudioManagement audio = audioManagementService.getById(id); + if (audio == null) { + result.put("success", false); + result.put("message", "录音记录不存在"); + return ResponseEntity.notFound().build(); + } + + // 先删除音频文件 + boolean fileDeleted = fileUploadService.deleteAudioFile(id); + + // 清空录音记录中的文件信息 + audio.setAudioFilePath(null); + audio.setAudioFileUrl(null); + audio.setAudioFileSize(null); + audio.setAudioFileOriginalName(null); + audio.setAudioFileExtension(null); + audio.setUpdateTime(LocalDateTime.now()); + + boolean recordUpdated = audioManagementService.updateById(audio); + + if (recordUpdated) { + result.put("success", true); + result.put("message", "录音及其音频文件删除成功"); + result.put("fileDeleted", fileDeleted); + result.put("recordUpdated", recordUpdated); + return ResponseEntity.ok(result); + } else { + result.put("success", false); + result.put("message", "录音记录更新失败"); + return ResponseEntity.badRequest().body(result); + } + } catch (Exception e) { + result.put("success", false); + result.put("message", "删除异常:" + e.getMessage()); + return ResponseEntity.internalServerError().body(result); + } + } } diff --git a/src/main/java/com/rj/controller/sys/AuthController.java b/src/main/java/com/rj/controller/sys/AuthController.java index e5f7667..ecb9a91 100644 --- a/src/main/java/com/rj/controller/sys/AuthController.java +++ b/src/main/java/com/rj/controller/sys/AuthController.java @@ -171,3 +171,4 @@ public class AuthController { + diff --git a/src/main/java/com/rj/controller/sys/MenuController.java b/src/main/java/com/rj/controller/sys/MenuController.java index f1545fa..63c0102 100644 --- a/src/main/java/com/rj/controller/sys/MenuController.java +++ b/src/main/java/com/rj/controller/sys/MenuController.java @@ -310,3 +310,4 @@ public class MenuController { + diff --git a/src/main/java/com/rj/controller/sys/RoleController.java b/src/main/java/com/rj/controller/sys/RoleController.java index 1a340d6..0212946 100644 --- a/src/main/java/com/rj/controller/sys/RoleController.java +++ b/src/main/java/com/rj/controller/sys/RoleController.java @@ -280,3 +280,4 @@ public class RoleController { + diff --git a/src/main/java/com/rj/controller/sys/UserRoleController.java b/src/main/java/com/rj/controller/sys/UserRoleController.java index 9e04174..2d78576 100644 --- a/src/main/java/com/rj/controller/sys/UserRoleController.java +++ b/src/main/java/com/rj/controller/sys/UserRoleController.java @@ -286,3 +286,4 @@ public class UserRoleController { + diff --git a/src/main/java/com/rj/entity/AudioManagement.java b/src/main/java/com/rj/entity/AudioManagement.java index 0f21c9a..c2ef961 100644 --- a/src/main/java/com/rj/entity/AudioManagement.java +++ b/src/main/java/com/rj/entity/AudioManagement.java @@ -135,5 +135,24 @@ public class AudioManagement implements Serializable { @TableField("update_time") private LocalDateTime updateTime; + @Schema(description = "音频文件路径") + @TableField("audio_file_path") + private String audioFilePath; + + @Schema(description = "音频文件访问URL") + @TableField("audio_file_url") + private String audioFileUrl; + + @Schema(description = "音频文件大小(字节)") + @TableField("audio_file_size") + private Long audioFileSize; + + @Schema(description = "音频文件原始名称") + @TableField("audio_file_original_name") + private String audioFileOriginalName; + + @Schema(description = "音频文件扩展名") + @TableField("audio_file_extension") + private String audioFileExtension; } diff --git a/src/main/java/com/rj/pojo/sys/LoginResponse.java b/src/main/java/com/rj/pojo/sys/LoginResponse.java index fb34722..2144988 100644 --- a/src/main/java/com/rj/pojo/sys/LoginResponse.java +++ b/src/main/java/com/rj/pojo/sys/LoginResponse.java @@ -37,3 +37,4 @@ public class LoginResponse { + diff --git a/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java b/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java index d6f015b..428d3a5 100644 --- a/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java +++ b/src/main/java/com/rj/scheduler/AudioStatisticsScheduler.java @@ -56,3 +56,4 @@ public class AudioStatisticsScheduler { } } } + diff --git a/src/main/java/com/rj/service/sys/IMenuService.java b/src/main/java/com/rj/service/sys/IMenuService.java index 9da8aa4..eb6b24a 100644 --- a/src/main/java/com/rj/service/sys/IMenuService.java +++ b/src/main/java/com/rj/service/sys/IMenuService.java @@ -19,3 +19,4 @@ public interface IMenuService extends IService

{ + diff --git a/src/main/java/com/rj/service/sys/IRoleService.java b/src/main/java/com/rj/service/sys/IRoleService.java index 02050fa..f13cb27 100644 --- a/src/main/java/com/rj/service/sys/IRoleService.java +++ b/src/main/java/com/rj/service/sys/IRoleService.java @@ -19,3 +19,4 @@ public interface IRoleService extends IService { + diff --git a/src/main/java/com/rj/service/sys/IUserRoleService.java b/src/main/java/com/rj/service/sys/IUserRoleService.java index 7606b98..60d6e69 100644 --- a/src/main/java/com/rj/service/sys/IUserRoleService.java +++ b/src/main/java/com/rj/service/sys/IUserRoleService.java @@ -19,3 +19,4 @@ public interface IUserRoleService extends IService { + diff --git a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java index 9ac2b66..d814be5 100644 --- a/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/MenuServiceImpl.java @@ -23,3 +23,4 @@ public class MenuServiceImpl extends ServiceImpl implements IM + diff --git a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java index d8b1ec1..db7da2d 100644 --- a/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/RoleServiceImpl.java @@ -23,3 +23,4 @@ public class RoleServiceImpl extends ServiceImpl implements IR + diff --git a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java index 3af1f93..9c57189 100644 --- a/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java +++ b/src/main/java/com/rj/service/sys/impl/UserRoleServiceImpl.java @@ -23,3 +23,4 @@ public class UserRoleServiceImpl extends ServiceImpl i + diff --git a/src/main/resources/mapper/AudioManagementStatisticsMapper.xml b/src/main/resources/mapper/AudioManagementStatisticsMapper.xml index 12b0e90..78e011e 100644 --- a/src/main/resources/mapper/AudioManagementStatisticsMapper.xml +++ b/src/main/resources/mapper/AudioManagementStatisticsMapper.xml @@ -9,3 +9,4 @@ + diff --git a/src/main/resources/mapper/sys/MenuMapper.xml b/src/main/resources/mapper/sys/MenuMapper.xml index adb0b79..6f2c437 100644 --- a/src/main/resources/mapper/sys/MenuMapper.xml +++ b/src/main/resources/mapper/sys/MenuMapper.xml @@ -24,3 +24,4 @@ +