瀏覽代碼

视频资源修复

xgb 1 周之前
父節點
當前提交
aa2ccba9bf

+ 9 - 6
fs-admin-saas/src/main/java/com/fs/admin/controller/AdminVideoResourceController.java

@@ -30,16 +30,19 @@ public class AdminVideoResourceController extends BaseController {
     public TableDataInfo list(@RequestParam(required = false) Long companyId,
                               @RequestParam(required = false) String companyName,
                               @RequestParam(required = false) String videoName) {
-        String sql = "SELECT id, title as videoName, video_type as videoType, " +
-                "play_url as playUrl, duration, status, create_time as createTime " +
+        String sql = "SELECT video_id AS id, title AS videoName, upload_type AS videoType, " +
+                "video_url AS playUrl, duration, status, create_time AS createTime " +
                 "FROM fs_user_course_video WHERE 1=1";
-        StringBuilder sb = new StringBuilder(sql);
+        StringBuilder sqlBuilder = new StringBuilder(sql);
+        List<Object> params = new ArrayList<>();
         if (videoName != null && !videoName.isEmpty()) {
-            sb.append(" AND title LIKE '%").append(videoName.replace("'", "''")).append("%'");
+            sqlBuilder.append(" AND title LIKE ?");
+            params.add("%" + videoName + "%");
         }
-        sb.append(" ORDER BY create_time DESC");
+        sqlBuilder.append(" ORDER BY create_time DESC");
 
-        List<Map<String, Object>> allList = crossTenantHelper.queryAcrossTenants(companyId, companyName, sb.toString());
+        List<Map<String, Object>> allList = crossTenantHelper.queryAcrossTenants(
+                companyId, companyName, sqlBuilder.toString(), params.toArray());
         return getDataTable(allList);
     }
 }

+ 6 - 14
fs-admin/src/main/java/com/fs/admin/controller/AdminVideoResourceController.java

@@ -1,24 +1,25 @@
 package com.fs.admin.controller;
 
-import java.util.*;
+import java.util.List;
 
+import com.fs.admin.service.IAdminVideoResourceService;
+import com.fs.admin.vo.AdminVideoResourceVO;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.page.TableDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 /**
  * 总后台视频资源审计控制器
- * 通过拦截器切库后直接查询当前租户 fs_user_course_video 数据
+ * 通过拦截器切库后查询当前租户 fs_user_course_video 数据
  */
 @RestController
 @RequestMapping("/admin/videoResource")
 public class AdminVideoResourceController extends BaseController {
 
     @Autowired
-    private JdbcTemplate jdbcTemplate;
+    private IAdminVideoResourceService adminVideoResourceService;
 
     /**
      * 查询指定租户的视频资源列表(由 AdminTenantDataSourceInterceptor 切库)
@@ -27,16 +28,7 @@ public class AdminVideoResourceController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo list(@RequestParam(required = false) Long tenantId,
                               @RequestParam(required = false) String videoName) {
-        String sql = "SELECT id, title as videoName, video_type as videoType, " +
-                "play_url as playUrl, duration, status, create_time as createTime " +
-                "FROM fs_user_course_video WHERE 1=1";
-        StringBuilder sb = new StringBuilder(sql);
-        if (videoName != null && !videoName.isEmpty()) {
-            sb.append(" AND title LIKE '%").append(videoName.replace("'", "''")).append("%'");
-        }
-        sb.append(" ORDER BY create_time DESC");
-
-        List<Map<String, Object>> list = jdbcTemplate.queryForList(sb.toString());
+        List<AdminVideoResourceVO> list = adminVideoResourceService.selectVideoResourceList(videoName);
         return getDataTable(list);
     }
 }

+ 13 - 0
fs-service/src/main/java/com/fs/admin/mapper/AdminVideoResourceMapper.java

@@ -0,0 +1,13 @@
+package com.fs.admin.mapper;
+
+import com.fs.admin.vo.AdminVideoResourceVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AdminVideoResourceMapper {
+
+    List<AdminVideoResourceVO> selectVideoResourceList(@Param("videoName") String videoName);
+
+    Long selectVideoResourceCount(@Param("videoName") String videoName);
+}

+ 10 - 0
fs-service/src/main/java/com/fs/admin/service/IAdminVideoResourceService.java

@@ -0,0 +1,10 @@
+package com.fs.admin.service;
+
+import com.fs.admin.vo.AdminVideoResourceVO;
+
+import java.util.List;
+
+public interface IAdminVideoResourceService {
+
+    List<AdminVideoResourceVO> selectVideoResourceList(String videoName);
+}

+ 21 - 0
fs-service/src/main/java/com/fs/admin/service/impl/AdminVideoResourceServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fs.admin.service.impl;
+
+import com.fs.admin.mapper.AdminVideoResourceMapper;
+import com.fs.admin.service.IAdminVideoResourceService;
+import com.fs.admin.vo.AdminVideoResourceVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class AdminVideoResourceServiceImpl implements IAdminVideoResourceService {
+
+    @Autowired
+    private AdminVideoResourceMapper adminVideoResourceMapper;
+
+    @Override
+    public List<AdminVideoResourceVO> selectVideoResourceList(String videoName) {
+        return adminVideoResourceMapper.selectVideoResourceList(videoName);
+    }
+}

+ 29 - 0
fs-service/src/main/java/com/fs/admin/vo/AdminVideoResourceVO.java

@@ -0,0 +1,29 @@
+package com.fs.admin.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class AdminVideoResourceVO {
+
+    private Long id;
+
+    private String videoName;
+
+    private String videoType;
+
+    private String playUrl;
+
+    private Long duration;
+
+    private Long status;
+
+    private LocalDateTime createTime;
+
+    private Long companyId;
+
+    private String companyName;
+
+    private String tenantCode;
+}

+ 43 - 0
fs-service/src/main/resources/mapper/admin/AdminVideoResourceMapper.xml

@@ -0,0 +1,43 @@
+<?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.AdminVideoResourceMapper">
+
+    <resultMap type="com.fs.admin.vo.AdminVideoResourceVO" id="AdminVideoResourceVOResult">
+        <id     property="id"          column="video_id"      />
+        <result property="videoName"   column="video_name"    />
+        <result property="videoType"   column="video_type"    />
+        <result property="playUrl"     column="play_url"      />
+        <result property="duration"    column="duration"      />
+        <result property="status"      column="status"        />
+        <result property="createTime"  column="create_time"   />
+    </resultMap>
+
+    <sql id="selectAdminVideoResourceVo">
+        SELECT v.video_id, v.title AS video_name, v.upload_type AS video_type,
+               v.video_url AS play_url, v.duration, v.status, v.create_time
+        FROM fs_user_course_video v
+    </sql>
+
+    <select id="selectVideoResourceList" resultMap="AdminVideoResourceVOResult">
+        <include refid="selectAdminVideoResourceVo"/>
+        <where>
+            <if test="videoName != null and videoName != ''">
+                AND v.title LIKE CONCAT('%', #{videoName}, '%')
+            </if>
+        </where>
+        ORDER BY v.create_time DESC
+    </select>
+
+    <select id="selectVideoResourceCount" resultType="java.lang.Long">
+        SELECT COUNT(1)
+        FROM fs_user_course_video v
+        <where>
+            <if test="videoName != null and videoName != ''">
+                AND v.title LIKE CONCAT('%', #{videoName}, '%')
+            </if>
+        </where>
+    </select>
+
+</mapper>