springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端

这篇具有很好参考价值的文章主要介绍了springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、管理后台

1.登录

2.登录成功,进入欢迎页

​编辑

 3.视频分类管理

4. 视频标签管理

5.视频管理 

6.评论管理

​编辑 7.用户管理

8.字典管理 (类似于后端的枚举)

 9.参数管理(富文本录入)

 10.管理员管理

 三、移动端

 1.首页

 2.视频详情

3.视频评论 

 4.我的

 5.编辑资料

6.我的关注

​编辑 

7.我的粉丝 

8.我的视频

​编辑

9.登录、注册

​编辑 

 四、关键代码实现

1.后端项目结构图,idea开发工具

2.数据库表脚本设计实现

3.视频controller层

4.后端开发文档访问

5.项目端口号配置

 6.移动端项目截图

7.管理后台前端项目截图

五、 总结


一、前言

项目包含管理后台、移动端以及后端实现,即是两个前端项目加后端实现,数据库采用mysql5.8,使用redis缓存,spring oauth2、security、token登录等。管理后台前端采用vue+element实现,移动端使用vue+vant2实现。后端使用java springboot实现。

以下是项目在线访问预览地址:

管理后台:点击访问

移动端:点击访问

element官网:点击访问

vant2官网:点击访问

二、管理后台

1.登录

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

2.登录成功,进入欢迎页

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 3.视频分类管理

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

4. 视频标签管理

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

5.视频管理 

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

6.评论管理

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 7.用户管理

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

8.字典管理 (类似于后端的枚举)

 springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 

 9.参数管理(富文本录入)

 springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 10.管理员管理

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 三、移动端

 1.首页

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 2.视频详情

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

3.视频评论 

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 4.我的

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 5.编辑资料

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

6.我的关注

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

7.我的粉丝 

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

8.我的视频

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 

9.登录、注册

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui 

 四、关键代码实现

1.后端项目结构图,idea开发工具

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

2.数据库表脚本设计实现

