Commit d274d9b4 by kk

25517

parent ba2e76fe
...@@ -31,7 +31,7 @@ public class VideoProductServiceImpl extends ServiceImpl<VideoProductMapper, Vid ...@@ -31,7 +31,7 @@ public class VideoProductServiceImpl extends ServiceImpl<VideoProductMapper, Vid
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void setUploadStatusIsDeleted(List<SkuSiteDTO> list) { public void setUploadStatusIsDeleted(List<SkuSiteDTO> list) {
List<VideoProduct> listVideoProduct = baseMapper.getListBySkuAndSite(list); List<VideoProduct> listVideoProduct = baseMapper.getListBySkuAndSite(list, null);
List<Long> ids = listVideoProduct.stream() List<Long> ids = listVideoProduct.stream()
.filter(videoProduct -> videoProduct.getVideoIsUploadBackstage() != 5) .filter(videoProduct -> videoProduct.getVideoIsUploadBackstage() != 5)
.map(VideoProduct::getId) .map(VideoProduct::getId)
......
...@@ -22,7 +22,9 @@ ...@@ -22,7 +22,9 @@
select id, video_is_upload_backstage select id, video_is_upload_backstage
from video_product from video_product
where is_delete = 0 where is_delete = 0
and optimize_type = #{optimizeType} <if test="optimizeType != null">
and optimize_type = #{optimizeType}
</if>
and (sku, site) in and (sku, site) in
<foreach collection="list" item="item" open="(" separator="," close=")"> <foreach collection="list" item="item" open="(" separator="," close=")">
(#{item.sku}, #{item.site}) (#{item.sku}, #{item.site})
......
package cn.kk.spring_simple_operation; package cn.kk.spring_simple_operation;
import cn.kk.spring_simple_operation.entity.PhotoProgress;
import cn.kk.spring_simple_operation.entity.VideoProduct; import cn.kk.spring_simple_operation.entity.VideoProduct;
import cn.kk.spring_simple_operation.entity.VisualDesignLog; import cn.kk.spring_simple_operation.entity.VisualDesignLog;
import cn.kk.spring_simple_operation.mapper.PhotoProgressMapper;
import cn.kk.spring_simple_operation.mapper.VideoProductMapper; import cn.kk.spring_simple_operation.mapper.VideoProductMapper;
import cn.kk.spring_simple_operation.model.dto.FineVideoUploadedNoVideoDTO; import cn.kk.spring_simple_operation.model.dto.FineVideoUploadedNoVideoDTO;
import cn.kk.spring_simple_operation.model.dto.SimpleVideoUploadedDTO; import cn.kk.spring_simple_operation.model.dto.SimpleVideoUploadedDTO;
...@@ -46,6 +48,9 @@ public class InfringementCheckDataTest { ...@@ -46,6 +48,9 @@ public class InfringementCheckDataTest {
@Resource @Resource
private VideoProductMapper videoProductMapper; private VideoProductMapper videoProductMapper;
@Resource
private PhotoProgressMapper photoProgressMapper;
@Test @Test
public void readAllSheets() throws Exception { public void readAllSheets() throws Exception {
List<FineVideoUploadedNoVideoDTO> fineVideoList; List<FineVideoUploadedNoVideoDTO> fineVideoList;
...@@ -134,6 +139,80 @@ public class InfringementCheckDataTest { ...@@ -134,6 +139,80 @@ public class InfringementCheckDataTest {
} }
/** /**
* 简易视频(photo_progress表)已上传但后台无视频,将simple_video_upload_status设为5(已删除),
* 数据库只读,改为生成update+日志insert的sql文件。
*/
@Test
public void generateSimpleVideoUploadStatusDeletedSql() throws Exception {
List<SimpleVideoUploadedDTO> simpleVideoList;
try (InputStream is = Files.newInputStream(INPUT_PATH)) {
simpleVideoList = new ExcelUtil<>(SimpleVideoUploadedDTO.class)
.importExcel("简易视频系统为已上传数据", is);
}
List<String> skuList = simpleVideoList.stream()
.map(SimpleVideoUploadedDTO::getSku)
.filter(sku -> !StringUtils.isEmpty(sku))
.distinct()
.collect(Collectors.toList());
int currentTime = DateUtils.getCurrentTimeSecond();
List<String> sqlList = buildPhotoProgressUpdateSqlList(skuList,
"需求:25517,简易视频系统已上传但后台无视频,设置简易视频上传状态为已删除",
currentTime);
Path outputPath = Paths.get("photo_progress_simple_video_deleted.sql");
try (BufferedWriter writer = Files.newBufferedWriter(outputPath)) {
for (String sql : sqlList) {
writer.write(sql);
writer.write("\n");
}
}
log.info("共生成 {} 条sql, 输出文件: {}", sqlList.size(), outputPath.toAbsolutePath());
}
/**
* 按sku分批查询photo_progress中对应的记录,对simple_video_upload_status != 5 的记录
* 生成update sql,并配套生成一条visual_design_log的insert sql。
*/
private List<String> buildPhotoProgressUpdateSqlList(List<String> skuList, String operationContent, int currentTime) {
List<String> sqlList = new ArrayList<>();
if (CollectionUtils.isEmpty(skuList)) {
return sqlList;
}
Lists.partition(skuList, 500).forEach(partition -> {
List<PhotoProgress> products = photoProgressMapper.getListBySku(partition);
for (PhotoProgress photoProgress : products) {
if (Objects.equals(photoProgress.getSimpleVideoUploadStatus(), 5)) {
continue;
}
PhotoProgress update = new PhotoProgress();
update.setId(photoProgress.getId());
update.setSimpleVideoUploadStatus(5);
VisualDesignLog designLog = new VisualDesignLog();
designLog.setOperationKey("photo_progress")
.setCreateId(0)
.setCreateTime(currentTime)
.setCreateName("系统")
.setOperationContent(operationContent)
.setRelationId(update.getId())
.setFileUrl("")
.setOperationType("job");
sqlList.add(SqlGenerator.generateUpdateSql(update));
sqlList.add(SqlGenerator.generateInsertSql(designLog));
}
});
return sqlList;
}
/**
* 按(sku,site)分批查询video_product中对应的记录((sku,site) in (...)), * 按(sku,site)分批查询video_product中对应的记录((sku,site) in (...)),
* 对video_is_upload_backstage != 5 的记录生成update sql,并配套生成一条visual_design_log的insert sql。 * 对video_is_upload_backstage != 5 的记录生成update sql,并配套生成一条visual_design_log的insert sql。
*/ */
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment