1. 程式人生 > >基於java的微信小程式的實現(一)專案介紹

基於java的微信小程式的實現(一)專案介紹

一,專案介紹

  • 佐倉短視訊是一個以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.使用者表

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `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;

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='使用者粉絲關聯關係表';

6.使用者點贊視訊表

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 '視訊狀態:\r\n1、釋出成功\r\n2、禁止播放,管理員操作',
  `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='舉報使用者表';

專案的原始碼地址:https://github.com/LexBBQ/myVideo