From c13e4a322e3d58183882478703fe919a88759cb4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 15 六月 2025 19:27:58 +0800 Subject: [PATCH] 视频发布支持多个商品 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java index a9875df..4a4448c 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java @@ -13,6 +13,7 @@ import cn.lili.modules.member.service.FootprintService; import cn.lili.modules.member.service.MemberService; import cn.lili.utils.COSUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.mapper.VideoMapper; import cn.lili.base.Result; @@ -54,6 +55,7 @@ private final MySubscribeService mySubscribeService; private final MemberService memberService; private final VideoAccountService videoAccountService; + private final VideoGoodsService videoGoodsService; /** @@ -129,7 +131,11 @@ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); List<SimpleVideoTagVO> tags = videoTagRefService.getTagsByVideoIds(Arrays.asList(id)); vo.setTagList(tags); - vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); + if (VideoContentTypeEnum.VIDEO.getValue().equals(vo.getVideoContentType())) { + vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); + } else if (VideoContentTypeEnum.IMG.getValue().equals(vo.getVideoContentType()) && StringUtils.isNotBlank(vo.getVideoImgs())) { + vo.setImgs(JSON.parseArray(vo.getVideoImgs(), String.class).stream().map(fileKey -> cosUtil.getPreviewUrl(fileKey)).collect(Collectors.toList())); + } return Result.ok().data(vo); } @@ -155,6 +161,9 @@ video.setStatus(VideoStatusEnum.AUDITING.getValue()); video.setCoverUrl(form.getCover()); video.setVideoType(VideoTypeEnum.VIDEO.getValue()); + if (VideoContentTypeEnum.IMG.getValue().equals(form.getVideoContentType())) { + video.setVideoImgs(JSON.toJSONString(form.getVideoImgs())); + } baseMapper.insert(video); // 2.澶勭悊鏍囩 List<VideoTagRef> videoTagRefs = form.getTags().stream().map(tag -> { @@ -179,8 +188,21 @@ return videoTagRef; }).collect(Collectors.toList()); videoTagRefService.saveBatch(videoTagRefs); - // 3.淇濆瓨瑙嗛鏂囦欢淇℃伅 + // 3. 淇濆瓨瑙嗛鏂囦欢淇℃伅 lmkFileService.addByForm(form.getFileInfo()); + // 4. 澶勭悊閫夋嫨鐨勫晢鍝� + if (CollectionUtils.isNotEmpty(form.getGoodsList())) { + List<VideoGoods> videoGoods = new ArrayList<>(2); + for (int i = 0; i < form.getGoodsList().size(); i++) { + VideoGoods e = new VideoGoods(); + e.setVideoId(video.getId()); + e.setGoodsId(form.getGoodsList().get(i).getGoodsId()); + e.setGoodsNum(form.getGoodsList().get(i).getGoodsNum()); + e.setOrderNum(i); + videoGoods.add(e); + } + videoGoodsService.saveBatch(videoGoods); + } return Result.ok("鍙戝竷鎴愬姛锛岃棰戝鏍镐腑~"); } @@ -295,8 +317,12 @@ v.setGoods(new VideoGoodsVO()); v.setTagList(tagMap.get(v.getId())); v.setCollected(CollectionUtils.isNotEmpty(collectMap.get(v.getId()))); -// v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); - v.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4"); + if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) { + // v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); + v.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4"); + } else if (VideoContentTypeEnum.IMG.getValue().equals(v.getVideoContentType()) && StringUtils.isNotBlank(v.getVideoImgs())) { + v.setImgs(JSON.parseArray(v.getVideoImgs(), String.class).stream().map(fileKey -> cosUtil.getPreviewUrl(fileKey)).collect(Collectors.toList())); + } v.setCoverUrl(cosUtil.getPreviewUrl(v.getCoverFileKey())); v.setSubscribeThisAuthor(subscribes.contains(v.getAuthorId())); }); -- Gitblit v1.8.0