-- 系统管理员
CREATE TABLE `admin` (
  `id` bigint NOT NULL COMMENT '主键',
  `username` varchar(60) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '登录密码',
  `real_name` varchar(32) DEFAULT NULL COMMENT '姓名',
  `gender` tinyint(1) DEFAULT 0 COMMENT '用户性别 0保密 1男 2女',
  `avatar` varchar(300) DEFAULT NULL COMMENT '头像',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机',
  `email` varchar(60) DEFAULT NULL COMMENT '邮箱',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',
  `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
  `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
  `admin_type` tinyint(1) DEFAULT '1' COMMENT '管理员类型 0超级管理员  1普通管理员',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `admin_key_username` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统管理员';

-- 2022-10-19 用户信息
CREATE TABLE `user_info`
(
    `id` bigint NOT NULL COMMENT '主键',
    `nickname` varchar(10) NOT NULL COMMENT '用户名称',
    `phone` varchar(20) NOT NULL COMMENT '手机号',
    `password` varchar(255) NOT NULL COMMENT '登录密码 加密',
    `avatar` varchar(225) DEFAULT NULL COMMENT '头像',
    `gender`  TINYINT(1) DEFAULT 0 COMMENT '性别 0保密 1男 2女',
    `signature` varchar(225) DEFAULT NULL COMMENT '个性签名',
    `remark` varchar(225) DEFAULT NULL COMMENT '备注',
    `status`  TINYINT(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',
    `deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',
    `create_time` datetime(0) COMMENT '创建时间',
    `update_time` datetime(0) COMMENT '更新时间',
    `update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',
    `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `phone` (`phone`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='用户信息';

-- 视频分类
CREATE TABLE `video_type` (
  `id` bigint NOT NULL COMMENT '主键',
  `type_name` varchar(255) NOT NULL COMMENT '分类名称',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',
  `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
  `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频分类';

-- 商品所属分类
CREATE TABLE `video_type_item` (
  `id` bigint NOT NULL COMMENT '主键',
  `video_id` bigint NOT NULL DEFAULT 0 COMMENT '视频主键',
  `video_type_id` bigint NOT NULL DEFAULT 0 COMMENT '分类主键',
  `deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品所属分类';

-- 视频标签
CREATE TABLE `video_label` (
  `id` bigint NOT NULL COMMENT '主键',
  `label_name` varchar(255) NOT NULL COMMENT '分类名称',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',
  `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
  `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频标签';

-- 商品所属标签
CREATE TABLE `video_label_item` (
  `id` bigint NOT NULL COMMENT '主键',
  `video_id` bigint NOT NULL DEFAULT 0 COMMENT '视频主键',
  `video_label_id` bigint NOT NULL DEFAULT 0 COMMENT '标签主键',
  `deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品所属标签';

-- 视频
  CREATE TABLE `video`
(
    `id` bigint NOT NULL COMMENT '主键',
    `user_id` bigint NOT NULL COMMENT '所属用户主键',
    `video_name` varchar(500) NOT NULL COMMENT '视频名称',
    `video_des` varchar(1000) DEFAULT NULL COMMENT '视频简介',
    `cover_path` varchar(500) DEFAULT NULL COMMENT '封面图片',
    `upload_type` tinyint(1) DEFAULT 1 COMMENT '上传类型 1文件上传 2录入路径',
    `video_path` varchar(2000) DEFAULT NULL COMMENT '视频路径',
    `browse_num` int NOT NULL DEFAULT 0 COMMENT '观看数量',
    `status` tinyint(1) DEFAULT 0 COMMENT '是否上架 0否  1是',
    `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
    `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
    `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
    `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
    `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='视频';

-- 系统字典
CREATE TABLE `system_dict` (
  `id` bigint NOT NULL COMMENT '主键',
  `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父主键',
  `code` varchar(255) NOT NULL COMMENT '字典编码',
  `dict_key` int DEFAULT NULL COMMENT '字典值',
  `dict_name` varchar(255) NOT NULL COMMENT '字典名称',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',
  `remark` varchar(255) DEFAULT NULL COMMENT '字典备注',
  `status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',
  `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
  `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统字典';

-- 系统参数
CREATE TABLE `system_param` (
  `id` bigint NOT NULL COMMENT '主键',
  `code` varchar(255) NOT NULL COMMENT '参数编码,唯一',
  `title` varchar(255) NOT NULL COMMENT '标题',
  `content` longtext NOT NULL COMMENT '内容',
  `sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否  1是',
  `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_system_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',
  `update_system_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统参数';

-- 视频评论
  CREATE TABLE `video_comment`
(
    `id` bigint NOT NULL COMMENT '主键',
    `user_id` bigint NOT NULL COMMENT '用户主键',
    `video_id` bigint NOT NULL COMMENT '视频主键',
    `content` varchar(1000) DEFAULT NULL COMMENT '评论内容',
    `like_num` int NOT NULL DEFAULT 0 COMMENT '点赞数量',
    `status`  TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用 0否 1是',
    `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
    `create_time` datetime(0) COMMENT '创建时间',
    `update_time` datetime(0) COMMENT '更新时间',
    `update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',
    `update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='视频评论';

-- 视频评论点赞
  CREATE TABLE `video_comment_like`
(
    `id` bigint NOT NULL COMMENT '主键',
    `user_id` bigint NOT NULL COMMENT '用户主键',
    `comment_id` bigint NOT NULL COMMENT '评论主键',
    `deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否  1是',
    `create_time` datetime(0) COMMENT '创建时间',
    `update_time` datetime(0) COMMENT '更新时间',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `user_id_comment_id` (`user_id`,`comment_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='视频评论点赞';

-- 用户关注记录
CREATE TABLE `user_follow` (
  `id` bigint NOT NULL COMMENT '主键',
  `user_id` bigint NOT NULL COMMENT '登录用户主键',
  `be_followed_user_id` bigint NOT NULL COMMENT '被关注用户id',
  `deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否  1是',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `user_id_be_followed_user_id` (`user_id`,`be_followed_user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户关注记录';



3.视频controller层

package com.product.controller;

import com.product.entity.base.PageQuery;
import com.product.entity.base.Result;
import com.product.entity.base.ResultPage;
import com.product.entity.req.VideoReq;
import com.product.entity.vo.VideoVO;
import com.product.service.VideoService;
import com.product.util.CommonUtil;
import com.product.util.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author hjf
 * @date 2023-03-21 10:26
 * @describe 视频管理controller
 */
@Api(tags = "视频管理")
@Slf4j
@RestController
@RequestMapping("/video")
public class VideoController {

    @Resource
    private VideoService videoService;

    @PostMapping("/add")
    @ApiOperation(value = "添加", notes = "添加")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "ID", required = false, dataType = "Long", paramType = "query"),
            @ApiImplicitParam(name = "videoName", value = "视频名称", required = true, dataType = "String", paramType = "query"),
            @ApiImplicitParam(name = "userId", value = "发布用户", required = true, dataType = "Long", paramType = "query"),
            @ApiImplicitParam(name = "videoTypeIdList", value = "分类", required = true, dataType = "List<Long>", paramType = "query"),
            @ApiImplicitParam(name = "videoLabelIdList", value = "标签", required = true, dataType = "List<Long>", paramType = "query"),
            @ApiImplicitParam(name = "videoDes", value = "视频描述", required = false, dataType = "String", paramType = "query"),
            @ApiImplicitParam(name = "uploadType", value = "上传类型", required = true, dataType = "Integer", paramType = "query"),
            @ApiImplicitParam(name = "videoPath", value = "视频路径", required = false, dataType = "String", paramType = "query"),
            @ApiImplicitParam(name = "status", value = "状态", required = true, dataType = "Integer", paramType = "query"),
            @ApiImplicitParam(name = "coverFile", value = "封面图片", required = false, dataType = "MultipartFile", paramType = "query"),
            @ApiImplicitParam(name = "videoFile", value = "视频文件", required = false, dataType = "MultipartFile", paramType = "query")
    })
    public Result<?> add(
            @RequestParam(value = "id",required = false)  Long id,
            @RequestParam("videoName")  String videoName,
            @RequestParam("userId")  Long userId,
            @RequestParam("videoTypeIdList")  List<Long> videoTypeIdList,
            @RequestParam("videoLabelIdList")  List<Long> videoLabelIdList,
            @RequestParam(value = "videoDes",required = false) String videoDes,
            @RequestParam("uploadType") Integer uploadType,
            @RequestParam(value = "videoPath",required = false)  String videoPath,
            @RequestParam("status")  Integer status,
            @RequestParam(value = "coverFile",required = false) MultipartFile coverFile,
            @RequestParam(value = "videoFile",required = false) MultipartFile videoFile
    ) {
        VideoReq videoReq = new VideoReq();
        videoReq.setId(id);
        videoReq.setVideoName(videoName);
        videoReq.setUserId(userId);
        videoReq.setVideoTypeIdList(videoTypeIdList);
        videoReq.setVideoLabelIdList(videoLabelIdList);
        videoReq.setVideoDes(videoDes);
        videoReq.setUploadType(uploadType);
        videoReq.setVideoPath(videoPath);
        videoReq.setStatus(status);
        videoReq.setCoverFile(coverFile);
        videoReq.setVideoFile(videoFile);
        return videoService.add(JwtUtil.getUserId(),videoReq);
    }

    @ApiOperation("分页")
    @PostMapping("/getPage")
    public ResultPage<VideoVO> getPage(@RequestBody PageQuery pageQuery) {
        return videoService.getPage(JwtUtil.getUserId(),pageQuery);
    }

    @ApiOperation("详情")
    @GetMapping("/getDetailById")
    public Result<VideoVO> getDetail(@RequestParam("id") Long id) {
        return videoService.getDetailById(id);
    }

    @ApiOperation("更新状态")
    @PostMapping("/updateStatus")
    public Result<?> updateStatus(@RequestParam("ids") String ids, @RequestParam("status") Integer status) {
        List<Long> idList = CommonUtil.stringToLongList(ids);
        return videoService.updateStatus(JwtUtil.getUserId(),idList,status);
    }

    @ApiOperation("删除")
    @PostMapping("/del")
    public Result<?> del(@RequestParam("ids") String ids) {
        List<Long> idList = CommonUtil.stringToLongList(ids);
        return videoService.del(JwtUtil.getUserId(),idList);
    }

    @ApiOperation("更新浏览数")
    @PostMapping("/updateBrowseNum")
    public Result<?> updateBrowseNum(@RequestParam("videoId") Long videoId) {
        return videoService.updateBrowseNum(JwtUtil.getUserId(),videoId);
    }

    @ApiOperation("分页")
    @GetMapping("/getPageByVideoTypeId")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "videoTypeId", value = "视频分类ID", required = false, dataType = "Long", paramType = "query"),
            @ApiImplicitParam(name = "currentPage", value = "当前页", required = true, dataType = "Integer", paramType = "query"),
            @ApiImplicitParam(name = "pageSize", value = "当前页", required = false, dataType = "Integer", paramType = "query")
    })
    public ResultPage<VideoVO> getPageByVideoTypeId(
            @RequestParam(value = "videoTypeId",required = false) Long videoTypeId,
            @RequestParam("currentPage")  Integer currentPage,
            @RequestParam(value = "pageSize",required = false,defaultValue = "10")  Integer pageSize
    ) {
        return videoService.getPageByVideoTypeId(JwtUtil.getUserId(),videoTypeId,currentPage,pageSize);
    }

    @ApiOperation("视频详情-推荐列表")
    @GetMapping("/getRecommendListForDetail")
    @ApiImplicitParam(name = "videoId", value = "视频详情ID", required = true, dataType = "Long", paramType = "query")
    public Result<List<VideoVO>> getRecommendListForDetail(@RequestParam(value = "videoId") Long videoId) {
        return videoService.getRecommendListForDetail(JwtUtil.getUserId(),videoId,false);
    }

    @ApiOperation("获取用户发布视频数量")
    @GetMapping("/getVideoNumByUserId")
    public Result<Integer> getVideoNumByUserId(@RequestParam("userId") Long userId) {
        return videoService.getVideoNumByUserId(userId);
    }

    @ApiOperation("分页-根据用户")
    @GetMapping("/getPageByUserId")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "currentPage", value = "当前页", required = true, dataType = "Integer", paramType = "query"),
            @ApiImplicitParam(name = "pageSize", value = "当前页", required = false, dataType = "Integer", paramType = "query")
    })
    public ResultPage<VideoVO> getPageByUserId(
            @RequestParam("currentPage")  Integer currentPage,
            @RequestParam(value = "pageSize",required = false,defaultValue = "10")  Integer pageSize
    ) {
        return videoService.getPageByUserId(JwtUtil.getUserId(),currentPage,pageSize);
    }
}

