基于java的微信小程序的实现(一)项目介绍
一,项目介绍
二,技术选型和效果预览
本项目后端采用spring boot +spring data jpa的技术实现
采用Ffmpeg技术对音频和视频进行处理
使用redis数据库实现单点登录和权限验证功能
使用swagger2技术使接口开发更加简洁清楚
使用postman对接口进行测试
数据库采用mysql数据库
使用内网穿透技术提供测试环境
三,数据库表的设计
该项目一共分为8张表
1.背景音乐表
DROP TABLE IF EXISTS `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;
2.用户评论表
DROP TABLE IF EXISTS `comments`; 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=评论表;
3.热搜词表
DROP TABLE IF EXISTS `hot`; CREATE TABLE `hot` ( `id` varchar(64) NOT NULL, `content` varchar(128) DEFAULT NULL COMMENT 搜索的内容, `num` int(11) NOT NULL COMMENT 搜索的次数, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=视频搜索的记录表;
4.用户表
5.用户粉丝关系表
DROP TABLE IF EXISTS `users_fans`; 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=用户粉丝关联关系表;
DROP TABLE IF EXISTS `users_like_videos`; 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=用户喜欢的/赞过的视频;
7.视频信息表
DROP TABLE IF EXISTS `videos`; 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 视频状态: 1、发布成功 2、禁止播放,管理员操作, `create_time` datetime NOT NULL COMMENT 创建时间, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=视频信息表;
8.用户举报表
DROP TABLE IF EXISTS `users_report`; 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=举报用户表;