团体项目_第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.设计类图

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() 加载评论

4.各功能时序图设计

4.1 注册

avatar

4.2 创建歌单

avatar

4.3 获取推荐歌单

avatar

4.4 获取歌单

avatar

4.5 发表动态

avatar

4.6 获取专辑

avatar

4.7 获取推荐歌曲

avatar

posted @ 2019-11-18 21:22  31701087叶家鑫  阅读(355)  评论(0编辑  收藏  举报