团体项目_第11组_音悦app_设计
音悦--项目设计
分工安排
第十一组团队成员及分工安排
组员 | 学号 | 分工 |
---|---|---|
叶家鑫 | 31701087 | 组长,前端开发 |
魏耀 | 31701020 | 文档写作,前后端交互,前端开发 |
吴浩 | 31701082 | 文档写作,数据库设计,后端开发 |
王旭东 | 31701048 | 数据库设计,后端开发 |
1. 体系结构设计
本系统的设计主要是基于MVC设计模式,M代表模型Model,V代表视图View,C代表控制器Controller。MVC设计模式将系统分为三层,层与层之间又通过一定的模式联系,使数据实体、业务逻辑与呈现视图分离,同时降低耦合性、提高重用性和可维护性。
Model(模型):表示应用程序核心,应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图):视图是用户看到并与之交互的界面。
Controller(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
于是本项目采用户SpringBoot(后端)+Flutter(前端)框架,View层交予Flutter解决,SpringBoot解决Controller层与Model层,MyBatis引擎解决SpringBoot与Database数据交互,其体系结构图如下
2.用例图设计
用户用例图设计
3.设计类图
3.1 歌手类
属性 | 数据类型 | 说明 |
---|---|---|
artist_id | String | 歌手ID |
artist_name | String | 歌手姓名 |
album_size | int | 专辑数量 |
music_size | int | 单曲数量 |
artist_pic_url | String | 歌手图片URL |
方法:
- loadArtist() 获取歌手信息
- searchArtistsByKeyword() 通过关键词搜索歌手
3.2 专辑类
属性 | 数据类型 | 说明 |
---|---|---|
album_id | String | 专辑ID |
artist_id | String | 歌手ID |
publish_time | datetime | 发行时间 |
album_name | String | 专辑名 |
introduction | String | 简介 |
album_pic_url | String | 专辑图片的获取地址 |
sub_count | int | 收藏数 |
comment_count | int | 评论数 |
share_count | int | 分享数 |
方法:
- loadAlbum() 获取专辑信息
- searchAlbumsByArtist() 通过搜索歌手得到专辑
- searchAlbumsByKeyword() 通过关键词的搜索获得专辑
3.3 专辑评论类
属性 | 数据类型 | 说明 |
---|---|---|
album_comment_id | int | 专辑评论ID |
album_id | int | 专辑ID |
user_id | String | 用户ID |
user_name | String | 用户名 |
comment_content | String | 评论内容 |
comment_time | datetime | 评论时间 |
like_count | int | 点赞数 |
方法:
- loadComments() 加载评论内容
- comment() 去评论
- delComment() 删除评论
- addLikes() 点赞
- cancelLikes() 取消点赞
3.4 单曲类
属性 | 数据类型 | 说明 |
---|---|---|
song_id | String | 歌曲ID |
song_name | String | 歌曲名 |
content | String | 歌词内容 |
album_id | String | 专辑ID |
artist_id | String | 歌手ID |
song_url | String | 歌曲url |
方法:
- searchSongsByAlbum() 获取专辑中的歌曲
- getSong() 获得歌曲信息
- searchSongsByArtist() 获取指定歌手的歌曲
- getRecSongs() 获取推荐歌曲
- searchSongsByKeyword() 通过关键词搜索歌曲
- play() 播放歌曲
3.5 单曲评论类
属性 | 数据类型 | 说明 |
---|---|---|
song_comment_id | int | 歌曲评论编号 |
sond_id | String | 歌曲ID |
user_id | String | 用户ID |
comment_contene | String | 评论内容 |
comment_time | datetime | 评论时间 |
like_count | int | 点赞数 |
方法:
- comment() 歌曲评论
- delcomment() 删除评论
- getComments() 获取评论
- addLikes() 点赞
- cancelLikes() 取消点赞
3.6 歌单类
属性 | 数据类型 | 说明 |
---|---|---|
sheet_id | String | 歌单ID |
sheet_name | String | 歌单名 |
user_id | String | 用户ID |
user_name | String | 用户名 |
sheet_pic_url | String | 歌单图片地址 |
create_time | datetime | 创建时间 |
sheet_type | int | 歌单类型 |
play_count | int | 播放数 |
方法:
- loadSheetByKeyword() 关键词获取歌单
- searchSheetByUser() 获取个人歌单
- searchSheetByKeyword() 关键词搜索歌单
- getRecSheets() 获取推荐歌单
- createSheet() 创建歌单
- deleteSheet() 删除歌单
3.7 歌单-单曲类
属性 | 数据类型 | 说明 |
---|---|---|
sheet_song_id | int | 歌单歌曲ID |
sheet_id | String | 歌单ID |
song_id | String | 歌曲ID |
方法:
- addSheetSong() 添加歌单歌曲
- removeSheetSong() 移除歌单歌曲
- getSheetSongs() 获取歌单内所有歌曲
3.8 收藏类
属性 | 数据类型 | 说明 |
---|---|---|
collection_id | int | 收藏ID |
user_id | String | 用户ID |
sheet_id | String | 歌单ID |
方法:
- addCollection() 添加收藏
- deleteCollection() 删除收藏
- loadCollectionByUser() 加载用户的收藏
3.9 用户类
属性 | 数据类型 | 说明 |
---|---|---|
user_id | String | 用户ID |
user_name | String | 用户名 |
user_pwd | String | 用户密码 |
introduction | String | 用户简介 |
avatar_url | String | 头像地址 |
user_type | int | 用户类型 |
create_time | datetime | 创建时间 |
方法:
- register() 注册
- login() 登录
- modifyUser() 修改用户信息
- getUser() 获取用户信息
3.10 关注类
属性 | 数据类型 | 说明 |
---|---|---|
follow_id | int | 关注ID |
from_user_id | String | 关注人ID |
to_user_id | String | 被关注人ID |
方法:
- addFollow() 添加关注
- removeFollow() 取消关注
- getFollowSum() 获得关注总数
- getFollowedSum() 获得被关注总数
3.11 动态类
属性 | 数据类型 | 说明 |
---|---|---|
dynamic_id | String | 动态ID |
user_id | String | 用户ID |
dynamic_content | String | 动态内容 |
dynamic_url | String | 动态图片路径 |
create_time | datetime | 创建时间 |
like_count | int | 点赞数 |
方法:
- addDynamic() 添加动态
- deleteDynamic() 删除动态
- loadHotDynamic() 加载热评
- loadFollowDynamic() 加载关注人的动态
- addLikes() 点赞
- cancelLikes() 取消点赞
- transmit() 转发
3.12 动态评论类
属性 | 数据类型 | 说明 |
---|---|---|
dynamic_comment_id | int | 动态评论ID |
dynamic_id | int | 动态ID |
user_id | String | 用户ID |
comment_content | String | 评论内容 |
comment_time | datetime | 评论时间 |
方法:
- comment() 评论
- delComment() 删除评论
- loadComments() 加载评论