修复bug2

This commit is contained in:
2026-03-20 16:37:32 +08:00
parent 83752b2f11
commit 1111e03bf4
6 changed files with 44 additions and 12 deletions

View File

@ -81,6 +81,7 @@ public class AppVideoController extends BaseController {
@PostMapping("/uploadAudioToOss") @PostMapping("/uploadAudioToOss")
public R<String> uploadAudioToOss(@ModelAttribute AppAudioFileDto bo) { public R<String> uploadAudioToOss(@ModelAttribute AppAudioFileDto bo) {
try { try {
bo.setSource("app");
String result = audioProcessService.uploadAudioToOss(bo); String result = audioProcessService.uploadAudioToOss(bo);
return R.ok(result); return R.ok(result);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
@ -108,7 +109,8 @@ public class AppVideoController extends BaseController {
String result = audioProcessService.textToSpeech( String result = audioProcessService.textToSpeech(
request.getDeviceId(), request.getDeviceId(),
request.getText(), request.getText(),
request.getFileSuffix() request.getFileSuffix(),
"app"
); );
return R.ok(result); return R.ok(result);
} catch (Exception e) { } catch (Exception e) {
@ -122,7 +124,7 @@ public class AppVideoController extends BaseController {
*/ */
@GetMapping("/queryAudioFileList") @GetMapping("/queryAudioFileList")
public R<List<AppFileVo>> queryAudioFileList(Long deviceId) { public R<List<AppFileVo>> queryAudioFileList(Long deviceId) {
return R.ok(audioProcessService.queryAudioFileList(deviceId)); return R.ok(audioProcessService.queryAudioFileList(deviceId,"app"));
} }
/** /**

View File

@ -14,4 +14,8 @@ public class AppAudioFileDto {
private MultipartFile file; private MultipartFile file;
/**
* 数据来源 1:app 2:web 3:其他
*/
private String source;
} }

View File

@ -1,8 +1,10 @@
package com.fuyuanshen.app.service; package com.fuyuanshen.app.service;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fuyuanshen.app.domain.bo.AppDeviceBindRecordBo;
import com.fuyuanshen.app.domain.dto.AppAudioFileDto; import com.fuyuanshen.app.domain.dto.AppAudioFileDto;
import com.fuyuanshen.app.domain.dto.AppFileRenameDto; import com.fuyuanshen.app.domain.dto.AppFileRenameDto;
import com.fuyuanshen.app.domain.vo.AppDeviceBindRecordVo;
import com.fuyuanshen.app.http.HttpTtsClient; import com.fuyuanshen.app.http.HttpTtsClient;
import com.fuyuanshen.common.core.domain.R; import com.fuyuanshen.common.core.domain.R;
import com.fuyuanshen.common.satoken.utils.AppLoginHelper; import com.fuyuanshen.common.satoken.utils.AppLoginHelper;
@ -65,6 +67,7 @@ public class AudioProcessService {
private final ISysOssService ossService; private final ISysOssService ossService;
private final IAppBusinessFileService appBusinessFileService; private final IAppBusinessFileService appBusinessFileService;
private final AppBusinessFileMapper appBusinessFileMapper; private final AppBusinessFileMapper appBusinessFileMapper;
private final IAppDeviceBindRecordService appDeviceBindRecordService;
// String accessKeyId = "LTAI5t66moCkhNC32TDJ5ReP"; // String accessKeyId = "LTAI5t66moCkhNC32TDJ5ReP";
// String accessKeySecret = "2F3sdoBJ08bYvJcuDgSkLnJwGXsvYH"; // String accessKeySecret = "2F3sdoBJ08bYvJcuDgSkLnJwGXsvYH";
@ -385,7 +388,8 @@ public class AudioProcessService {
appBusinessFileBo.setFileId(upload.getOssId()); appBusinessFileBo.setFileId(upload.getOssId());
appBusinessFileBo.setBusinessId(bo.getDeviceId()); appBusinessFileBo.setBusinessId(bo.getDeviceId());
appBusinessFileBo.setFileType(3L); appBusinessFileBo.setFileType(3L);
appBusinessFileBo.setCreateBy(AppLoginHelper.getUserId()); Long userId = getUserId(bo.getSource(), bo.getDeviceId());
appBusinessFileBo.setCreateBy(userId);
savedPath = saveByteArrayToFile(file.getInputStream(), generateRandomFileName(fileSuffix)); savedPath = saveByteArrayToFile(file.getInputStream(), generateRandomFileName(fileSuffix));
if (savedPath != null) { if (savedPath != null) {
log.info("MP3文件已保存: {}", savedPath); log.info("MP3文件已保存: {}", savedPath);
@ -409,6 +413,21 @@ public class AudioProcessService {
return null; return null;
} }
private Long getUserId(String source,Long deviceId){
Long userId = null;
if("app".equals( source)){
userId = AppLoginHelper.getUserId();
} else if ("web".equals( source)){
AppDeviceBindRecordBo appDeviceBindRecordBo = new AppDeviceBindRecordBo();
appDeviceBindRecordBo.setDeviceId(deviceId);
appDeviceBindRecordBo.setCommunicationMode(0);
List<AppDeviceBindRecordVo> appDeviceBindRecordVos = appDeviceBindRecordService.queryList(appDeviceBindRecordBo);
if (appDeviceBindRecordVos != null && !appDeviceBindRecordVos.isEmpty()){
userId = appDeviceBindRecordVos.get(0).getBindingUserId();
}
}
return userId;
}
/** /**
* 校验音频文件格式 * 校验音频文件格式
*/ */
@ -448,7 +467,7 @@ public class AudioProcessService {
return SUPPORTED_FORMATS.contains(ext); return SUPPORTED_FORMATS.contains(ext);
} }
public String textToSpeech(Long deviceId,String text, String fileSuffix) { public String textToSpeech(Long deviceId,String text, String fileSuffix,String source) {
//支持PCM/WAV/MP3格式 //支持PCM/WAV/MP3格式
if (fileSuffix == null || fileSuffix.isEmpty()) { if (fileSuffix == null || fileSuffix.isEmpty()) {
fileSuffix = "mp3"; fileSuffix = "mp3";
@ -485,7 +504,7 @@ public class AudioProcessService {
String fileName = generateRandomFileName(fileSuffix); String fileName = generateRandomFileName(fileSuffix);
savedMp3VolumePath = directory + "/" + fileName; savedMp3VolumePath = directory + "/" + fileName;
log.info("保存MP3文件: {}", savedMp3VolumePath); log.info("保存MP3文件: {}", savedMp3VolumePath);
FfmpegVolumeUtil.increaseMp3Volume(savedPath, savedMp3VolumePath, 12); FfmpegVolumeUtil.increaseMp3Volume(savedPath, savedMp3VolumePath, 8);
File file = new File(savedMp3VolumePath); File file = new File(savedMp3VolumePath);
String fileHash = fileHashUtil.getFileHash(file,"SHA-256"); String fileHash = fileHashUtil.getFileHash(file,"SHA-256");
@ -499,7 +518,8 @@ public class AudioProcessService {
appBusinessFileBo.setFileId(upload.getOssId()); appBusinessFileBo.setFileId(upload.getOssId());
appBusinessFileBo.setBusinessId(deviceId); appBusinessFileBo.setBusinessId(deviceId);
appBusinessFileBo.setFileType(3L); appBusinessFileBo.setFileType(3L);
appBusinessFileBo.setCreateBy(AppLoginHelper.getUserId()); Long userId = getUserId(source, deviceId);
appBusinessFileBo.setCreateBy(userId);
appBusinessFileService.insertByBo(appBusinessFileBo); appBusinessFileService.insertByBo(appBusinessFileBo);
if (upload != null) { if (upload != null) {
return upload.getUrl(); return upload.getUrl();
@ -547,14 +567,14 @@ public class AudioProcessService {
return timestamp+extension; return timestamp+extension;
} }
public List<AppFileVo> queryAudioFileList(Long deviceId) { public List<AppFileVo> queryAudioFileList(Long deviceId,String source) {
if(deviceId == null){ if(deviceId == null){
return null; return null;
} }
// Long userId = LoginHelper.getUserId(); Long userId = getUserId(source, deviceId);
AppBusinessFileBo bo = new AppBusinessFileBo(); AppBusinessFileBo bo = new AppBusinessFileBo();
bo.setBusinessId(deviceId); bo.setBusinessId(deviceId);
// bo.setCreateBy(userId); bo.setCreateBy(userId);
bo.setFileType(3L); bo.setFileType(3L);
return appBusinessFileService.queryAppFileList(bo); return appBusinessFileService.queryAppFileList(bo);
} }

View File

@ -76,6 +76,7 @@ public class WebVideoController extends BaseController {
@PostMapping("/uploadAudioToOss") @PostMapping("/uploadAudioToOss")
public R<String> uploadAudioToOss(@ModelAttribute AppAudioFileDto bo) { public R<String> uploadAudioToOss(@ModelAttribute AppAudioFileDto bo) {
try { try {
bo.setSource("web");
String result = audioProcessService.uploadAudioToOss(bo); String result = audioProcessService.uploadAudioToOss(bo);
return R.ok(result); return R.ok(result);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
@ -100,7 +101,8 @@ public class WebVideoController extends BaseController {
String result = audioProcessService.textToSpeech( String result = audioProcessService.textToSpeech(
request.getDeviceId(), request.getDeviceId(),
request.getText(), request.getText(),
request.getFileSuffix() request.getFileSuffix(),
"web"
); );
return R.ok(result); return R.ok(result);
} catch (Exception e) { } catch (Exception e) {
@ -114,7 +116,7 @@ public class WebVideoController extends BaseController {
*/ */
@GetMapping("/queryAudioFileList") @GetMapping("/queryAudioFileList")
public R<List<AppFileVo>> queryAudioFileList(Long deviceId) { public R<List<AppFileVo>> queryAudioFileList(Long deviceId) {
return R.ok(audioProcessService.queryAudioFileList(deviceId)); return R.ok(audioProcessService.queryAudioFileList(deviceId,"web"));
} }
/** /**

View File

@ -46,6 +46,9 @@ public class AppDeviceBindRecordBo extends BaseEntity {
* 绑定时间 * 绑定时间
*/ */
private Date bindingTime; private Date bindingTime;
/**
* 通讯方式 0:4G;1:蓝牙,2 4G&蓝牙
*/
private Integer communicationMode;
} }

View File

@ -76,6 +76,7 @@ public class AppDeviceBindRecordServiceImpl implements IAppDeviceBindRecordServi
lqw.eq(bo.getDeviceId() != null, AppDeviceBindRecord::getDeviceId, bo.getDeviceId()); lqw.eq(bo.getDeviceId() != null, AppDeviceBindRecord::getDeviceId, bo.getDeviceId());
lqw.eq(bo.getBindingUserId() != null, AppDeviceBindRecord::getBindingUserId, bo.getBindingUserId()); lqw.eq(bo.getBindingUserId() != null, AppDeviceBindRecord::getBindingUserId, bo.getBindingUserId());
lqw.eq(bo.getBindingTime() != null, AppDeviceBindRecord::getBindingTime, bo.getBindingTime()); lqw.eq(bo.getBindingTime() != null, AppDeviceBindRecord::getBindingTime, bo.getBindingTime());
lqw.eq(bo.getCommunicationMode() != null, AppDeviceBindRecord::getCommunicationMode, bo.getCommunicationMode());
return lqw; return lqw;
} }