ソースを参照

教学视频列表接口修改

小么熊🐻 3 年 前
コミット
252fcaf811

+ 35 - 6
zzjs-admin/src/main/java/com/miaxis/app/controller/teachingVideo/AppletTeachingVideoInfoController.java

@@ -4,16 +4,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
 import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
+import com.miaxis.teachingVideo.dto.TeachingVideoInfoTypeIdDto;
 import com.miaxis.teachingVideo.service.ITeachingVideoInfoService;
 import com.miaxis.teachingVideo.service.ITeachingVideoTypeInfoService;
+import com.miaxis.teachingVideo.vo.AppletTeachingVideoTypeInfoVo;
 import com.miaxis.teachingVideo.vo.TeachingVideoInfoVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import com.miaxis.teachingVideo.vo.TeachingVideoTypeInfoVo;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 【教学视频】Controller
  * @author wwl
@@ -30,23 +36,24 @@ public class AppletTeachingVideoInfoController extends BaseController {
 
     private final ITeachingVideoTypeInfoService videoTypeInfoService;
 
-
+    /**
     @GetMapping("/typeList")
     @ApiOperation("查询教学视频一级分类列表")
     public Response typeList(){
         return Response.success(videoTypeInfoService.list(new QueryWrapper<TeachingVideoTypeInfo>().eq("pid",0).eq("status",0).orderByAsc("type_sort")));
     }
+    */
 
     /**
      * 查询教学视频列表
-     */
+
     @GetMapping("/list/{pid}")
     @ApiOperation("查询教学视频列表")
     public Response list(@ApiParam(name = "pid", value = "分类id", required = true)
                              @PathVariable("pid") String pid){
         return teachingVideoInfoService.queryTeachingVideoInfoList(pid);
     }
-
+     */
     @GetMapping(value = "/{id}")
     @ApiOperation("获取教学视频详细信息")
     public Response<TeachingVideoInfoVo> getInfo(
@@ -67,5 +74,27 @@ public class AppletTeachingVideoInfoController extends BaseController {
     }
 
 
+    /**
+     * 根据分类ID 查询教学视频
+     */
+    @GetMapping("/getTeachingVideoByTypeId")
+    @ApiOperation("根据分类ID查询教学视频")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    public Response getTeachingVideoByTypeId(@ModelAttribute TeachingVideoInfoTypeIdDto teachingVideoInfoTypeIdDto){
+        startPage();
+        return teachingVideoInfoService.getTeachingVideoByTypeId(teachingVideoInfoTypeIdDto.getVideoTypeId());
+    }
+
 
+    /**
+     * 查询教学视频分类树形列表
+     */
+    @GetMapping("/treeList")
+    @ApiOperation("查询教学视频分类树形列表")
+    public Response<List<AppletTeachingVideoTypeInfoVo>> treeList(){
+        return videoTypeInfoService.selectAppletTeachingVideoTypeInfoTreeList();
+    }
 }

+ 24 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/dto/TeachingVideoInfoTypeIdDto.java

@@ -0,0 +1,24 @@
+package com.miaxis.teachingVideo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 教学视频对象入参
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/2 14:25
+ */
+@Data
+@ApiModel(value = "TeachingVideoInfoTypeIdDto", description = "教学视频ID对象")
+public class TeachingVideoInfoTypeIdDto implements Serializable {
+
+
+    @ApiModelProperty(value = "教学视频分类id (关联teaching_video_type_info表)")
+    private Long videoTypeId;
+
+
+}

+ 9 - 1
zzjs-service/src/main/java/com/miaxis/teachingVideo/mapper/TeachingVideoInfoMapper.java

@@ -2,7 +2,7 @@ package com.miaxis.teachingVideo.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
-import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
+import com.miaxis.teachingVideo.dto.TeachingVideoInfoTypeIdDto;
 import com.miaxis.teachingVideo.vo.TeachingVideoInfoAppletVo;
 import com.miaxis.teachingVideo.vo.TeachingVideoInfoVo;
 import org.apache.ibatis.annotations.Param;
@@ -45,4 +45,12 @@ public interface TeachingVideoInfoMapper extends BaseMapper<TeachingVideoInfo> {
      * @return
      */
     List<TeachingVideoInfoAppletVo> searchTeachingVideoInfoByKeyword(@Param("keyword") String keyword);
+
+
+    /**
+     * 根据类型ID获取视频
+     * @param typeId
+     * @return
+     */
+    List<TeachingVideoInfoAppletVo> getTeachingVideoByTypeId(Long typeId);
 }

+ 7 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/mapper/TeachingVideoTypeInfoMapper.java

@@ -2,6 +2,7 @@ package com.miaxis.teachingVideo.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
+import com.miaxis.teachingVideo.vo.AppletTeachingVideoTypeInfoVo;
 import com.miaxis.teachingVideo.vo.TeachingVideoTypeInfoVo;
 
 import java.util.List;
@@ -26,4 +27,10 @@ public interface TeachingVideoTypeInfoMapper extends BaseMapper<TeachingVideoTyp
      * @return
      */
     List<TeachingVideoTypeInfoVo> selectTeachingVideoTypeInfoTreeList();
+
+    /**
+     * 查询教学视频分类树形列表
+     * @return
+     */
+    List<AppletTeachingVideoTypeInfoVo> selectAppletTeachingVideoTypeInfoTreeList();
 }