4.后端开发文档访问

访问地址格式:后端项目地址+后端项目端口号+/doc.html

如:http://localhost:9002/doc.html

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

5.项目端口号配置

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

 6.移动端项目截图

springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

7.管理后台前端项目截图

 springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端,前端开发它不香么,Java、后端,mysql,spring boot,mybatis,vue.js,后端,前端,音视频,elementui

五、 总结

项目功能完整,后续可能将不断升级。

关注作者,及时了解更多好项目!

作者主页也有更多好项目分享!

获取源码或如需帮助,可通过博客后面名片+作者即可!

 

 其他作品集合文章来源地址https://www.toymoban.com/news/detail-616542.html

  1. 《vue+vant2完美实现香奈儿移动端商城网站》
  2. 《vue+elementui实现联想购物商城,样式美观大方》
  3. 《vue+elementui实现英雄联盟道具城》
  4. 《vue+elementui实现app布局小米商城,样式美观大方,功能完整》
  5. 《vue完美模拟pc版快手,实现短视频,含短视频详情播放》
  6. 《vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网》     
  7. 《vue实现功能完整的购物商城,商品零食、电商通用商城》
  8. 《vue+element实现蔬菜、水果、电商商城》
  9. 《vue+element简单实现电商商城网站,模仿小米电商商城》
  10. 《vue实现美观大方的动漫、cos、帖子类型网站》
  11. 《vue实现好看的相册、图片网站》
  12. 《高度仿PC版《微信读书》,好看的小说、读书网站》
  13. 《vue+element实现非常好看的鲜花网站商城,页面完整,样式美观》
  14. 《vue+elementui+springboot前后端分离实现通用商城管理后台》
  15. 《微信小程序日记、微信小程序个人空间、个人日记》
  16. 《vue+element模仿腾讯视频电影网站》
  17. 《vue+element高度仿照QQ音乐,完美实现PC端QQ音乐》
  18. 《vue+element详细完整实现个人博客、个人网站》
  19. 《vue+elementui+springboot前后端分离实现学校帖子网站,学校大作业》
  20. 《vue+elementui实现U袋网-完整版》
  21. 《vue+element+electron仿微信实现》
  22. 《vue+element模仿电商商城,前后端分离实现,下单微信扫码支付》
  23. 《electron+vue+elementui实现类似QQ窗口靠边自动边缘隐藏》
  24. 《微信小程序仿唯聚时代,微信小程序商城》
  25. 《jquery+bootstrap完整丰富样式开发框架源码,各种现成样式简单易用》
  26. 《html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站》
  27. 《css+html各种动态、动画、3D相册等7件套》
  28. 《仿华为电商商城,官网,华为超级新品日demo,大屏霸气且简洁》
  29. 《vue+element简单实现商城网站首页,模仿电商商城》
  30. 《vue+elementui实现非常好看的博客、网站首页,网站模板》
  31. 《elementui+vue实现经典管理系统布局框架,拿来即用》
  32. 《简系统登录页模板html+vue+elementui》
  33. 《vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”》
  34. 《vue+elementui完美实现后台管理系统的左、右、顶部菜单布局》
  35. 《html5+css3实现3D正方体动画相册2种+3D旋转木马立体动画相册+表白文字加动画爱心+炫酷万花筒五件套含音乐》
  36. 《后端使用springboot+maven+shiro+mybatis+mysql,前端使用H-ui.admin_v3.1.3.1,快速实现管理后台功能》
  37. 《springboot+thymeleaf+maven+html+css实现精美大方好看官网模板完整源码》
  38. 《html+css实现好友列表,类似QQ群聊成员列表》

