From 0bcc66233bfe26a356c7ffa820f6a97a214a9b49 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 18 六月 2025 14:14:55 +0800 Subject: [PATCH] 视频接口完善 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java | 69 ++++++++++++++++++++++++++++------ 1 files changed, 57 insertions(+), 12 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 dd10506..b3cb333 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 @@ -55,6 +55,7 @@ private final MemberService memberService; private final VideoAccountService videoAccountService; private final KitchenVideoTypeRefService kitchenVideoTypeRefService; + private final VideoGoodsService videoGoodsService; /** @@ -187,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("鍙戝竷鎴愬姛锛岃棰戝鏍镐腑~"); } @@ -202,7 +216,7 @@ if (page.getTotal() > 0) { Map<String, List<SimpleVideoTagVO>> tagMap = videoTagRefService.getTagsByVideoIds( page.getRecords().stream().map(VideoVO::getId).collect(Collectors.toList()) - ).stream().collect(Collectors.groupingBy(SimpleVideoTagVO::getVideoId));; + ).stream().collect(Collectors.groupingBy(SimpleVideoTagVO::getVideoId)); // 3. 鑾峰彇瑙嗛涓存椂璁块棶鍦板潃銆佽缃棰戞爣绛� page.getRecords().forEach(v -> { v.setTagList(tagMap.get(v.getId())); @@ -300,17 +314,34 @@ List<String> subscribes = mySubscribeService.getSubscribesByUserId(UserContext.getCurrentUserId()); // 3. 鑾峰彇瑙嗛涓存椂璁块棶鍦板潃銆佽缃棰戞爣绛俱�佹垜鏄惁鏀惰棌銆佷綔鑰呮槸鍚﹀叧娉� page.getRecords().forEach(v -> { - v.setGoods(new VideoGoodsVO()); v.setTagList(tagMap.get(v.getId())); v.setCollected(CollectionUtils.isNotEmpty(collectMap.get(v.getId()))); 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"); + v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); + v.setCoverUrl(cosUtil.getPreviewUrl(v.getCoverFileKey())); } 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())); + }); + } + return Result.ok().data(page.getRecords()); + } + + @Override + public Result healthRecommendVideo(WxHealthVideoQuery query) { + IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); + //鑾峰彇澶у仴搴疯棰戝垪琛� + baseMapper.recommendHealthVideo(page,query); + if (page.getTotal() > 0) { + page.getRecords().forEach(v -> { + if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) { + v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); + v.setCoverUrl(cosUtil.getPreviewUrl(v.getCoverFileKey())); + } else if (VideoContentTypeEnum.IMG.getValue().equals(v.getVideoContentType()) && StringUtils.isNotBlank(v.getVideoImgs())) { + v.setImgs(JSON.parseArray(v.getVideoImgs(), String.class).stream().map(cosUtil::getPreviewUrl).collect(Collectors.toList())); + } }); } return Result.ok().data(page.getRecords()); @@ -368,9 +399,14 @@ query.setAuthorSelf(UserContext.getCurrentUserId().equals(query.getAuthorId())); baseMapper.getAuthorVideoPage(page, query); for (WxVideoVO vo : page.getRecords()) { - vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); -// vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); - vo.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4"); + if (VideoContentTypeEnum.VIDEO.getValue().equals(vo.getVideoContentType())) { + vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); + vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); + } 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())); + } + + vo.setOptions(VideoSupportOpEnum.getVideoOpByStatus(vo.getStatus())); } return Result.ok().data(page.getRecords()).total(page.getTotal()); @@ -381,15 +417,24 @@ IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); baseMapper.getAuthorCollectVideoPage(page, query); for (WxVideoVO vo : page.getRecords()) { - vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); -// vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); - vo.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4"); + if (VideoContentTypeEnum.VIDEO.getValue().equals(vo.getVideoContentType())) { + vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey())); + vo.setCoverUrl(cosUtil.getPreviewUrl(vo.getCoverFileKey())); + } 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())); + } vo.setCollected(Boolean.TRUE); } return Result.ok().data(page.getRecords()).total(page.getTotal()); } @Override + public Result getGoodsDetail(String videoId) { + List<VideoGoodsDetailVO> goodsList = baseMapper.getVideoGoods(videoId); + return Result.ok().data(goodsList); + } + + @Override @Transactional(rollbackFor = Exception.class) public Result homePageInfoEdit(VideoHomePageInfoForm form) { new LambdaUpdateChainWrapper<>(memberService.getBaseMapper()) -- Gitblit v1.8.0