feat: 为SubtitleItem添加批量添加API接口

1. 在SubtitleItemService接口中添加了batchAdd方法声明
2. 在SubtitleItemServiceImpl中实现了批量添加逻辑
   - 使用saveBatch方法进行批量插入
   - 自动设置创建时间和更新时间
   - 处理空列表情况

3. 在SubtitleItemController中添加了批量添加API接口
   - 接口地址:POST /business/subtitleItem/batchAdd
   - 支持接收字幕项列表
   - 返回成功添加的数量

4. 使用MyBatis Plus的saveBatch方法优化批量插入性能
This commit is contained in:
wangzhiwei 2026-01-08 10:31:45 +08:00
parent cf2bc93e78
commit 26bf7326e0
3 changed files with 36 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package top.continew.admin.business.service;
import top.continew.admin.business.model.query.SubtitleItemQuery;
import java.util.List;
import top.continew.admin.business.model.req.SubtitleItemReq;
import top.continew.admin.business.model.resp.SubtitleItemDetailResp;
import top.continew.admin.business.model.resp.SubtitleItemResp;
@ -18,5 +19,13 @@ public interface SubtitleItemService extends BaseService<SubtitleItemResp, Subti
PageResp<SubtitleItemResp> pageList(SubtitleItemQuery query,
top.continew.admin.business.model.query.SubtitleItemPageQuery pageQuery);
/**
* 批量添加字幕项
*
* @param reqList 字幕项请求列表
* @return 成功添加的数量
*/
Integer batchAdd(List<SubtitleItemReq> reqList);
// 可根据需要添加额外的业务方法
}

View File

@ -16,6 +16,8 @@ import top.continew.admin.business.service.SubtitleItemService;
import top.continew.starter.extension.crud.model.resp.PageResp;
import top.continew.starter.extension.crud.service.impl.BaseServiceImpl;
import java.util.List;
/**
* 数字人-字幕项服务实现类
*
@ -79,4 +81,22 @@ public class SubtitleItemServiceImpl extends BaseServiceImpl<SubtitleItemMapper,
BeanUtils.copyProperties(subtitleItem, resp);
return resp;
}
@Override
public Integer batchAdd(List<SubtitleItemReq> reqList) {
if (reqList == null || reqList.isEmpty()) {
return 0;
}
// 转换为实体列表
List<SubtitleItem> subtitleItems = reqList.stream().map(req -> {
SubtitleItem subtitleItem = new SubtitleItem();
BeanUtils.copyProperties(req, subtitleItem);
subtitleItem.setCreateTime(java.time.LocalDateTime.now());
subtitleItem.setUpdateTime(java.time.LocalDateTime.now());
return subtitleItem;
}).collect(java.util.stream.Collectors.toList());
// 批量插入
saveBatch(subtitleItems);
return subtitleItems.size();
}
}

View File

@ -81,4 +81,11 @@ public class SubtitleItemController extends BaseController<SubtitleItemService,
List<Long> idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
baseService.delete(idList);
}
@Log
@Operation(summary = "批量添加字幕项", description = "批量添加字幕项")
@PostMapping("/batchAdd")
public Integer batchAddSubtitleItem(@RequestBody List<SubtitleItemReq> reqList) {
return baseService.batchAdd(reqList);
}
}