+ 9 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/ITeachingVideoInfoService.java

@@ -3,7 +3,9 @@ package com.miaxis.teachingVideo.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
+import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
 import com.miaxis.teachingVideo.dto.TeachingVideoInfoDto;
+import com.miaxis.teachingVideo.dto.TeachingVideoInfoTypeIdDto;
 import com.miaxis.teachingVideo.vo.TeachingVideoInfoVo;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -90,4 +92,11 @@ public interface ITeachingVideoInfoService extends IService<TeachingVideoInfo> {
      * @return
      */
     Response coverUp(String fileId, MultipartFile coverFile);
+
+    /**
+     * 根据类型ID搜索教学视频
+     * @param typeId
+     * @return
+     */
+    Response getTeachingVideoByTypeId(Long typeId);
 }

+ 7 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/ITeachingVideoTypeInfoService.java

@@ -3,6 +3,7 @@ package com.miaxis.teachingVideo.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
+import com.miaxis.teachingVideo.vo.AppletTeachingVideoTypeInfoVo;
 import com.miaxis.teachingVideo.vo.TeachingVideoTypeInfoVo;
 
 import java.util.List;
@@ -28,6 +29,12 @@ public interface ITeachingVideoTypeInfoService extends IService<TeachingVideoTyp
      */
     Response<List<TeachingVideoTypeInfoVo>> selectTeachingVideoTypeInfoTreeList();
 
