乐趣区

SpringBoot 仿抖音短视频小程序开发(一)

一、项目简介
模仿抖音做的一个短视频微信小程序,用 SpringBoot 搭建小程序后台,用 SSM 框架搭建短视频后台管理系统,小程序后台通过分布式 zookeeper 监听节点自动下载或删除短视频后台管理系统上传的视频。
二、环境参数

核心框架:SpringBoot、SSM
数据库:MySQL、HikariCP 数据源、MyBatis 逆向工程
中间件:zookeeper,redis,swagger2
前端框架:Bootstrap + Jquery、jqGrid 分页组件
音频处理:FFmpeg
开发工具:IDEA

热门技术点
三、项目展示

功能:小程序【注册登录注销】、【上传头像】、【上传作品】、【查看所有 / 单个短视频】、【点赞】、【关注某用户】、【短视频和 BGM 合并】、【留言评论回复】、【举报】、【下载短视频到手机】
四、数据库设计
CREATE TABLE `bgm` (
`id` varchar(64) NOT NULL,
`author` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`path` varchar(255) NOT NULL COMMENT ‘ 播放地址 ’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `comments` (
`id` varchar(20) NOT NULL,
`father_comment_id` varchar(20) DEFAULT NULL,
`to_user_id` varchar(20) DEFAULT NULL,
`video_id` varchar(20) NOT NULL COMMENT ‘ 视频 id’,
`from_user_id` varchar(20) NOT NULL COMMENT ‘ 留言者,评论的用户 id’,
`comment` text NOT NULL COMMENT ‘ 评论内容 ’,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 课程评论表 ’;

CREATE TABLE `search_records` (
`id` varchar(64) NOT NULL,
`content` varchar(255) NOT NULL COMMENT ‘ 搜索的内容 ’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 视频搜索的记录表 ’;

CREATE TABLE `vuser` (
`id` varchar(64) NOT NULL,
`username` varchar(20) NOT NULL COMMENT ‘ 用户名 ’,
`password` varchar(64) NOT NULL COMMENT ‘ 密码 ’,
`face_image` varchar(255) DEFAULT NULL COMMENT ‘ 我的头像,如果没有默认给一张 ’,
`nickname` varchar(20) NOT NULL COMMENT ‘ 昵称 ’,
`fans_counts` int(11) DEFAULT ‘0’ COMMENT ‘ 我的粉丝数量 ’,
`follow_counts` int(11) DEFAULT ‘0’ COMMENT ‘ 我关注的人总数 ’,
`receive_like_counts` int(11) DEFAULT ‘0’ COMMENT ‘ 我接受到的赞美 / 收藏 的数量 ’,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `users_fans` (
`id` varchar(64) NOT NULL,
`user_id` varchar(64) NOT NULL COMMENT ‘ 用户 ’,
`fan_id` varchar(64) NOT NULL COMMENT ‘ 粉丝 ’,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`fan_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 用户粉丝关联关系表 ’;

CREATE TABLE `users_like_videos` (
`id` varchar(64) NOT NULL,
`user_id` varchar(64) NOT NULL COMMENT ‘ 用户 ’,
`video_id` varchar(64) NOT NULL COMMENT ‘ 视频 ’,
PRIMARY KEY (`id`),
UNIQUE KEY `user_video_rel` (`user_id`,`video_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 用户喜欢的 / 赞过的视频 ’;

CREATE TABLE `users_report` (
`id` varchar(64) NOT NULL,
`deal_user_id` varchar(64) NOT NULL COMMENT ‘ 被举报用户 id’,
`deal_video_id` varchar(64) NOT NULL,
`title` varchar(128) NOT NULL COMMENT ‘ 类型标题,让用户选择,详情见 枚举 ’,
`content` varchar(255) DEFAULT NULL COMMENT ‘ 内容 ’,
`userid` varchar(64) NOT NULL COMMENT ‘ 举报人的 id’,
`create_date` datetime NOT NULL COMMENT ‘ 举报时间 ’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 举报用户表 ’;

CREATE TABLE `videos` (
`id` varchar(64) NOT NULL,
`user_id` varchar(64) NOT NULL COMMENT ‘ 发布者 id’,
`audio_id` varchar(64) DEFAULT NULL COMMENT ‘ 用户使用音频的信息 ’,
`video_desc` varchar(128) DEFAULT NULL COMMENT ‘ 视频描述 ’,
`video_path` varchar(255) NOT NULL COMMENT ‘ 视频存放的路径 ’,
`video_seconds` float(6,2) DEFAULT NULL COMMENT ‘ 视频秒数 ’,
`video_width` int(6) DEFAULT NULL COMMENT ‘ 视频宽度 ’,
`video_height` int(6) DEFAULT NULL COMMENT ‘ 视频高度 ’,
`cover_path` varchar(255) DEFAULT NULL COMMENT ‘ 视频封面图 ’,
`like_counts` bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘ 喜欢 / 赞美的数量 ’,
`status` int(1) NOT NULL COMMENT ‘ 视频状态:\r\n1、发布成功 \r\n2、禁止播放,管理员操作 ’,
`create_time` datetime NOT NULL COMMENT ‘ 创建时间 ’,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’ 视频信息表 ’;

退出移动版