96 lines
3.3 KiB
Java
96 lines
3.3 KiB
Java
package com.rj.service.impl;
|
|
|
|
import com.rj.entity.TtsRequestLog;
|
|
import com.rj.mapper.TtsRequestLogMapper;
|
|
import com.rj.service.ITtsRequestLogService;
|
|
import com.rj.utils.MinIOUrlGenerator;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
/**
|
|
* TTS请求日志服务实现类
|
|
*
|
|
* @author rj
|
|
* @date 2025-01-02
|
|
*/
|
|
@Slf4j
|
|
@Service
|
|
public class TtsRequestLogServiceImpl implements ITtsRequestLogService {
|
|
|
|
@Autowired
|
|
private TtsRequestLogMapper ttsRequestLogMapper;
|
|
|
|
@Autowired
|
|
private MinIOUrlGenerator urlGenerator;
|
|
|
|
@Override
|
|
public boolean saveTtsRequestLog(TtsRequestLog requestLog) {
|
|
try {
|
|
int result = ttsRequestLogMapper.insert(requestLog);
|
|
log.info("TTS请求日志保存成功: {}", requestLog.getId());
|
|
return result > 0;
|
|
} catch (Exception e) {
|
|
log.error("TTS请求日志保存失败: {}", e.getMessage(), e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public TtsRequestLog getTtsRequestLogById(String id) {
|
|
try {
|
|
return ttsRequestLogMapper.selectById(id);
|
|
} catch (Exception e) {
|
|
log.error("查询TTS请求日志失败: {}", e.getMessage(), e);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean setShortUrlByAudioName(MinIOUrlGenerator.UrlInfo urlInfo ) {
|
|
try {
|
|
if (urlInfo == null || urlInfo.getFileName().trim().isEmpty()) {
|
|
log.error("音频名称不能为空");
|
|
return false;
|
|
}
|
|
|
|
// 根据音频名称查询日志记录
|
|
LambdaQueryWrapper<TtsRequestLog> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(TtsRequestLog::getAudioName, urlInfo.getFileName());
|
|
TtsRequestLog requestLog = ttsRequestLogMapper.selectOne(queryWrapper);
|
|
|
|
if (requestLog == null) {
|
|
log.error("未找到音频名称为 {} 的日志记录", urlInfo.getFileName());
|
|
return false;
|
|
}
|
|
|
|
// 更新日志记录的短链接信息
|
|
requestLog.setShortUrl(urlInfo.getUrl());
|
|
requestLog.setShortUrlExpireTime(urlInfo.getExpiresAt());
|
|
requestLog.setUpdateTime(LocalDateTime.now());
|
|
|
|
int result = ttsRequestLogMapper.updateById(requestLog);
|
|
if (result > 0) {
|
|
log.info("成功为音频 {} 设置短链接: {}, 过期时间: {}",
|
|
urlInfo.getFileName(), urlInfo.getUrl(), urlInfo.getFormattedExpiresAt());
|
|
return true;
|
|
} else {
|
|
log.error("更新音频 {} 的短链接失败", urlInfo.getFileName());
|
|
return false;
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
log.error("根据音频名称设置短链接失败: 音频名称={}, 错误={}", urlInfo.getFileName(), e.getMessage(), e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean setShortUrlByAudioName(String audioName) {
|
|
return false;
|
|
}
|
|
}
|