From be67dc58905a9a42b81d45c673205d9d46d4c552 Mon Sep 17 00:00:00 2001
From: xiezhijun <15270898033@163.com>
Date: Thu, 29 Apr 2021 13:10:51 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../custom/SysNutritionalVideoController.java | 103 +++++++++++++++++
 .../custom/WechatAppletController.java        |  47 +++++---
 .../stdiet/common/utils/AliyunVideoUtils.java |  26 +++++
 .../custom/domain/SysNutritionalVideo.java    |  55 +++++++++
 .../mapper/SysNutritionalVideoMapper.java     |  69 +++++++++++
 .../service/ISysNutritionalVideoService.java  |  68 +++++++++++
 .../impl/SysNutritionalVideoServiceImpl.java  | 105 +++++++++++++++++
 .../custom/SysNutritionalVideoMapper.xml      | 109 ++++++++++++++++++
 8 files changed, 564 insertions(+), 18 deletions(-)
 create mode 100644 stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysNutritionalVideoController.java
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/domain/SysNutritionalVideo.java
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionalVideoMapper.java
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionalVideoService.java
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionalVideoServiceImpl.java
 create mode 100644 stdiet-custom/src/main/resources/mapper/custom/SysNutritionalVideoMapper.xml

diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysNutritionalVideoController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysNutritionalVideoController.java
new file mode 100644
index 000000000..018959480
--- /dev/null
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysNutritionalVideoController.java
@@ -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));
+    }
+}
\ No newline at end of file
diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
index 6c7df9d0f..de7fbe388 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
@@ -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();
diff --git a/stdiet-common/src/main/java/com/stdiet/common/utils/AliyunVideoUtils.java b/stdiet-common/src/main/java/com/stdiet/common/utils/AliyunVideoUtils.java
index 0133e9c05..e370a5b6e 100644
--- a/stdiet-common/src/main/java/com/stdiet/common/utils/AliyunVideoUtils.java
+++ b/stdiet-common/src/main/java/com/stdiet/common/utils/AliyunVideoUtils.java
@@ -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);
+    }
+
+
+
+
+
 
 
 
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysNutritionalVideo.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysNutritionalVideo.java
new file mode 100644
index 000000000..2bff9acb0
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysNutritionalVideo.java
@@ -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;
+}
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionalVideoMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionalVideoMapper.java
new file mode 100644
index 000000000..2594a4ef1
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionalVideoMapper.java
@@ -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);
+}
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionalVideoService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionalVideoService.java
new file mode 100644
index 000000000..7a844ceae
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionalVideoService.java
@@ -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);
+}
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionalVideoServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionalVideoServiceImpl.java
new file mode 100644
index 000000000..47ed3f8a6
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionalVideoServiceImpl.java
@@ -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);
+    }
+}
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysNutritionalVideoMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysNutritionalVideoMapper.xml
new file mode 100644
index 000000000..9561dcb9b
--- /dev/null
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysNutritionalVideoMapper.xml
@@ -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>
\ No newline at end of file