视频功能

This commit is contained in:
xiezhijun 2021-04-29 13:10:51 +08:00
parent 0f21d54c5e
commit be67dc5890
8 changed files with 564 additions and 18 deletions

View File

@ -0,0 +1,103 @@
package com.stdiet.web.controller.custom;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.stdiet.common.annotation.Log;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.custom.domain.SysNutritionalVideo;
import com.stdiet.custom.service.ISysNutritionalVideoService;
import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.common.core.page.TableDataInfo;
/**
* 营养视频Controller
*
* @author xzj
* @date 2021-04-29
*/
@RestController
@RequestMapping("/custom/nutritionalVideo")
public class SysNutritionalVideoController extends BaseController
{
@Autowired
private ISysNutritionalVideoService sysNutritionalVideoService;
/**
* 查询营养视频列表
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:list')")
@GetMapping("/list")
public TableDataInfo list(SysNutritionalVideo sysNutritionalVideo)
{
startPage();
List<SysNutritionalVideo> list = sysNutritionalVideoService.selectSysNutritionalVideoList(sysNutritionalVideo);
return getDataTable(list);
}
/**
* 导出营养视频列表
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:export')")
@Log(title = "营养视频", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(SysNutritionalVideo sysNutritionalVideo)
{
List<SysNutritionalVideo> list = sysNutritionalVideoService.selectSysNutritionalVideoList(sysNutritionalVideo);
ExcelUtil<SysNutritionalVideo> util = new ExcelUtil<SysNutritionalVideo>(SysNutritionalVideo.class);
return util.exportExcel(list, "nutritionalVideo");
}
/**
* 获取营养视频详细信息
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(sysNutritionalVideoService.selectSysNutritionalVideoById(id));
}
/**
* 新增营养视频
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:add')")
@Log(title = "营养视频", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SysNutritionalVideo sysNutritionalVideo)
{
return toAjax(sysNutritionalVideoService.insertSysNutritionalVideo(sysNutritionalVideo));
}
/**
* 修改营养视频
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:edit')")
@Log(title = "营养视频", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SysNutritionalVideo sysNutritionalVideo)
{
return toAjax(sysNutritionalVideoService.updateSysNutritionalVideo(sysNutritionalVideo));
}
/**
* 删除营养视频
*/
@PreAuthorize("@ss.hasPermi('custom:nutritionalVideo:remove')")
@Log(title = "营养视频", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(sysNutritionalVideoService.deleteSysNutritionalVideoByIds(ids));
}
}

View File

