xgb 1 неделя назад
Родитель
Сommit
b553c5479b

+ 5 - 20
fs-admin/src/main/java/com/fs/admin/controller/audit/AdminLiveVideoController.java

@@ -1,43 +1,28 @@
 package com.fs.admin.controller.audit;
 
-import java.util.*;
+import java.util.List;
+import java.util.Map;
 
-import com.fs.admin.helper.AdminCrossTenantHelper;
+import com.fs.admin.service.IAdminLiveVideoService;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-/**
- * 总后台直播视频审计控制器
- * 遍历所有租户库查询 live_video_record 数据
- */
 @RestController
 @RequestMapping("/admin/liveVideo")
 public class AdminLiveVideoController extends BaseController {
 
     @Autowired
-    private AdminCrossTenantHelper crossTenantHelper;
+    private IAdminLiveVideoService adminLiveVideoService;
 
-    /**
-     * 查询所有租户的直播视频列表
-     */
     @PreAuthorize("@ss.hasPermi('admin:liveVideo:list')")
     @GetMapping("/list")
     public TableDataInfo list(@RequestParam(required = false) Long companyId,
                               @RequestParam(required = false) String companyName,
                               @RequestParam(required = false) String videoTitle) {
-        String sql = "SELECT id, title, live_id as liveId, play_url as playUrl, " +
-                "duration, status, create_time as createTime " +
-                "FROM live_video_record WHERE 1=1";
-        StringBuilder sb = new StringBuilder(sql);
-        if (videoTitle != null && !videoTitle.isEmpty()) {
-            sb.append(" AND title LIKE '%").append(videoTitle.replace("'", "''")).append("%'");
-        }
-        sb.append(" ORDER BY create_time DESC");
-
-        List<Map<String, Object>> allList = crossTenantHelper.queryAcrossTenants(companyId, companyName, sb.toString());
+        List<Map<String, Object>> allList = adminLiveVideoService.selectLiveVideoList(companyId, companyName, videoTitle);
         return getDataTable(allList);
     }
 }

+ 11 - 0
fs-service/src/main/java/com/fs/admin/mapper/AdminLiveVideoMapper.java

@@ -0,0 +1,11 @@
+package com.fs.admin.mapper;
+
+import com.fs.admin.vo.AdminLiveVideoVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AdminLiveVideoMapper {
+
+    List<AdminLiveVideoVO> selectLiveVideoList(@Param("videoTitle") String videoTitle);
+}

+ 9 - 0
fs-service/src/main/java/com/fs/admin/service/IAdminLiveVideoService.java

@@ -0,0 +1,9 @@
+package com.fs.admin.service;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IAdminLiveVideoService {
+
+    List<Map<String, Object>> selectLiveVideoList(Long companyId, String companyName, String videoTitle);
+}

+ 39 - 0
fs-service/src/main/java/com/fs/admin/service/impl/AdminLiveVideoServiceImpl.java

@@ -0,0 +1,39 @@
+package com.fs.admin.service.impl;
+
+import com.fs.admin.mapper.AdminLiveVideoMapper;
+import com.fs.admin.service.IAdminLiveVideoService;
+import com.fs.admin.vo.AdminLiveVideoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class AdminLiveVideoServiceImpl implements IAdminLiveVideoService {
+
+    @Autowired
+    private AdminLiveVideoMapper adminLiveVideoMapper;
+
+    @Override
+    public List<Map<String, Object>> selectLiveVideoList(Long companyId, String companyName, String videoTitle) {
+        List<AdminLiveVideoVO> voList = adminLiveVideoMapper.selectLiveVideoList(videoTitle);
+        return voList.stream().map(vo -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("videoId", vo.getVideoId());
+            map.put("liveId", vo.getLiveId());
+            map.put("videoUrl", vo.getVideoUrl());
+            map.put("videoType", vo.getVideoType());
+            map.put("duration", vo.getDuration());
+            map.put("createTime", vo.getCreateTime());
+            map.put("sort", vo.getSort());
+            map.put("fileSize", vo.getFileSize());
+            map.put("finishStatus", vo.getFinishStatus());
+            map.put("remark", vo.getRemark());
+            map.put("companyName", vo.getCompanyName());
+            map.put("tenantCode", vo.getTenantCode());
+            return map;
+        }).collect(java.util.stream.Collectors.toList());
+    }
+}

+ 21 - 0
fs-service/src/main/java/com/fs/admin/vo/AdminLiveVideoVO.java

@@ -0,0 +1,21 @@
+package com.fs.admin.vo;
+
+import lombok.Data;
+
+@Data
+public class AdminLiveVideoVO {
+
+    private Long videoId;
+    private Long liveId;
+    private String videoUrl;
+    private Integer videoType;
+    private Integer duration;
+    private String createTime;
+    private Integer sort;
+    private Integer fileSize;
+    private Integer finishStatus;
+    private String remark;
+
+    private String companyName;
+    private String tenantCode;
+}

+ 37 - 0
fs-service/src/main/resources/mapper/admin/AdminLiveVideoMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.admin.mapper.AdminLiveVideoMapper">
+
+    <resultMap type="com.fs.admin.vo.AdminLiveVideoVO" id="AdminLiveVideoVOResult">
+        <id     property="videoId"       column="video_id"       />
+        <result property="liveId"        column="live_id"        />
+        <result property="videoUrl"      column="video_url"      />
+        <result property="videoType"     column="video_type"     />
+        <result property="duration"      column="duration"       />
+        <result property="createTime"    column="create_time"    />
+        <result property="sort"          column="sort"           />
+        <result property="fileSize"      column="file_size"      />
+        <result property="finishStatus"  column="finish_status"  />
+        <result property="remark"        column="remark"         />
+    </resultMap>
+
+    <sql id="selectAdminLiveVideoVo">
+        SELECT v.video_id, v.live_id, v.video_url, v.video_type,
+               v.duration, v.create_time, v.sort, v.file_size,
+               v.finish_status, v.remark
+        FROM live_video v
+    </sql>
+
+    <select id="selectLiveVideoList" resultMap="AdminLiveVideoVOResult">
+        <include refid="selectAdminLiveVideoVo"/>
+        <where>
+            <if test="videoTitle != null and videoTitle != ''">
+                AND v.remark LIKE CONCAT('%', #{videoTitle}, '%')
+            </if>
+        </where>
+        ORDER BY v.create_time DESC
+    </select>
+
+</mapper>