Просмотр исходного кода

视频批量上传和原视频修改

yuhongqi 1 неделя назад
Родитель
Сommit
bfaaa5a9b6

+ 48 - 0
fs-admin/src/main/java/com/fs/live/controller/LiveVideoController.java

@@ -150,4 +150,52 @@ public class LiveVideoController extends BaseController
         int result = liveVideoService.batchUpdateCategory(videoIds, category);
         return toAjax(result);
     }
+
+    /**
+     * 更新视频URL并重置转码状态
+     */
+    @Log(title = "更新视频URL", businessType = BusinessType.UPDATE)
+    @PutMapping("/updateVideoUrl")
+    public AjaxResult updateVideoUrl(@RequestBody Map<String, Object> params)
+    {
+        Object videoIdObj = params.get("videoId");
+        Object videoUrlObj = params.get("videoUrl");
+
+        if (videoIdObj == null) {
+            return AjaxResult.error("视频编号不能为空");
+        }
+        if (videoUrlObj == null || videoUrlObj.toString().trim().isEmpty()) {
+            return AjaxResult.error("视频URL不能为空");
+        }
+
+        Long videoId;
+        if (videoIdObj instanceof Number) {
+            videoId = ((Number) videoIdObj).longValue();
+        } else {
+            try {
+                videoId = Long.parseLong(videoIdObj.toString());
+            } catch (NumberFormatException e) {
+                return AjaxResult.error("视频编号格式错误");
+            }
+        }
+
+        String videoUrl = videoUrlObj.toString().trim();
+
+        int result = liveVideoService.updateVideoUrl(videoId, videoUrl);
+        return toAjax(result);
+    }
+
+    /**
+     * 批量新增直播视频
+     */
+    @Log(title = "批量新增直播视频", businessType = BusinessType.INSERT)
+    @PostMapping("/batchAdd")
+    public AjaxResult batchAdd(@RequestBody List<LiveVideo> liveVideoList)
+    {
+        if (liveVideoList == null || liveVideoList.isEmpty()) {
+            return AjaxResult.error("视频列表不能为空");
+        }
+        int result = liveVideoService.batchInsertLiveVideo(liveVideoList);
+        return toAjax(result);
+    }
 }

+ 17 - 0
fs-service-system/src/main/java/com/fs/live/service/ILiveVideoService.java

@@ -95,4 +95,21 @@ public interface ILiveVideoService
      * @return 结果
      */
     int batchUpdateCategory(Long[] videoIds, String category);
+
+    /**
+     * 更新视频URL并重置转码状态
+     *
+     * @param videoId 视频ID
+     * @param videoUrl 新视频URL
+     * @return 结果
+     */
+    int updateVideoUrl(Long videoId, String videoUrl);
+
+    /**
+     * 批量新增直播视频
+     *
+     * @param liveVideoList 直播视频列表
+     * @return 结果
+     */
+    int batchInsertLiveVideo(List<LiveVideo> liveVideoList);
 }

+ 41 - 0
fs-service-system/src/main/java/com/fs/live/service/impl/LiveVideoServiceImpl.java

@@ -195,4 +195,45 @@ public class LiveVideoServiceImpl implements ILiveVideoService
         return liveVideoMapper.batchUpdateCategory(videoIds, category);
     }
 
+    /**
+     * 更新视频URL并重置转码状态
+     *
+     * @param videoId 视频ID
+     * @param videoUrl 新视频URL
+     * @return 结果
+     */
+    @Override
+    public int updateVideoUrl(Long videoId, String videoUrl) {
+        LiveVideo liveVideo = liveVideoMapper.selectLiveVideoByVideoId(videoId);
+        if (liveVideo == null) {
+            return 0;
+        }
+        liveVideo.setVideoUrl(videoUrl);
+        liveVideo.setFinishStatus(0); // 重置转码状态为0(转码中)
+        liveVideo.setUpdateTime(DateUtils.getNowDate());
+        return liveVideoMapper.updateLiveVideo(liveVideo);
+    }
+
+    /**
+     * 批量新增直播视频
+     *
+     * @param liveVideoList 直播视频列表
+     * @return 结果
+     */
+    @Override
+    public int batchInsertLiveVideo(List<LiveVideo> liveVideoList) {
+        if (liveVideoList == null || liveVideoList.isEmpty()) {
+            return 0;
+        }
+        Date nowDate = DateUtils.getNowDate();
+        int count = 0;
+        for (LiveVideo liveVideo : liveVideoList) {
+            liveVideo.setFinishStatus(0);
+            liveVideo.setLiveId(-1L); // 视频库
+            liveVideo.setCreateTime(nowDate);
+            count += liveVideoMapper.insertLiveVideo(liveVideo);
+        }
+        return count;
+    }
+
 }