+    /**
+     * 查询教学视频分类树形列表(小程序用)
+     * @return
+     */
+    Response<List<AppletTeachingVideoTypeInfoVo>> selectAppletTeachingVideoTypeInfoTreeList();
+
     /**
      * 删除教学视频分类(伪删除)
      * @param ids

+ 6 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/impl/TeachingVideoInfoServiceImpl.java

@@ -14,6 +14,7 @@ import com.miaxis.file.service.IFileInfoService;
 import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
 import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
 import com.miaxis.teachingVideo.dto.TeachingVideoInfoDto;
+import com.miaxis.teachingVideo.dto.TeachingVideoInfoTypeIdDto;
 import com.miaxis.teachingVideo.mapper.TeachingVideoInfoMapper;
 import com.miaxis.teachingVideo.service.ITeachingVideoInfoService;
 import com.miaxis.teachingVideo.service.ITeachingVideoTypeInfoService;
@@ -313,5 +314,10 @@ public class TeachingVideoInfoServiceImpl extends ServiceImpl<TeachingVideoInfoM
 
     }
 
+    @Override
+    public Response getTeachingVideoByTypeId(Long typeId) {
+        return Response.success(teachingVideoInfoMapper.getTeachingVideoByTypeId(typeId));
+    }
+
 
 }

+ 55 - 3
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/impl/TeachingVideoTypeInfoServiceImpl.java

@@ -1,20 +1,23 @@
 package com.miaxis.teachingVideo.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
 import com.miaxis.teachingVideo.domain.TeachingVideoTypeInfo;
+import com.miaxis.teachingVideo.dto.TeachingVideoInfoTypeIdDto;
+import com.miaxis.teachingVideo.mapper.TeachingVideoInfoMapper;
 import com.miaxis.teachingVideo.mapper.TeachingVideoTypeInfoMapper;
 import com.miaxis.teachingVideo.service.ITeachingVideoTypeInfoService;
+import com.miaxis.teachingVideo.vo.AppletTeachingVideoTypeInfoVo;
+import com.miaxis.teachingVideo.vo.TeachingVideoInfoAppletVo;
 import com.miaxis.teachingVideo.vo.TeachingVideoTypeInfoVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -28,6 +31,8 @@ import java.util.List;
 public class TeachingVideoTypeInfoServiceImpl extends ServiceImpl<TeachingVideoTypeInfoMapper, TeachingVideoTypeInfo> implements ITeachingVideoTypeInfoService {
 
     private final TeachingVideoTypeInfoMapper teachingVideoTypeInfoMapper;
+    private final TeachingVideoInfoMapper teachingVideoInfoMapper;
+
 
     /**
      * 查询教学视频分类列表
@@ -92,4 +97,51 @@ public class TeachingVideoTypeInfoServiceImpl extends ServiceImpl<TeachingVideoT
         return Response.success();
     }
 
+
+
+    /**
+     * 查询教学视频分类树形列表
+     * @return
+     */
+    @Override
+    public Response<List<AppletTeachingVideoTypeInfoVo>> selectAppletTeachingVideoTypeInfoTreeList() {
+        List<AppletTeachingVideoTypeInfoVo> list = teachingVideoTypeInfoMapper.selectAppletTeachingVideoTypeInfoTreeList();
+        for (AppletTeachingVideoTypeInfoVo productTypeInfoVo : list) {
+            if(!"0".equals(productTypeInfoVo.getPid())){
+                PageHelper.startPage(1, 4, null);
+                productTypeInfoVo.setVideos(teachingVideoInfoMapper.getTeachingVideoByTypeId(productTypeInfoVo.getId()));
+            }
+        }
+
+        return Response.success(builTree2(list));
+    }
+
+    //建立树形结构
+    public List<AppletTeachingVideoTypeInfoVo> builTree2(List<AppletTeachingVideoTypeInfoVo> productList){
+        List<AppletTeachingVideoTypeInfoVo> infoVos =new ArrayList<>();
+        //获取根节点
+        List<AppletTeachingVideoTypeInfoVo> rootMenuLists =new  ArrayList<>();
+        for(AppletTeachingVideoTypeInfoVo productType : productList) {
+            if(productType.getPid().toString().equals("0")) {
+                rootMenuLists.add(productType);
+            }
+        }
+        for(AppletTeachingVideoTypeInfoVo productTypeInfoVo : rootMenuLists) {
+            productTypeInfoVo=getTree2(productTypeInfoVo,productList);
+            infoVos.add(productTypeInfoVo);
+        }
+        return infoVos;
+    }
+    //递归,建立子树形结构
+    private AppletTeachingVideoTypeInfoVo getTree2(AppletTeachingVideoTypeInfoVo productTypeInfo,List<AppletTeachingVideoTypeInfoVo> menuList){
+        List<AppletTeachingVideoTypeInfoVo> infoVos = new ArrayList<>();
+        for (AppletTeachingVideoTypeInfoVo productTypeInfoVo : menuList) {
+            if (productTypeInfoVo.getPid().toString().equals(productTypeInfo.getId().toString())) { //当前对象为这个的子类
+                infoVos.add(getTree2(productTypeInfoVo, menuList));
+            }
+        }
+        productTypeInfo.setChildren(infoVos);
+        return productTypeInfo;
+    }
+
 }