到了这里,关于springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合JUnit--MyBatis--MyBatis-Plus--Druid

    文章转自黑马程序员SpringBoot学习笔记,学习网址:黑马程序员SpringBoot2教程 1.整合JUnit ​ SpringBoot技术的定位用于简化开发,再具体点是简化Spring程序的开发。所以在整合任意技术的时候,如果你想直观感触到简化的效果,你必须先知道使用非SpringBoot技术时对应的整合是如何做

    2023年04月23日
    浏览(49)
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    1.需求分析 2.数据库表设计 3.数据库环境配置 1.新建maven项目 2.pom.xml 引入依赖 3.application.yml 配置数据源 数据库名 用户名 密码 驱动是mysql8的(因为上面使用了版本仲裁) 4.Application.java 编写启动类 5.测试 6.配置类切换druid数据源 7.测试数据源是否成功切换 4.Mybatis基础配置 1

    2024年03月20日
    浏览(58)
  • Springboot 整合Mytbatis与Mybatis-Plus

    目录 1. springboot整合mybatis    1.1 添加pom.xml依赖  1.2 新建jdbc.properties 文件添加以下内容  1.3 新建generatorConfig.xml 文件添加以下内容 (自动生成代码类)   1.4 修改application.properties 文件 添加以下内容  1.5 修改主类MapperScan  1.6 编写接口实现类进行测试  2. springboot整合mybatis-p

    2024年02月06日
    浏览(47)
  • SpringBoot整合MyBatis-Plus,赶紧整过来!

    提示:以下是本篇文章正文内容 MyBatis-Plus官网介绍:MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis-Plus封装了单表的crud操作,减少基础代码编写,提高开发效率。 支持自

    2024年02月06日
    浏览(41)
  • SpringBoot整合Mybatis-plus实现商品推荐

    在开始编写代码之前,我们需要准备一下环境: Java 8+ IntelliJ IDEA Node.js 和 npm Vue CLI 如果你还没有安装Vue CLI,则可以使用以下命令在终端中安装: 首先,我们需要使用Spring Boot创建一个新项目。在IntelliJ IDEA中,选择“New Project”,然后选择“Spring Initializr”。 在“New Project”

    2024年02月01日
    浏览(49)
  • springboot3.2 整合 mybatis-plus

    springboot3.2 正式发布了 迫不及待地的感受了一下 结果在整个mybatis-plus 的时候遇到了如下报错 主要是由于 mybatis-plus 中 mybatis 的整合包版本不够导致的 排除 mybatis-plus 中自带的 mybatis 整合包,单独引入即可 修改依赖后正常

    2024年02月04日
    浏览(52)
  • 如何在springboot中配置mybatis-plus

    MyBatis-Plus(简称为MP)是一个开源的Java持久层框架,它是在MyBatis基础上进行扩展的。他的出现是为了进一步简化和增强MyBatis的功能,提供更多便捷的特性和工具,以提高开发效率。 本文将阐述如何在springboot中配置和使用mybatis-plus 目录 1配置 2 使用 在pom.xml文件中配置mybati

    2024年02月13日
    浏览(37)
  • springboot+mybatis-plus实现自动建表

    好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~ 工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁,步步高升。 言归正传,作为技术从业者,还是要多深耕

    2024年02月16日
    浏览(40)
  • springboot使用Mybatis-plus分页插件

    在  pom.xml   文件中添加 MyBatis Plus 和分页插件的依赖: 注意替换  {mybatis-plus-version}  为对应的版本号。 在 Spring Boot 的配置文件  application.yml   中添加分页插件的配置参数: 注意代码中的注释,其中   PaginationInterceptor  表示使用 MyBatis Plus 提供的分页插件。 在接口层使用

    2024年02月07日
    浏览(44)
  • springboot mybatis-plus数据库超时配置

    超时异常 写XML 写法,单位秒 Mapper类写法,单位秒 超时异常 整个事务的超时时间,单位是秒。 它的原理大致是事务启动时,事务上下文会计算一个到期时间deadLine(当前时间+超时时间),当mybatis - prepareStatement时,会调用 SpringManagedTransaction 的getTimeOut,该方法会计算事务剩

    2024年02月03日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包