From baa730b5518b5f73c14d0af5868641299b3fe2e4 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 12 六月 2025 19:56:36 +0800
Subject: [PATCH] 视频图片处理

---
 framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java |   48 +++++++++++++++++++++++++++++-------------------
 1 files changed, 29 insertions(+), 19 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 fd8bf5d..74b939e 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
@@ -6,16 +6,14 @@
 import cn.lili.modules.lmk.domain.query.AuthorVideoQuery;
 import cn.lili.modules.lmk.domain.query.ManagerVideoQuery;
 import cn.lili.modules.lmk.domain.vo.*;
-import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum;
-import cn.lili.modules.lmk.enums.general.VideoStatusEnum;
-import cn.lili.modules.lmk.enums.general.VideoSupportOpEnum;
-import cn.lili.modules.lmk.enums.general.ViewTypeEnum;
+import cn.lili.modules.lmk.enums.general.*;
 import cn.lili.modules.lmk.service.*;
 import cn.lili.modules.member.entity.dos.FootPrint;
 import cn.lili.modules.member.entity.dos.Member;
 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;
@@ -65,8 +63,8 @@
      * @return
      */
     @Override
-    public Result add(VideoForm form) {
-        Video entity = VideoForm.getEntityByForm(form, null);
+    public Result add(WxVideoForm form) {
+        Video entity = WxVideoForm.getEntityByForm(form, null);
         baseMapper.insert(entity);
         return Result.ok("娣诲姞鎴愬姛");
     }
@@ -77,7 +75,7 @@
      * @return
      */
     @Override
-    public Result update(VideoForm form) {
+    public Result update(WxVideoForm form) {
         Video entity = baseMapper.selectById(form.getId());
 
         // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
@@ -132,7 +130,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);
     }
 
@@ -151,12 +153,16 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Result publish(VideoForm form) {
+    public Result publish(WxVideoForm form) {
         // 1.淇濆瓨瑙嗛
-        Video video = VideoForm.getEntityByForm(form, null);
+        Video video = WxVideoForm.getEntityByForm(form, null);
         video.setAuthorId(UserContext.getCurrentUserId());
         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 -> {
@@ -268,7 +274,7 @@
         IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class);
         switch (query.getVideoFrom()) {
             case "recommend":
-                baseMapper.recommendVideo(page);
+                baseMapper.recommendVideo(page, query);
                 break;
             case "author":
                 AuthorVideoQuery query1 = new AuthorVideoQuery();
@@ -297,8 +303,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()));
             });
@@ -359,8 +369,8 @@
         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");
+//            vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey()));
+            vo.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4");
             vo.setOptions(VideoSupportOpEnum.getVideoOpByStatus(vo.getStatus()));
         }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
@@ -372,8 +382,8 @@
         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");
+//            vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey()));
+            vo.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4");
             vo.setCollected(Boolean.TRUE);
         }
         return Result.ok().data(page.getRecords()).total(page.getTotal());
@@ -401,8 +411,8 @@
             return Result.error("瑙嗛涓嶅瓨鍦�");
         }
         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");
+//        vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey()));
+        vo.setVideoUrl("https://videos.pexels.com/video-files/13602965/13602965-hd_1920_1080_30fps.mp4");
         List<WxVideoTagForm> tags = videoTagRefService.getTagsByVideoIds(Arrays.asList(vo.getId()))
                 .stream()
                 .map(i -> {

--
Gitblit v1.8.0