+ 56 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/vo/AppletTeachingVideoTypeInfoVo.java

@@ -0,0 +1,56 @@
+package com.miaxis.teachingVideo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 教学视频分类对象返回参
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/1 13:47
+ */
+@Data
+@ApiModel(value = "AppletTeachingVideoTypeInfoVo", description = "教学视频分类对象+视频返回")
+public class AppletTeachingVideoTypeInfoVo {
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @TableField("type_name")
+    @ApiModelProperty(value = "类型名称")
+    private String typeName;
+
+    @TableField("pid")
+    @ApiModelProperty(value = "父节点(预留)")
+    private Long pid;
+
+    @TableField("type_describe")
+    @ApiModelProperty(value = "类型描述,该类型名称的描述")
+    private String typeDescribe;
+
+    @TableField("type_icon")
+    @ApiModelProperty(value = "类型图标--对应file_info的id")
+    private Long typeIcon;
+
+    @TableField("type_sort")
+    @ApiModelProperty(value = "排序")
+    private Integer typeSort;
+
+    @TableField("status")
+    @ApiModelProperty(value = "状态  0:有效(默认)、1:失效 (伪删除)")
+    private String status;
+
+    @ApiModelProperty(value = "子节点分类")
+    private List<AppletTeachingVideoTypeInfoVo> children;
+
+    @ApiModelProperty(value = "子节点分类")
+    private List<TeachingVideoInfoAppletVo> videos;
+
+}

+ 27 - 0
zzjs-service/src/main/resources/mapper/teachingVideo/TeachingVideoInfoMapper.xml

@@ -109,6 +109,9 @@
     </select>
 
 
+
+
+
     <select id="searchTeachingVideoInfoByKeyword" resultType="com.miaxis.teachingVideo.vo.TeachingVideoInfoAppletVo">
         select
         vi.id,
@@ -130,4 +133,28 @@
 	      AND (vi.`title` like concat('%', #{keyword}, '%') or vi.`video_describe` like concat('%', #{keyword}, '%'))
     </select>
 
+
+    <select id="getTeachingVideoByTypeId" resultType="com.miaxis.teachingVideo.vo.TeachingVideoInfoAppletVo">
+        select
+            vi.id,
+            vi.title,
+            vi.video_describe,
+            vi.video_duration,
+            vi.video_size,
+            vti.pid,
+            vi.teaching_video_type_id,
+            f1.file_url as fileUrl,
+            f2.file_url as coverFileUrl
+        from teaching_video_info vi
+                 LEFT JOIN file_info f1 on f1.file_id = vi.file_id
+                 LEFT JOIN file_info f2 on f2.file_id = vi.cover_file_id
+                 LEFT JOIN teaching_video_type_info vti ON vti.id = vi.teaching_video_type_id
+        WHERE
+            vi.teaching_video_type_id = #{videoTypeId}
+          AND vi.`shelf_status` = 0
+          AND vi.`status` = 0
+
+
+    </select>
+
 </mapper>

+ 13 - 0
zzjs-service/src/main/resources/mapper/teachingVideo/TeachingVideoTypeInfoMapper.xml

@@ -44,4 +44,17 @@
         ORDER BY type_sort
     </select>
 
+    <select id="selectAppletTeachingVideoTypeInfoTreeList" resultType="com.miaxis.teachingVideo.vo.AppletTeachingVideoTypeInfoVo">
+        select
+            ti.id,
+            ti.type_name,
+            ti.pid,
+            ti.type_describe,
+            ti.type_sort,
+            ti.status
+        from teaching_video_type_info ti
+        where ti.status = 0
+        ORDER BY type_sort
+    </select>
+
 </mapper>