团体项目_第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数据交互,其体系结构图如下
avatar

2.用例图设计

用户用例图设计

avatar

3.设计类图

团体项目_第11组_音悦app_设计_第1张图片

3.1 歌手类

团体项目_第11组_音悦app_设计_第2张图片

属性 数据类型 说明
artist_id String 歌手ID
artist_name String 歌手姓名
album_size int 专辑数量
music_size int 单曲数量
artist_pic_url String 歌手图片URL

方法:

  • loadArtist() 获取歌手信息
  • searchArtistsByKeyword() 通过关键词搜索歌手

3.2 专辑类

团体项目_第11组_音悦app_设计_第3张图片

属性 数据类型 说明
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 专辑评论类

团体项目_第11组_音悦app_设计_第4张图片

属性 数据类型 说明
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 单曲类

团体项目_第11组_音悦app_设计_第5张图片

属性 数据类型 说明
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 单曲评论类

团体项目_第11组_音悦app_设计_第6张图片

属性 数据类型 说明
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 歌单类

团体项目_第11组_音悦app_设计_第7张图片
| 属性 | 数据类型 | 说明 |
| - | - | - |
| 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 歌单-单曲类

团体项目_第11组_音悦app_设计_第8张图片

属性 数据类型 说明
sheet_song_id int 歌单歌曲ID
sheet_id String 歌单ID
song_id String 歌曲ID

方法:

  • addSheetSong() 添加歌单歌曲
  • removeSheetSong() 移除歌单歌曲
  • getSheetSongs() 获取歌单内所有歌曲

3.8 收藏类

团体项目_第11组_音悦app_设计_第9张图片

属性 数据类型 说明
collection_id int 收藏ID
user_id String 用户ID
sheet_id String 歌单ID

方法:

  • addCollection() 添加收藏
  • deleteCollection() 删除收藏
  • loadCollectionByUser() 加载用户的收藏

3.9 用户类

团体项目_第11组_音悦app_设计_第10张图片

属性 数据类型 说明
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 关注类

团体项目_第11组_音悦app_设计_第11张图片

属性 数据类型 说明
follow_id int 关注ID
from_user_id String 关注人ID
to_user_id String 被关注人ID

方法:

  • addFollow() 添加关注
  • removeFollow() 取消关注
  • getFollowSum() 获得关注总数
  • getFollowedSum() 获得被关注总数

3.11 动态类

团体项目_第11组_音悦app_设计_第12张图片

属性 数据类型 说明
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() 加载评论

4.各功能时序图设计

4.1 注册

avatar

4.2 创建歌单

avatar

4.3 获取推荐歌单

avatar

4.4 获取歌单

avatar

4.5 发表动态

avatar

4.6 获取专辑

avatar

4.7 获取推荐歌曲

avatar

你可能感兴趣的:(团体项目_第11组_音悦app_设计)