feat: 简化DigitalHumanReq类,移除subtitles和effects属性
This commit is contained in:
parent
d91407ac53
commit
44c77a8a83
|
|
@ -2,13 +2,9 @@ package top.continew.admin.business.model.req;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import top.continew.admin.business.model.entity.Effect;
|
|
||||||
import top.continew.admin.business.model.entity.SubtitleItem;
|
|
||||||
import top.continew.admin.business.model.entity.SubtitleStyle;
|
import top.continew.admin.business.model.entity.SubtitleStyle;
|
||||||
import top.continew.starter.extension.crud.model.req.BaseReq;
|
import top.continew.starter.extension.crud.model.req.BaseReq;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数字人请求参数对象
|
* 数字人请求参数对象
|
||||||
*
|
*
|
||||||
|
|
@ -44,18 +40,8 @@ public class DigitalHumanReq extends BaseReq {
|
||||||
*/
|
*/
|
||||||
private String generatedVideoUrl;
|
private String generatedVideoUrl;
|
||||||
|
|
||||||
/**
|
|
||||||
* 字幕项列表(冗余存储,用于快速回显)
|
|
||||||
*/
|
|
||||||
private List<SubtitleItem> subtitles;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字幕样式配置(冗余或快照)
|
* 字幕样式配置(冗余或快照)
|
||||||
*/
|
*/
|
||||||
private SubtitleStyle subtitleStyle;
|
private SubtitleStyle subtitleStyle;
|
||||||
|
|
||||||
/**
|
|
||||||
* 特效列表(冗余存储)
|
|
||||||
*/
|
|
||||||
private List<Effect> effects;
|
|
||||||
}
|
}
|
||||||
|
|
@ -20,7 +20,6 @@ import top.continew.admin.business.service.DigitalHumanService;
|
||||||
import top.continew.starter.extension.crud.model.resp.PageResp;
|
import top.continew.starter.extension.crud.model.resp.PageResp;
|
||||||
import top.continew.starter.extension.crud.service.impl.BaseServiceImpl;
|
import top.continew.starter.extension.crud.service.impl.BaseServiceImpl;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -116,28 +115,6 @@ public class DigitalHumanServiceImpl extends BaseServiceImpl<DigitalHumanMapper,
|
||||||
subtitleStyleMapper.insert(subtitleStyle);
|
subtitleStyleMapper.insert(subtitleStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存字幕项列表
|
|
||||||
if (req.getSubtitles() != null && !req.getSubtitles().isEmpty()) {
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
for (SubtitleItem subtitleItem : req.getSubtitles()) {
|
|
||||||
subtitleItem.setDigitalHumanId(digitalHuman.getId());
|
|
||||||
subtitleItem.setCreateTime(now);
|
|
||||||
subtitleItem.setUpdateTime(now);
|
|
||||||
subtitleItemMapper.insert(subtitleItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存特效列表
|
|
||||||
if (req.getEffects() != null && !req.getEffects().isEmpty()) {
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
for (Effect effect : req.getEffects()) {
|
|
||||||
effect.setDigitalHumanId(digitalHuman.getId());
|
|
||||||
effect.setCreateTime(now);
|
|
||||||
effect.setUpdateTime(now);
|
|
||||||
effectMapper.insert(effect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return digitalHuman.getId();
|
return digitalHuman.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -197,36 +174,6 @@ public class DigitalHumanServiceImpl extends BaseServiceImpl<DigitalHumanMapper,
|
||||||
subtitleStyleMapper.insert(subtitleStyle);
|
subtitleStyleMapper.insert(subtitleStyle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除旧的字幕项,然后保存新的字幕项
|
|
||||||
LambdaQueryWrapper<SubtitleItem> subtitleItemWrapper = new LambdaQueryWrapper<>();
|
|
||||||
subtitleItemWrapper.eq(SubtitleItem::getDigitalHumanId, id);
|
|
||||||
subtitleItemMapper.delete(subtitleItemWrapper);
|
|
||||||
|
|
||||||
if (req.getSubtitles() != null && !req.getSubtitles().isEmpty()) {
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
for (SubtitleItem subtitleItem : req.getSubtitles()) {
|
|
||||||
subtitleItem.setDigitalHumanId(id);
|
|
||||||
subtitleItem.setCreateTime(now);
|
|
||||||
subtitleItem.setUpdateTime(now);
|
|
||||||
subtitleItemMapper.insert(subtitleItem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除旧的特效,然后保存新的特效
|
|
||||||
LambdaQueryWrapper<Effect> effectWrapper = new LambdaQueryWrapper<>();
|
|
||||||
effectWrapper.eq(Effect::getDigitalHumanId, id);
|
|
||||||
effectMapper.delete(effectWrapper);
|
|
||||||
|
|
||||||
if (req.getEffects() != null && !req.getEffects().isEmpty()) {
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
|
||||||
for (Effect effect : req.getEffects()) {
|
|
||||||
effect.setDigitalHumanId(id);
|
|
||||||
effect.setCreateTime(now);
|
|
||||||
effect.setUpdateTime(now);
|
|
||||||
effectMapper.insert(effect);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private DigitalHumanResp convertToResp(DigitalHuman digitalHuman) {
|
private DigitalHumanResp convertToResp(DigitalHuman digitalHuman) {
|
||||||
|
|
|
||||||
|
|
@ -75,8 +75,6 @@ class DigitalHumanServiceImplTest {
|
||||||
subtitleItem2.setEndTime(2.0);
|
subtitleItem2.setEndTime(2.0);
|
||||||
subtitleItem2.setText("测试字幕2");
|
subtitleItem2.setText("测试字幕2");
|
||||||
|
|
||||||
req.setSubtitles(List.of(subtitleItem1, subtitleItem2));
|
|
||||||
|
|
||||||
// 添加特效
|
// 添加特效
|
||||||
Effect effect1 = new Effect();
|
Effect effect1 = new Effect();
|
||||||
effect1.setType("text");
|
effect1.setType("text");
|
||||||
|
|
@ -90,8 +88,6 @@ class DigitalHumanServiceImplTest {
|
||||||
effect2.setSourceUrl("http://test.com/effect2.jpg");
|
effect2.setSourceUrl("http://test.com/effect2.jpg");
|
||||||
effect2.setLength(3.0);
|
effect2.setLength(3.0);
|
||||||
|
|
||||||
req.setEffects(List.of(effect1, effect2));
|
|
||||||
|
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,21 +151,6 @@ class DigitalHumanServiceImplTest {
|
||||||
updatedStyle.setStrokeWidth(3);
|
updatedStyle.setStrokeWidth(3);
|
||||||
updateReq.setSubtitleStyle(updatedStyle);
|
updateReq.setSubtitleStyle(updatedStyle);
|
||||||
|
|
||||||
// 更新字幕项(只保留一个)
|
|
||||||
SubtitleItem updatedSubtitle = new SubtitleItem();
|
|
||||||
updatedSubtitle.setStartTime(0.0);
|
|
||||||
updatedSubtitle.setEndTime(3.0);
|
|
||||||
updatedSubtitle.setText("更新后的字幕");
|
|
||||||
updateReq.setSubtitles(List.of(updatedSubtitle));
|
|
||||||
|
|
||||||
// 更新特效(只保留一个)
|
|
||||||
Effect updatedEffect = new Effect();
|
|
||||||
updatedEffect.setType("music");
|
|
||||||
updatedEffect.setName("更新后的特效");
|
|
||||||
updatedEffect.setSourceUrl("http://test.com/effect-updated.mp3");
|
|
||||||
updatedEffect.setLength(4.0);
|
|
||||||
updateReq.setEffects(List.of(updatedEffect));
|
|
||||||
|
|
||||||
// 执行更新
|
// 执行更新
|
||||||
digitalHumanService.update(updateReq, id);
|
digitalHumanService.update(updateReq, id);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,6 @@ class DigitalHumanServiceImplUnitTest {
|
||||||
subtitleItem2.setEndTime(2.0);
|
subtitleItem2.setEndTime(2.0);
|
||||||
subtitleItem2.setText("测试字幕2");
|
subtitleItem2.setText("测试字幕2");
|
||||||
|
|
||||||
req.setSubtitles(List.of(subtitleItem1, subtitleItem2));
|
|
||||||
|
|
||||||
// 添加特效
|
// 添加特效
|
||||||
Effect effect1 = new Effect();
|
Effect effect1 = new Effect();
|
||||||
effect1.setType("text");
|
effect1.setType("text");
|
||||||
|
|
@ -92,8 +90,6 @@ class DigitalHumanServiceImplUnitTest {
|
||||||
effect2.setSourceUrl("http://test.com/effect2.jpg");
|
effect2.setSourceUrl("http://test.com/effect2.jpg");
|
||||||
effect2.setLength(3.0);
|
effect2.setLength(3.0);
|
||||||
|
|
||||||
req.setEffects(List.of(effect1, effect2));
|
|
||||||
|
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue