# BuluBulu **Repository Path**: realqizi/bulu-bulu ## Basic Information - **Project Name**: BuluBulu - **Description**: BuluBulu NEW! - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-13 - **Last Updated**: 2024-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##### 0.准备工作 ​ 使用gitee 、日志系统、接口防刷、全局异常处理、**AOP实现Redis缓存** ##### 1.需求分析(待定) ​ 项目的部署方式 1.后台(权限管理)system:用户注册登录(第三方登录,单点登录、自动登录、踢下线?sa-token,token放在redis?)、认证授权(大会员) 2.管理员admin:用户管理、视频审核 3.用户个人 ​ a.个人中心:账号管理、基本信息。。。。 ​ b.个人空间:点赞的视频历史、收藏视频列表,观看历史,个人发布的视频,动态、稍后再看(?) 4.关注:关注他人、关注列表、搜索关注人物、进行聊天、消息推送(五种消息类型,@功能待定) 5.视频:视频投稿(秒传,MQ的队列选择算法?)、搜索视频(推荐,elasticsearch见今日头条)、视频预览(热门推荐),个人性化推荐,视频分类(存储到文件服务器) 6.视频详情页(分集播放):观看(当前观看人数,定时任务?) + 点赞 + 收藏 +分享(组件)+ 弹幕 + 评论区,播放暂停、调整清晰度、倍速、全屏、拖拽进度条。 ​7.漫画(未完成) ​8.直播(未完成) ​9.购物(未完成) 资料整理: 视频的上传与播放:[bilibili: 实战仿B站高性能后端项目 (gitee.com)](https://gitee.com/huxiaoyisheng/bilibili#第3章-打造高性能的视频与弹幕系统)(上传到阿里OSS) 搜索优化:使用ElasticSearch实现**全文检索并且高亮搜索字段**,让用户拥有良好的搜索体验 个性推荐:使用**Mahout推荐算法**量化用户行为,根据用户喜好进行**个性化推荐** ##### 2.数据库设计 user用户表 user_role用户角色表 role角色表(前端修改) role_menu角色权限表 menu权限表(前端修改) 动态表moment:评论、点赞、转发? 评论表pass 转发为组件 视频video+video_status+category, 弹幕dammu 收藏夹favorite+favorate_video 消息chat+chat_detailed 收到的信息推送msg_unread 观看历史user_video 关注列表follow ##### 3.业务实现 1.顶层业务(用户服务) **①用户的登录认证与授权** ​ 实现流程:基于RBAC设计模式,使用SpringSecurity框架实现。 **②评论(前端部分未完成)** ​ 实现流程:多级评论,使用递归获取所有一级评论及其子评论。 **③关注Up主,分组管理关注列表** ​ 实现流程:follow表的增删改查 **④动态推送,系统推送,通过rocketMQ与Redis实现(并不是实时推送)** ​ 实现流程:用户发消息到消息队列,消费者则处理相应topic中的消息,处理完毕后存放至redis中;用户登录会从redis中查找未登录期间关注UP所发送的动态。 **⑤用户聊天(部分未完成)** ​ 实现流程:使用Stompt协议与SpringBoot整合的SimpMessagingTemplate对webSocket进行操作。 **⑥用户个人空间** ​ 实现流程:展示用户的基本信息,观看历史、点赞历史、收藏夹(分组管理) 2.核心业务 **①视频投稿,(基于Nginx与FastDFS框架;OSS)** ​ 实现流程:因为视频一般空间较大,所以上传的核心业务在于前端分片上传,后端进行断点续传,传输过程中的数据暂存redis中。redis以MD5值为唯一键标识;实现了秒传功能,实际上就是在上传前查询数据库里有没有当前文件的MD5; **②视频的在线播放(部分未完成)** ​ 实现流程:使用西瓜播放器(占位DOM+实例化使用),支持弹幕。 **③在线人数统计与发送弹幕(未完成展示)** ​ 实现流程:发送弹幕分两部分,一部分是实时发送,即通过websocket发送给当前观看的其他用户(实际上就是给player增加数据);另一部风是发送给当前用户的player并传给DB进行保存。在线人数统计只是webSocket的连接人数,以定时任务的形式发送给当前所有连接用户。 **④一键三连(点赞、投币、收藏),转发(部分未完成)** ​ 实现流程:似乎是简单的增删改查。 3.底层业务(后台管理) **①数据统计(未实现)** **②视频上传至文件服务器(前端分片,后端将分片上传至文件服务器)**