@ -64,6 +64,9 @@ public class WechatAppletController extends BaseController {
@Autowired
private ISysCustomerService sysCustomerService;
@Autowired
private ISysNutritionalVideoService sysNutritionalVideoService;
/**
* 查询微信小程序中展示的客户案例
*/
@ -363,12 +366,13 @@ public class WechatAppletController extends BaseController {
* 更新用户通知消息已读状态
*/
@GetMapping(value = "/getVideoList")
public AjaxResult getVideoList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
public TableDataInfo getVideoList(SysNutritionalVideo sysNutritionalVideo) {
AjaxResult result = AjaxResult.success();
int total = 0;
List<NutritionalVideoResponse> nutritionalVideoList = new ArrayList<>();
startPage();
//int total = 0;
//List<NutritionalVideoResponse> nutritionalVideoList = new ArrayList<>();
try{
GetVideoListResponseBody videoListResponseBody = AliyunVideoUtils.getVideoListByPage(null, "Normal", pageNum, pageSize);
/**GetVideoListResponseBody videoListResponseBody = AliyunVideoUtils.getVideoListByPage(null, "Normal", 1, 10);
if(videoListResponseBody != null){
total = videoListResponseBody.total;
for (GetVideoListResponseBody.GetVideoListResponseBodyVideoListVideo video : videoListResponseBody.videoList.video) {
@ -379,14 +383,20 @@ public class WechatAppletController extends BaseController {
nutritionalVideoResponse.setDescription(video.getDescription());
nutritionalVideoResponse.setTags(video.getTags());
nutritionalVideoList.add(nutritionalVideoResponse);
System.out.println(video.getVideoId());
System.out.println(video.getCoverURL());
System.out.println(video.getTitle());
System.out.println(video.getDescription());
}
}
System.out.println();**/
sysNutritionalVideo.setShowFlag(1);
List<SysNutritionalVideo> list = sysNutritionalVideoService.selectSysNutritionalVideoList(sysNutritionalVideo);
return getDataTable(list);
}catch (Exception e){
e.printStackTrace();
}
result.put("total", total);
result.put("nutritionalVideoList", nutritionalVideoList);
return result;
return null;
}
@ -398,17 +408,18 @@ public class WechatAppletController extends BaseController {
AjaxResult result = AjaxResult.success();
NutritionalVideoResponse nutritionalVideoResponse = new NutritionalVideoResponse();
try{
GetPlayInfoResponseBody playInfoResponseBody = AliyunVideoUtils.getVideoVisitDetail(videoId);
GetVideoInfoResponseBody videoInfoResponseBody = AliyunVideoUtils.getVideoById(videoId);
List<GetPlayInfoResponseBody.GetPlayInfoResponseBodyPlayInfoListPlayInfo> playList = playInfoResponseBody.playInfoList.playInfo;
if(playList != null && playList.size() > 0){
nutritionalVideoResponse.setPlayUrl(playList.get(0).getPlayURL());
}
if(videoInfoResponseBody != null){
nutritionalVideoResponse.setDescription(videoInfoResponseBody.video.description);
nutritionalVideoResponse.setTags(videoInfoResponseBody.video.tags);
nutritionalVideoResponse.setTitle(videoInfoResponseBody.video.title);
nutritionalVideoResponse.setCreateTime(videoInfoResponseBody.video.creationTime);
SysNutritionalVideo sysNutritionalVideo = sysNutritionalVideoService.selectSysNutritionalVideByVideoId(videoId);
if(sysNutritionalVideo != null){
GetPlayInfoResponseBody playInfoResponseBody = AliyunVideoUtils.getVideoVisitDetail(videoId);
//GetVideoInfoResponseBody videoInfoResponseBody = AliyunVideoUtils.getVideoById(videoId);
List<GetPlayInfoResponseBody.GetPlayInfoResponseBodyPlayInfoListPlayInfo> playList = playInfoResponseBody.playInfoList.playInfo;
if(playList != null && playList.size() > 0){
nutritionalVideoResponse.setPlayUrl(playList.get(0).getPlayURL());
}
nutritionalVideoResponse.setDescription(sysNutritionalVideo.getDescription());
nutritionalVideoResponse.setTags(sysNutritionalVideo.getTags());
nutritionalVideoResponse.setTitle(sysNutritionalVideo.getTitle());
nutritionalVideoResponse.setCreateTime(DateUtils.dateTime(sysNutritionalVideo.getCreateTime()));
}
}catch (Exception e){
e.printStackTrace();

View File

@ -3,6 +3,7 @@ package com.stdiet.common.utils;
import com.aliyun.vod20170321.models.*;
import com.aliyun.teaopenapi.models.*;
import com.stdiet.common.config.AliyunOSSConfig;
import org.apache.commons.collections4.Get;
public class AliyunVideoUtils {
@ -95,6 +96,31 @@ public class AliyunVideoUtils {
return null;
}
/**
* 根据视频消息获取上传凭证
* @param cateId
* @param fileName
* @param title
* @param coverURL
* @param tags
* @param description
*/
public static CreateUploadVideoResponse createUploadVideoRequest(Long cateId, String fileName, String title, String coverURL, String tags, String description) throws Exception{
com.aliyun.vod20170321.Client client = AliyunVideoUtils.createClient();
CreateUploadVideoRequest createUploadVideoRequest = new CreateUploadVideoRequest()
.setDescription(description)
.setCoverURL(coverURL)
.setFileName(fileName)
.setTitle(title)
.setCateId(cateId)
.setTags(tags);
return client.createUploadVideo(createUploadVideoRequest);
}

View File

@ -0,0 +1,55 @@
package com.stdiet.custom.domain;
import com.stdiet.common.annotation.Excel;
import com.stdiet.common.core.domain.BaseEntity;
import lombok.Data;
/**
* 营养视频对象 sys_nutritional_video
*
* @author xzj
* @date 2021-04-29
*/
@Data
public class SysNutritionalVideo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 视频分类ID */
@Excel(name = "视频分类ID")
private Long cateId;
/** 阿里云视频ID */
@Excel(name = "阿里云视频ID")
private String videoId;
/** 视频封面URL */
@Excel(name = "视频封面URL")
private String coverUrl;
/** 视频标题 */
@Excel(name = "视频标题")
private String title;
/** 视频描述 */
@Excel(name = "视频描述")
private String description;
/** 视频大小,单位:字节 */
@Excel(name = "视频大小,单位:字节")
private Long videoSize;
/** 标签,使用 , 隔开 */
@Excel(name = "标签,使用 , 隔开")
private String tags;
/** 是否显示0不显示 1显示默认0 */
@Excel(name = "是否显示0不显示 1显示默认0")
private Integer showFlag;
/** 删除标识0未删除 1已删除默认0 */
private Integer delFlag;
}

View File

@ -0,0 +1,69 @@
package com.stdiet.custom.mapper;
import java.util.List;
import com.stdiet.custom.domain.SysNutritionalVideo;
import org.apache.ibatis.annotations.Param;
/**
* 营养视频Mapper接口
*
* @author xzj
* @date 2021-04-29
*/
public interface SysNutritionalVideoMapper
{
/**
* 查询营养视频
*
* @param id 营养视频ID
* @return 营养视频
*/
public SysNutritionalVideo selectSysNutritionalVideoById(Long id);
/**
* 查询营养视频列表
*
* @param sysNutritionalVideo 营养视频
* @return 营养视频集合
*/
public List<SysNutritionalVideo> selectSysNutritionalVideoList(SysNutritionalVideo sysNutritionalVideo);
/**
* 新增营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
public int insertSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo);
/**
* 修改营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
public int updateSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo);
/**
* 删除营养视频
*
* @param id 营养视频ID
* @return 结果
*/
public int deleteSysNutritionalVideoById(Long id);
/**
* 批量删除营养视频
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteSysNutritionalVideoByIds(Long[] ids);
/**
* 获取视频
* @param videoId
* @return
*/
public SysNutritionalVideo selectSysNutritionalVideByVideoId(@Param("videoId")String videoId);
}

View File

@ -0,0 +1,68 @@
package com.stdiet.custom.service;
import java.util.List;
import com.stdiet.custom.domain.SysNutritionalVideo;
/**
* 营养视频Service接口
*
* @author xzj
* @date 2021-04-29
*/
public interface ISysNutritionalVideoService
{
/**
* 查询营养视频
*
* @param id 营养视频ID
* @return 营养视频
*/
public SysNutritionalVideo selectSysNutritionalVideoById(Long id);
/**
* 查询营养视频列表
*
* @param sysNutritionalVideo 营养视频
* @return 营养视频集合
*/
public List<SysNutritionalVideo> selectSysNutritionalVideoList(SysNutritionalVideo sysNutritionalVideo);
/**
* 新增营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
public int insertSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo);
/**
* 修改营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
public int updateSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo);
/**
* 批量删除营养视频
*
* @param ids 需要删除的营养视频ID
* @return 结果
*/
public int deleteSysNutritionalVideoByIds(Long[] ids);
/**
* 删除营养视频信息
*
* @param id 营养视频ID
* @return 结果
*/
public int deleteSysNutritionalVideoById(Long id);
/**
* 获取视频
* @param videoId
* @return
*/
public SysNutritionalVideo selectSysNutritionalVideByVideoId(String videoId);
}

View File

@ -0,0 +1,105 @@
package com.stdiet.custom.service.impl;
import java.util.List;
import com.stdiet.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.stdiet.custom.mapper.SysNutritionalVideoMapper;
import com.stdiet.custom.domain.SysNutritionalVideo;
import com.stdiet.custom.service.ISysNutritionalVideoService;
/**
* 营养视频Service业务层处理
*
* @author xzj
* @date 2021-04-29
*/
@Service
public class SysNutritionalVideoServiceImpl implements ISysNutritionalVideoService
{
@Autowired
private SysNutritionalVideoMapper sysNutritionalVideoMapper;
/**
* 查询营养视频
*
* @param id 营养视频ID
* @return 营养视频
*/
@Override
public SysNutritionalVideo selectSysNutritionalVideoById(Long id)
{
return sysNutritionalVideoMapper.selectSysNutritionalVideoById(id);
}
/**
* 查询营养视频列表
*
* @param sysNutritionalVideo 营养视频
* @return 营养视频
*/
@Override
public List<SysNutritionalVideo> selectSysNutritionalVideoList(SysNutritionalVideo sysNutritionalVideo)
{
return sysNutritionalVideoMapper.selectSysNutritionalVideoList(sysNutritionalVideo);
}
/**
* 新增营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
@Override
public int insertSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo)
{
sysNutritionalVideo.setCreateTime(DateUtils.getNowDate());
return sysNutritionalVideoMapper.insertSysNutritionalVideo(sysNutritionalVideo);
}
/**
* 修改营养视频
*
* @param sysNutritionalVideo 营养视频
* @return 结果
*/
@Override
public int updateSysNutritionalVideo(SysNutritionalVideo sysNutritionalVideo)
{
sysNutritionalVideo.setUpdateTime(DateUtils.getNowDate());
return sysNutritionalVideoMapper.updateSysNutritionalVideo(sysNutritionalVideo);
}
/**
* 批量删除营养视频
*
* @param ids 需要删除的营养视频ID
* @return 结果
*/
@Override
public int deleteSysNutritionalVideoByIds(Long[] ids)
{
return sysNutritionalVideoMapper.deleteSysNutritionalVideoByIds(ids);
}
/**
* 删除营养视频信息
*
* @param id 营养视频ID
* @return 结果
*/
@Override
public int deleteSysNutritionalVideoById(Long id)
{
return sysNutritionalVideoMapper.deleteSysNutritionalVideoById(id);
}
/**
* 获取视频
* @param videoId
* @return
*/
public SysNutritionalVideo selectSysNutritionalVideByVideoId(String videoId){
return sysNutritionalVideoMapper.selectSysNutritionalVideByVideoId(videoId);
}
}

View File

@ -0,0 +1,109 @@
<?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.stdiet.custom.mapper.SysNutritionalVideoMapper">
<resultMap type="SysNutritionalVideo" id="SysNutritionalVideoResult">
<result property="id" column="id" />
<result property="cateId" column="cate_id" />
<result property="videoId" column="video_id" />
<result property="coverUrl" column="cover_url" />
<result property="title" column="title" />
<result property="description" column="description" />
<result property="videoSize" column="video_size" />
<result property="tags" column="tags" />
<result property="showFlag" column="show_flag" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectSysNutritionalVideoVo">
select id, cate_id, video_id, cover_url, title, description, video_size, tags, show_flag, create_time, create_by, update_time, update_by, del_flag from sys_nutritional_video
</sql>
<select id="selectSysNutritionalVideoList" parameterType="SysNutritionalVideo" resultMap="SysNutritionalVideoResult">
<include refid="selectSysNutritionalVideoVo"/> where del_flag = 0
<if test="showFlag != null">
and show_flag = #{showFlag}
</if>
</select>
<select id="selectSysNutritionalVideoById" parameterType="Long" resultMap="SysNutritionalVideoResult">
<include refid="selectSysNutritionalVideoVo"/>
where id = #{id} and del_flag = 0
</select>
<insert id="insertSysNutritionalVideo" parameterType="SysNutritionalVideo" useGeneratedKeys="true" keyProperty="id">
insert into sys_nutritional_video
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="cateId != null">cate_id,</if>
<if test="videoId != null">video_id,</if>
<if test="coverUrl != null">cover_url,</if>
<if test="title != null">title,</if>
<if test="description != null">description,</if>
<if test="videoSize != null">video_size,</if>
<if test="tags != null">tags,</if>
<if test="showFlag != null">show_flag,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="delFlag != null">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="cateId != null">#{cateId},</if>
<if test="videoId != null">#{videoId},</if>
<if test="coverUrl != null">#{coverUrl},</if>
<if test="title != null">#{title},</if>
<if test="description != null">#{description},</if>
<if test="videoSize != null">#{videoSize},</if>
<if test="tags != null">#{tags},</if>
<if test="showFlag != null">#{showFlag},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<update id="updateSysNutritionalVideo" parameterType="SysNutritionalVideo">
update sys_nutritional_video
<trim prefix="SET" suffixOverrides=",">
<if test="cateId != null">cate_id = #{cateId},</if>
<if test="videoId != null">video_id = #{videoId},</if>
<if test="coverUrl != null">cover_url = #{coverUrl},</if>
<if test="title != null">title = #{title},</if>
<if test="description != null">description = #{description},</if>
<if test="videoSize != null">video_size = #{videoSize},</if>
<if test="tags != null">tags = #{tags},</if>
<if test="showFlag != null">show_flag = #{showFlag},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
</trim>
where id = #{id}
</update>
<update id="deleteSysNutritionalVideoById" parameterType="Long">
update sys_nutritional_video set del_flag = 1 where id = #{id}
</update>
<update id="deleteSysNutritionalVideoByIds" parameterType="String">
update sys_nutritional_video set del_flag = 1 where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<select id="selectSysNutritionalVideByVideoId" parameterType="String" resultMap="SysNutritionalVideoResult">
<include refid="selectSysNutritionalVideoVo"/> where video_id = #{videoId} and del_flag = 0 limit 1
</select>
</mapper>