信息工程学院-便捷阅读青檬畅听App的设计与实现_第1页
信息工程学院-便捷阅读青檬畅听App的设计与实现_第2页
信息工程学院-便捷阅读青檬畅听App的设计与实现_第3页
信息工程学院-便捷阅读青檬畅听App的设计与实现_第4页
信息工程学院-便捷阅读青檬畅听App的设计与实现_第5页
已阅读5页,还剩100页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章系统总体设计3.1构架设计3.1.1系统构架前端用户使用电脑、笔记本或Android设备访问代理层的Nginx代理服务器,Nginx会自动采用负载均衡策略和反向代理模式转发用户请求至基础服务层,基础服务层会对当前登录系统的用户进行账号认证、权限管理,并对当前用户在系统中的所有操作进行日志监控跟踪,借助相关功能,基础服务层将业务服务层的数据处理成可展示结果,并显示给移动端用户。业务服务层是本系统的主要部分,它由核心功能模块和其它辅助功能模块组成。它的主要核心功能包括查看小说、听书、定时、收藏、书城、排行榜等,这些核心功能通过相应操作,实现小说内容展示、听书体验等业务需求,基础服务层和业务服务层的所有功能操作,系统会自动进行日志记录。业务相关数据会通过数据访问层传输到数据存储层完成数据的存储,数据存储采用Mysql数据库,实现数据的存储,系统的整体安全控制由统一权限控制模块进行管理。青檬畅听App系统架构设计如图3-1所示。图3-1青檬畅听App系统构架图3.1.2功能结构设计1、系统功能模块设计系统设计的模块主要有用户模块、小说模块、书单模块、评论模块、查找小说模块、收藏模块、历史模块、推荐模块、青少年模式模块,共九个模块。系统功能图如图3-2所示。图3-2系统功能模块图2、系统核心类图设计根据系统需求设计数据库中的表和字段,根据数据库中的表设计实体类pojo,分别为Admin、Collect、Comment、History、ListNovel、Novel、Novelcontent、NovelList、Recommend、User、UserM,根据实体类设计控制层Controller、业务层Service、数据库访问层Mapper,以下是我系统整体类图的具体设计。系统核心类图如图3-3所示。3.2功能设计3.2.1用户管理模块1.功能说明用户管理实现用户的添加,查看,编辑,全选、单选删除功能;用户个人中心页面实现个人信息的查看,修改功能。2.表现层设计(1)表现层设计内容管理员用户列表页面,包含ID、用户名、账号、密码、手机号、注册时间、编辑、删除、查询、添加、批量删除等;移动端个人中心页面,包含头像、账号、用户名、手机号、修改密码。图3-3系统整体类图(2)表现层场景描述用户管理模块表现层核心页面,详见如下表3-1。表3-1用户管理模块表现层核心页面序号表现层文件名称重要场景描述1person_admin.vue管理员对用户进行查看、编辑、删除、查询、添加2userInfo.vue用户展示自己个人信息3updateUserInfo.vue修改个人信息3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现对系统中用户管理,主要业务逻辑层类设计如下所示。(1)IUserService接口该接口定义了用户相关的业务逻辑,主要包括:用户注册、登录验证、信息修改、账号删除、密码重置及多条件用户检索等功能。(2)UserServiceImpl类该类通过实现IUserService接口,提供用户注册、登录验证、信息修改及分页检索等核心功能。它继承了ServiceImpl<UserMapper,User>类,利用UserMapper接口完成数据持久化操作,其实现包括:注册时校验用户名是否唯一并自动填充创建时间;登录时通过明文密码比对验证身份;用户信息更新时记录最后修改时间;支持基于姓名、用户名或手机号的多条件分页模糊查询;返回用户信息时密码置空。通过QueryWrApper构建动态查询条件,结合Page对象实现分页,同时处理用户不存在等异常场景,是连接控制器层与数据访问层的核心业务枢纽。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的增、删、改、查等操作,主要数据访问层类设计如下所示。(1)UserMapper接口该接口继承了BaseMapper<User>接口,处理用户数据的持久化操作,包括验证密码、按用户名查询、用户信息检索、多条件搜索、存在性检查、密码更新和获取所有用户。这些方法被UserServiceImpl类调用,服务于业务逻辑。(2)UserMapper.xml该文件定义了用户管理模块的数据访问操作。它包含各种SQL语句,如查询、插入、更新和删除用户信息,同时处理用户身份验证、密码管理等功能。(3)User实体类该类主要用于封装用户数据,包括ID、用户名、账号、密码、手机号、注册时间。3.2.2小说管理模块1.功能说明管理员小说列表实现小说的添加,查看,编辑,删除、查询功能;移动端小说模块主要实现阅读、查找、搜索小说。2.表现层设计(1)表现层设计内容管理员小说列表页面,包含ID、书名、图片、简介、作者、状态、编辑、删除、查询、新增小说、批量删除等;新增小说信息页面,包含书名、作者、类型、简介、状态(完结、未完结)、封面、章节、内容等;移动端小说详情页,包括小说名称、作者、类型、评分、状态、简介、查看章节、作者还写过、书友评论、同类推荐、加入书架、立即阅读;阅读页,包括目录、日夜间、排版、翻页、背景、朗读定时、朗读语速等。(2)表现层场景描述小说管理模块表现层核心页面,如表3-2所示。表3-2小说管理模块表现层核心页面序号表现层文件名称重要场景描述1novel_admin.vue管理员对小说进行查看、编辑、删除、查询、添加2detail/index.vue小说详情页,可以看到小说详情3read.vue阅读页面,可以定时,设定语速3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现对系统中小说列表管理,主要业务逻辑层类设计如下所示。(1)INovelService接口该接口定义了与小说相关的业务逻辑方法,主要包括:分页获取小说列表,支持按状态和排序字段筛选;通过ID获取小说详情,包含作者、简介等完整信息;下架小说;修改小说数据。(2)NovelServiceImpl类该类继承自ServiceImpl<NovelMapper,Novel>类并实现了INovelService接口,依赖NovelMapper接口进行数据库操作,主要负责处理小说数据的增删改查。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的增、删、改、查等操作,主要数据访问层类设计如下所示。(1)NovelMapper接口该接口继承了BaseMapper<Novel>接口,处理小说数据的持久化操作,包括增加小说、删除小说、修改小说详情、查找操作。这些方法被NovelServiceImpl类调用,服务于业务逻辑。(2)NovelMapper.xml该文件定义了小说管理模块的数据访问操作。它包含各种SQL语句,如查询、插入、更新和删除小说信息。(3)Novel实体类该类主要用于封装小说数据,其中包括ID、书名、图片、简介、作者、状态等等。3.2.3书单管理模块1.功能说明管理员书单列表实现书单的查看,编辑,删除、查询功能;移动端书单模块实现创建书单和我的书单查看、修改、上传、删除功能。2.表现层设计(1)表现层设计内容管理员书单列表页面,包含ID、书单名、图片、简介、是否发布、发布时间、编辑、删除、查看、批量删除、查询等;移动端书单页面,包含书单列表、创建书单、我的书单,创建书单,包含标题、简介、添加书籍。(2)表现层场景描述书单模块表现层核心页面,如表3-3所示。表3-3书单模块表现层核心页面序号表现层文件名称重要场景描述1novelList_admin.vue管理员对书单进行查看、编辑、删除、查询2myNovelList.vue移动端用户我的书单,可以查看自己的书单3updateNovelList.vue移动端用户修改书单,可以修改自己的书单4getNove.vue移动端用户创建书单获取小说5createNovelList.vue移动端用户创建书单,可以创建自己的书单3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现书单模块,主要业务逻辑层类设计如下所示。(1)INovelListService接口该接口定义了所有与书单相关的业务操作,提供了业务逻辑层的接口规范,包括修改书单、删除书单、查询所有书单、查询书单详情、模糊查询书单、根据用户ID查询书单、创建自己书单、获取小说等功能。(2)NovelListServiceImpl类该类主要它继承了ServiceImpl<NovelListMapper,NovelList>类并实现了INovelListService接口,直接使用其提供的通用方法,同时实现自定义的业务逻辑,如书单数量统计、分页查询、模糊搜索等。4.数据访问层设计本模块的数据访问层的功能主要负责与数据库交互,提供书单数据的存储、检索、更新和删除功能,确保前台页面数据的准确性和一致性,主要数据访问层类设计如下所示。(1)NovelListMapper接口该接口继承了BaseMapper<NovelList>接口,处理书单数据的持久化操作,包括添加新的书单;根据书单ID删除书单记录;对书单信息的更新,包括修改书单的标题、简介等基本信息,能够更新书单的发布状态;查询所有书单、根据书单ID查询书单详情、根据标题模糊查询书单列表、创建自己个性化书单等。这些方法被NovelListServiceImpl类调用,服务于业务逻辑。(2)NovelListMapper.xml该文件定义了书单管理模块的数据访问操作。它包含各种SQL语句,如查询、插入、更新和删除书单信息。(3)NovelList实体类该类主要用于封装书单数据,其中包括ID、书单名、图片、简介、是否发布、发布时间等等。3.2.4评论管理模块1.功能说明管理员评价列表实现小说评价的查看,删除功能;移动端用户在小说或者书单中评论自我想法。2.表现层设计(1)表现层设计内容管理员评价列表页面,包含用户ID、小说ID/书单ID、内容、评论时间、删除、批量删除等;移动端用户在小说或者书单书友评论中评论。表现层场景描述评论模块表现层核心页面,如表3-4所示。表3-4评论模块表现层核心页面序号表现层文件名称重要场景描述1Comment_admin.vue管理员对小说评论进行查看、删除2novelListContent.vue移动端用户书单评论3userComment.vue移动端用户我的评论4detail/index.vue移动端用户小说评论3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现对系统中小说评论列表管理,主要业务逻辑层类设计如下所示。(1)ICommentService接口该接口定义了评论系统的核心功能,主要包括根据评论ID删除、查看评论、添加评论。(2)CommentServiceImpl类该类主要它继承了ServiceImpl<CommentMapper,Comment>类并实现了ICommentService接口,直接调用了commentMapper的方法,实现评论的创建时间、根据评论ID删除、查看评论、添加评论等。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的增、删、查等操作,主要数据访问层类设计如下所示。(1)CommentMapper接口该接口继承了BaseMapper<Comment>接口,处理评论数据的持久化操作,包括添加评论、删除评论、根据小说ID查询评论等。这些方法被CommentServiceImpl类调用,服务于业务逻辑。(2)CommentMapper.xml该文件定义了与CommentlMapper接口方法对应的SQL语句,包括根据评论ID删除、查看评论、添加评论。(3)Comment实体类该类主要用于封装小说数据,其中包括用户ID、小说ID/书单ID、内容、评论时间等等。3.2.5查找小说模块1.功能说明查找小说包括搜索查找、书城精选查找、排行榜分类查找、系统分类查找。搜索查找主要实现用户有自己想要查找的小说通过输入关键字精确查找或者模糊查找;书城精选查找主要实现用户根据书城精选中推出的小说查找;排行榜分类查找主要实现根据评分或者热更等检索查找;系统分类查找主要实现根据系统的分类如玄幻、都市生活等分类查找。2.表现层设计(1)表现层设计内容搜索页面的搜索输入框、搜索按钮、搜索结果列表(小说封面、名称、作者、简介、分类、字数等);书城精选页面的轮播图推荐位、编辑推荐栏目、热门推荐栏目、新书推荐栏目、每个推荐栏目包含小说封面、名称、作者、简介;排行榜页面的排行榜类型选择选项卡(点击榜、收藏榜、新书榜、评分榜等)、时间筛选下拉框(周榜、月榜、总榜)、排行榜列表(排名、小说封面、名称、作者、分类、对应指标数值);系统分类的页面分类导航菜单(玄幻、都市、言情、科幻等)、分类筛选条件(字数、状态、排序方式等)、分类小说列表(小说封面、名称、作者、字数、最新章节等)。(2)表现层场景描述查找小说功能表现层核心页面,如表3-5所示。表3-5查找小说功能表现层核心页面序号表现层文件名称重要场景描述1search/index.vue搜索页面,可以输入关键字搜索2search.vue搜索结果页面3index/index.vue书城精选页面4rankingList/index.vue排行榜页面5finsh.vue完结榜单结果页面6recommend推荐榜单结果页面7score.vue评分榜单结果页面8top.vue热更榜单结果页面9athletic.vue网游竞技结果界面10classify.vue分类页面11cross.vue历史军事结果界面12emprise.vue武仙武侠结果界面13fantasy.vue玄幻奇幻结果界面14metropolis.vue都市言情结果界面15science.vue科幻灵异结果界面3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现对系统中小说评论列表管理,主要业务逻辑层类设计如下所示。(1)INovelService接口该接口定义了与查找小说相关的业务逻辑方法,主要包括:根据类型推荐小说、根据关键字查询小说、分类型查询小说。(2)NovelServiceImpl类该类继承自ServiceImpl<NovelMapper,Novel>类并实现了INovelService接口,依赖NovelMapper接口进行数据库操作,主要负责处理小说数据的分类查询、排行榜生成及推荐逻辑。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的查询操作,主要数据访问层类设计如下所示。(1)NovelMapper接口该接口继承了BaseMapper<Novel>接口,处理小说数据的持久化操作,包括查找小说、分类查看等操作。这些方法被NovelServiceImpl类调用,服务于业务逻辑。(2)NovelMapper.xml该文件定义了与NovelMapper接口方法对应的查询SQL语句,如关键字模糊查询、小说名称精准查询。(3)Novel实体类该类主要用于封装小说数据,其中包括ID、书名、图片、简介、作者、状态等等。3.2.6收藏管理模块1.功能说明小说收藏功能主要实现允许用户将感兴趣的小说加入书架,支持批量管理和分类整理。用户可查看收藏列表、取消收藏,收藏数据会计入用户画像,用于个性化推荐,收藏的小说可以为创建书单时提供。2.表现层设计(1)表现层设计内容小说详情页有小说封面图片、小说标题、作者、类型、简介等信息、评分展示、加入书架按钮,书架页面有搜索图标(可跳转搜索页面)、“书架”标题、“阅读历史”快捷入口、“分类”快捷入口、收藏小说列表(每项包含:小说封面、标题、作者、类型、简介)、滑动删除功能(左滑显示删除按钮)、推荐小说入口。(2)表现层场景描述收藏功能表现层核心页面,如表3-6所示。表3-6收藏功能表现层核心页面序号表现层文件名称重要场景描述1detail/index.vue小说详情页,展示小说详细信息,提供"加入书架"功能2book.vue书架页面,展示用户收藏的小说,支持查看和删除续表3-6序号表现层文件名称重要场景描述3recommend.vue推荐页面,当用户书架为空或需要新书时提供推荐3.业务逻辑层设计本模块的业务逻辑层功能主要用于实现对系统中小说评论列表管理,主要业务逻辑层类设计如下所示。(1)ICollectService接口该接口定义了维护用户的收藏信息,可通过该类实现:添加收藏(加入书架)、删除收藏(从书架移除)、查询用户收藏列表、检查是否已收藏、更新阅读进度(章节)。(2)CollectMapperImpl类该类继承自ServiceImpl<CollectMapper,Collect>类并实现了ICollectService接口,依赖CollectMapper接口进行数据库操作,主要负责处理添加收藏(加入书架)、删除收藏(从书架移除)、查询用户收藏列表、检查是否已收藏、更新阅读进度(章节)。4.数据访问层设计本模块的数据访问层的功能主要用于实现对用户收藏数据的持久化管理,主要数据访问层类设计如下:(1)CollectMapper接口该接口继承了BaseMapper<Collect>接口,处理收藏数据访问层的持久化操作,包括添加收藏记录、删除收藏记录、查询用户收藏列表、检查收藏是否存在、更新阅读进度。这些方法被CollectMapperImpl类调用,服务于业务逻辑。(2)CollectMapper.xml该文件定义了收藏管理模块的数据访问操作。它包含各种SQL语句,如查询、插入、更新和删除收藏小说信息。(3)Collect实体类该类主要用于表示收藏的具体小说信息,包含:小说ID、用户ID、收藏类型、最后阅读章节、收藏时间。3.2.7历史管理模块1.功能说明历史模块主要实现记录用户看过的小说(阅读历史)以及搜索框中搜索过得小说名。2.表现层设计(1)表现层设计内容标题为阅读历史,下方为用户看过的小说;搜索中显示历史搜索,可以删除。(2)表现层场景描述历史功能表现层核心页面,如表3-7所示。表3-7历史功能表现层核心页面序号表现层文件名称重要场景描述1history.vue历史阅读,记录用户看过的小说2search/index.vue搜索历史,记录用户搜索过的小说名3.业务逻辑层设计本模块的业务逻辑层功能主要用于对系统历史模块的实现,主要业务逻辑层类设计如下所示。(1)IHistoryService接口该接口主要新增阅读历史记录、更新阅读历史记录、查询某个用户的所有阅读历史记录、查询某个用户是否已经阅读过某部小说等功能。(2)HistoryServiceImpl类该类继承自ServiceImpl<HistoryMapper,History>类并实现了IHistoryService接口,依赖HistoryMapper接口进行数据库操作,主要负责处理新增阅读历史记录、更新阅读历史记录、查询某个用户的所有阅读历史记录、查询某个用户是否已经阅读过某部小说。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的增、删、改、查等操作,主要数据访问层类设计如下所示。(1)HistoryMapper接口该接口继承了BaseMapper<History>接口,处理历史数据访问层的持久化操作,包括阅读历史记录和搜索历史记录的存储、检索、更新和删除功能。(2)HistoryMapper.xml该文件定义了与HistoryMapper接口方法对应的SQL语句,包括新增、删除、修改、查找。(3)History实体类该类主要用于封装小说数据,其中包括ID、小说ID、用户ID、创建时间等。3.2.8推荐管理模块1.功能说明推荐模块主要实现用户个性化推荐,根据用户喜好推荐小说。2.表现层设计(1)表现层设计内容推荐页面标题为推荐小说,下方为推荐的小说。搜索页面下方出现热门搜素。表现层场景描述推荐功能表现层核心页面,如表3-8所示。表3-8推荐功能表现层核心页面序号表现层文件名称重要场景描述1recommend.vue小说推荐2sarch.index.vue热门搜索推荐3.业务逻辑层设计本模块的业务逻辑层功能主要用于对系统推荐模块的实现,主要业务逻辑层类设计如下所示。(1)IRecommendService接口该接口定义了推荐记录的存储、检索和更新操作、新增推荐记录、删除推荐记录、查询某个用户的所有推荐记录等功能。(2)RecommendServiceImpl类该类继承自ServiceImpl<RecommendMapper,Recommend>类并实现了IRecommendService接口,依赖RecommendMapper接口进行数据库操作,主要负责推荐记录的存储、检索和更新操作、新增推荐记录、删除推荐记录、查询某个用户的所有推荐记录。4.数据访问层设计本模块的数据访问层的功能主要用于与数据库进行交互,实现数据的查找操作,主要数据访问层类设计如下所示。(1)RecommendMapper接口该接口继承了BaseMapper<Recommend>接口,处理推荐数据访问层的持久化操作,包括能够将用户的推荐记录(如用户ID、小说ID、推荐次数等)插入到数据库中,查询某个用户的所有推荐记录,根据用户ID删除特定的推荐记录。(2)RecommendMapper.xml该文件定义了与UserMapper接口方法对应的查询SQL语句。(3)Recommend实体类该类主要用于封装小说数据,其中包括ID、小说ID、用户ID、推荐权重等等。3.2.9青少年管理模块1.功能说明青少年模式主要实现在基础阅读功能上增加使用限制,提供适合未成年人的阅读环境。系统自动屏蔽敏感内容,限制时长不能进入系统,开启后默认两分钟后退出系统,再次进入系统需要完成限制时长后进入,此账号无法强行进入,如果想进入系统要不更换账号,要么等待限制时长过后进入系统。2.表现层设计(1)表现层设计内容用户页面显示青少年模式,提示确认弹窗,录入退出时长,退出系统。(2)表现层场景描述青少年模式功能表现层核心页面,如表3-9所示。表3-9青少年模式功能表现层核心页面序号表现层文件名称重要场景描述1user.vue显示青少年模式,提示弹窗,录入时长,退出系统。2login.vue计算退出时长,未达到退出时长不得进入系统。3.3数据库设计3.3.1数据库环境说明本系统采用MySQL8.0.17数据库管理系统,考虑到系统性能和可用性需求,采用主从读写分离架构进行部署。数据库设计使用Navicat作为主要设计工具,完成了数据库的概念模型和物理模型的建立。为了保证系统能够正常运行,建议采用如下服务器配置:产品类型:四核服务器处理器:英特尔(Intel)i5-11300H内存:16GDDR4硬盘:512GB3.3.2概念结构设计本系统中共设计了10个实体属性,分别是管理员实体属性、用户实体属性、小说实体属性、书单实体属性、书单关联实体属性、小说内容实体属性、收藏实体属性、评论实体属性、历史记录实体属性、推荐实体属性。管理员实体属性主要包括编号、管理员名、密码等,管理员实体设计如图3-4所示。图3-4管理员实体用户实体属性主要包括编号、昵称、用户名、头像、手机号、邮箱、创建时间、更新时间、地区、密码等,用户实体设计如图3-5所示。图3-5用户实体小说实体属性主要包括编号、小说名称、作者、简介、封面图片、类型、评分、点击量、推荐量、状态等,小说实体设计如图3-6所示。书单实体属性主要包括编号、标题、封面图片、简介、类型、发布时间、用户编号等,书单实体设计如图3-7所示。书单关联实体属性主要包括编号、小说编号、书单编号、关联内容描述等,书单关联实体设计如图3-8所示。图3-6小说实体图3-7书单实体图3-8书单关联小说内容实体属性主要包括编号、小说名称、章节名称、章节内容地址等,小说内容实体设计如图3-9所示。收藏实体属性主要包括编号、用户编号、小说编号、收藏时间等,收藏实体设计如图3-10所示。图3-9小说内容图3-10收藏实体评论实体属性主要包括编号、用户编号、小说编号、评论内容、评论时间、点赞数等,评论实体设计如图3-11所示。图3-11评论实体历史记录实体属性主要包括编号、小说编号、用户编号、阅读时间等,历史记录实体设计如图3-12所示。推荐实体属性主要包括编号、小说编号、推荐次数、用户编号等,推荐实体设计如图3-13所示。图3-12历史记录实体图3-13推荐实体系统概念结构实体E-R图,如图3-14所示。图3-14系统整体E-R图3.4开发环境选择系统开发环境与工具如表3-10所示。表3-10开发环境列表工具与环境名称版本(号/名称)操作系统Win11家庭版程序开发工具IDEA2022.1.2版本编程语言选择JAVA1.8版本Web界面设计工具HBuilderX4.36版本数据库系统Mysql8.0.17版本数据库管理工具NavicatPremium15.0.27版本3.5本章小结本章先对系统架构设计进行了全面概述,其次深入剖析表现层、业务层、数据访问层,详细阐述系统核心业务功能设计,然后对数据库设计部分进行具体说明,最后对系统的开发环境选择进行了简要说明。第4章系统详细设计4.1系统数据库表设计4.1.1逻辑结构设计逻辑结构设计是把概念结构设计阶段画好的数据库E-R图转换为关系模型。本系统的关系模型的逻辑结构是由10个关系模式组成,具体的关系模式如下:(1)用户(编号,用户名,密码,手机号,邮箱,注册时间)(2)小说(编号,小说名称,作者,简介,封面图片,类型,评分,点击量,推荐量,状态)(3)书单关联表(编号,小说编号,书单编号,关联内容描述)(4)小说内容(编号,小说名称,章节名称,章节内容地址)(5)书单表(编号,标题,封面图片,简介,类型,发布时间,用户编号)(6)小说收藏(编号,用户编号,小说编号,收藏时间)(7)小说评论(编号,用户编号,小说编号,评论内容,评论时间,点赞数)(8)小说历史记录(编号,小说编号,用户编号,阅读时间)(9)小说推荐(编号,小说编号,推荐次数,用户编号)(10)管理员(编号,用户名,密码)4.1.2表结构设计本系统的数据库包含10个数据表,用户表、小说表、小说列表关联表、小说内容表、小说列表、小说收藏表、小说评论表、小说历史记录、小说推荐表、管理员表下文针对进行表结构设计。用户表如表4-1所示,该表主要包含用户编号,用户名,密码,手机号,邮箱,注册时间字段,id是主键。表4-1用户表user列名数据类型(长度)是否为空约束注释idint否主键用户编号namevarchar(255)是唯一值用户名usernamevarchar(255)否用户登录名passwordvarchar(255)否用户密码phone_numchar(15)是用户手机号续表4-1列名数据类型(长度)是否为空约束注释emailchar(30)是用户邮箱create_timedatetime是注册时间小说表如表4-2所示,该表主要包含小说编号,小说名称,作者,简介,封面图片,类型,评分,点击量,推荐量,状态字段,id是主键。表4-2小说表novel列名数据类型(长度)是否为空约束注释idint否主键小说编号namevarchar(255)是小说名称authorvarchar(255)是作者introductionvarchar(2000)是小说简介imgvarchar(255)是小说封面图片typevarchar(255)是小说类型scorevarchar(255)是评分hit_numint是点击量recommend_numint是推荐量stateint是状态(1:正常,0:下架)书单关联表如表4-3所示,该表主要包含关联编号,小说编号,小说列表编号,关联内容描述字段,id是主键。表4-3书单关联表list_novel列名数据类型(长度)是否为空约束注释idint否主键关联编号novel_idint是小说编号novel_list_idint是小说列表编号contentvarchar(255)是关联内容描述小说内容表如表4-4所示,该表主要包含内容编号,小说名称,章节名称,章节内容地址字段,id是主键。表4-4小说内容表novelcontent列名数据类型(长度)是否为空约束注释idint否主键内容编号namevarchar(255)是小说名称chaptervarchar(255)是章节名称addressvarchar(255)是章节内容地址书单表如表4-5所示,该表主要包含小说列表编号,标题,封面图片,简介,类型,发布时间,用户编号字段,id是主键。表4-5书单表novel_list列名数据类型(长度)是否为空约束注释idint否主键小说列表编号titlevarchar(255)是列表标题picvarchar(255)是列表封面图片introductionvarchar(255)是列表简介typevarchar(255)是列表类型pushtimedatetime是发布时间user_idint是创建用户编号小说收藏表如表4-6所示,该表主要包含收藏编号,用户编号,小说编号,收藏时间字段,id是主键。表4-6小说收藏表collect列名数据类型(长度)是否为空约束注释idint否主键收藏编号user_idint是用户编号typetinyint是收藏类型novel_idint是小说编号novel_list_idint是小说列表编号chapterIdint是章节编号create_timedatetime是收藏时间小说评论表如表4-7所示,该表主要包含评论编号,用户编号,小说编号,评论内容,评论时间,点赞数字段,id是主键。表4-7小说评论表comment列名数据类型(长度)是否为空约束注释idint否主键评论编号user_idint是用户编号typetinyint是评论类型novel_idint是小说编号novel_list_idint是小说列表编号to_user_idint是被评论用户编号contentvarchar(2000)是评论内容create_timedatetime是评论时间upint是点赞数小说历史记录表如表4-8所示,该表主要包含记录编号,小说编号,用户编号,阅读时间字段,id是主键。表4-8小说历史记录表history列名数据类型(长度)是否为空约束注释idint否主键历史记录编号novel_idint是小说编号user_idint是用户编号create_timedatetime是阅读时间小说推荐表如表4-9所示,该表主要包含推荐编号,小说编号,推荐次数,用户编号字段,id是主键。表4-9小说推荐表recommend列名数据类型(长度)是否为空约束注释idint否主键推荐编号novelIdint是小说编号seem_numvarchar(20)是查看次数user_idint是推荐用户编号管理员表如表4-10所示,该表主要包含管理员编号,用户名,密码字段,id是主键。表4-10管理员表admin列名数据类型(长度)是否为空约束注释idint否主键管理员编号namevarchar(255)是管理员姓名passwordvarchar(255)是管理员密码4.2主要功能模块详细设计4.2.1用户管理模块设计1.模块功能描述用户管理模块主要实现系统用户注册和用户信息的维护管理。用户可以通过App注册成为系统用户,在注册时需要输入账号、密码、再次输入密码、昵称、手机号等内容。系统管理员可以使用本功能实现对系统中用户信息的管理。2.输入项(1)添加用户信息功能,管理员输入账号、密码、用户名、手机号,点击确定。(2)编辑用户信息功能,管理员修改账号、密码、用户名、手机号,点击确定。(3)删除用户信息功能,管理员点击删除。(4)查询用户信息功能,管理员输入账号,点击查询。(5)查看用户个人信息功能,用户点击头像。(6)修改密码功能,用户输入旧密码、新密码,点击完成。3.输出项(1)添加用户信息功能,管理员输入账号、密码、用户名、手机号,点击确定,提示“添加成功”信息。(2)编辑用户信息功能,管理员修改账号、密码、用户名、手机号,点击确定,提示“修改成功”信息。(3)删除用户信息功能,管理员点击删除,提示“删除成功”信息。(4)查询用户信息功能,管理员输入账号,点击查询,显示查找结果。(5)查看用户个人信息功能,用户点击头像,显示用户个人信息。(6)修改密码功能,用户输入旧密码、新密码,点击完成,提示“修改成功”信息。4.实现方式(1)添加用户信息功能设计管理员访问http://localhost:8081/#/pages/novel/index进入用户管理界面,点击“添加”按钮,输入账号、密码、用户名、手机号后,点击“确定”按钮,前端发送HTTP请求至UserController类的addConsumer方法;UserController类获取请求参数并进行校验,随后调用UserService类的insert方法;UserServiceImpl类执行具体业务逻辑,如数据校验,并调用UserMapper接口的insert方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果依次返回到UserController;UserController将处理结果封装为HTTP响应返回给前端,显示结果,刷新列表。添加用户信息顺序图如图4-1所示。(2)编辑用户信息功能设计管理员访问http://localhost:8081/#/pages/novel/index进入用户管理界面,点击“编辑”按钮,更改信息,点击“确定”按钮后,前端发送HTTP请求至UserController类的updateConsumer方法;UserController类获取请求参数并进行校验,随后调用UserService类的update方法;UserServiceImpl类执行具体业务逻辑,如数据校验,并调用UserMapper接口的update方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库更新操作;操作结果依次返回到UserController;UserController将处理结果封装为HTTP响应返回给前端,显示结果,刷新列表。编辑用户信息顺序图如图4-2所示。图4-1添加用户信息顺序图图4-2编辑用户信息顺序图(3)删除用户信息功能设计管理员访问http://localhost:8081/#/pages/novel/index进入用户管理界面,点击“删除”按钮后,前端发送HTTP请求至UserController类的deleteConsumer方法;UserController类获取用户id,随后调用UserService类的delete方法;UserServiceImpl类执行删除业务逻辑,并调用UserMapper接口的delete方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库删除操作;操作结果依次返回到UserController;UserController将处理结果封装为HTTP响应返回给前端,显示结果,刷新列表。删除用户信息顺序图如图4-3所示。图4-3删除用户信息顺序图(4)查询用户信息功能设计管理员访问http://localhost:8081/#/pages/novel/index进入用户管理界面,输入账号,点击“查询”按钮后,前端发送HTTP请求至UserController类的searchNum方法;UserController类获取用户名,随后调用UserService类的searchNum方法;UserServiceImpl类执行查询业务逻辑,并调用UserMapper接口的getByUsername方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果返回UserServiceImpl后,Service层进行数据处理,如封装结果对象,再将结果返回UserController;UserController将处理结果封装为HTTP响应返回给前端,显示查询结果。查询用户信息顺序图如图4-4所示。(5)查看用户个人信息功能设计用户访问http://localhost:8080/#/pages/user/user进入用户界面,点击“头像”按钮后,前端发送HTTP请求至UserController类的userInfo方法;UserController类获取用户id,随后调用UserService类的userInfo方法;UserServiceImpl类执行查询业务逻辑,并调用UserMapper接口的userInfo方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果返回UserServiceImpl后,Service层进行数据处理,如封装结果对象,再将结果依次返回到UserController将处理结果封装为HTTP响应返回给前端,显示查询结果。查看用户个人信息顺序图如图4-5所示。图4-4查询用户信息顺序图图4-5查看用户个人信息顺序图(6)修改密码功能用户访问http://localhost:8080/#/pages/user/updateUserInfo进入用户个人信息界面,点击“修改密码”按钮,输入旧密码、新密码,点击“完成”按钮后,前端发送HTTP请求至UserController类的newPassword方法;UserController类获取用户名和密码,随后调用UserService类的newPassword方法;UserServiceImpl类执行修改密码业务逻辑,并调用UserMapper接口的newPassword方法;MyBatis框架根据UserMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库更新操作;操作结果依次返回到UserController;UserController将处理结果封装为HTTP响应返回给前端,显示结果。修改密码顺序图如图4-6所示。图4-6修改密码顺序图5.效果图本模块主要包括添加用户信息、编辑用户信息、删除用户信息、查询用户信息、查看用户个人信息、修改密码等功能。(1)用户管理模块效果图进入“用户管理”界面后,可直接查看用户列表、添加用户信息、修改用户信息、删除用户信息和查询用户信息。用户管理模块效果图如图4-7所示。(2)用户信息模块效果图进入“用户信息”界面后,可直接查看头像、账号、用户名、手机号等信息,还可以修改密码。用户信息模块效果图如图4-8所示。图4-7用户管理效果图图4-8用户信息效果图4.2.2小说管理模块设计1.模块功能描述管理员在后台小说列表添加小说,移动端用户阅读小说,如果用户在夜间想听书睡眠,可以选择朗读定时,设定时间。2.输入项(1)添加小说信息功能,管理员输入书名、作者、类型、简介、状态、封面、章节、内容,确认添加。(2)小说阅读,点击立即阅读。(3)朗读和定时功能,点击朗读,选择定时时长,确定。3.输出项(1)添加小说信息功能,管理员输入书名、作者、类型、简介、状态、封面、章节、内容,确认添加。(2)小说阅读,点击立即阅读,阅读小说。(3)朗读和定时功能,点击朗读,选择定时时长,确定,开始朗读并在规定时间后停止朗读。4.实现方式(1)添加小说信息功能设计管理员访问http://localhost:8081/#/pages/novel/index进入小说列表界面,点击“添加”按钮,输入书名、作者、类型、简介、状态、封面、章节、内容后,点击“确定”按钮,前端发送HTTP请求至NovelController类的addNovel方法;NovelController类获取请求参数并进行校验,随后调用NovelService类的add方法;NovelServiceImpl类执行具体业务逻辑,如数据校验,检查小说名是否存在,不存在调用NovelMapper接口的insert方法;MyBatis框架根据NovelMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果依次返回到NovelController;NovelController将处理结果封装为HTTP响应返回给前端,显示结果,刷新列表。添加小说信息顺序图如图4-9所示。图4-9添加小说信息顺序图(2)小说阅读功能设计用户访问http://localhost:8080/#/pages/index/index书城界面,选择小说,点击“立即阅读”按钮,前端发送HTTP请求至NovelcontentController类的novelContent方法;NovelController类获取章节内容,随后调用NovelcontentService类的novelName方法;NovelcontentServiceImpl类执行具体业务逻辑,调用NovelcontentMapper接口的novelName方法;MyBatis框架根据NovelcontentMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果依次返回到NovelcontentController;NovelcontentController将处理结果封装为HTTP响应返回给前端,显示结果,刷新列表。小说阅读顺序图如图4-10所示。图4-10小说阅读功能顺序图(3)朗读和定时功能设计用户点击“朗读”后,调用checkAndRead方法,检查是否有可朗读内容、是否支持语音合成,显示定时设置弹窗,用户选择定时时间,调用selectTimer方法,设置selectedTimer,用户点击开始朗读,调用confirmTimer方法,关闭定时设置弹窗,获取当前章节文本,调用beginread方法,初始化语音合成实例,设置语音合成参数,开始朗读,启动定时器,定时器倒计时完成,调用endread方法,停止朗读,弹窗提示,清除定时器,重置状态。朗读和定时功能顺序图如图4-11所示。5.效果图本模块主要包括添加小说信息、朗读和定时、小说阅读等功能。(1)小说列表模块效果图进入“小说列表”界面后,可直接查看小说列表、添加小说信息、修改小说信息、删除小说信息和查询小说信息。小说列表管理模块效果图如图4-12所示。(2)小说阅读模块效果图进入“阅读”界面后,可直接查看小说内容、章节目录等信息;可切换小说章节;可查看小说章节列表,快速跳转;可切换阅读模式;能调整字体大小、排版等阅读参数;可开启语音朗读和定时功能。小说阅读模块效果图如图4-13所示图4-11朗读和定时功能顺序图图4-12小说列表管理模块效果图图4-13小说阅读模块效果图4.2.3书单管理模块设计1.模块功能描述用户在移动端选择自己书架中收藏的小说创建一个自己个性化的书单,管理员在书单列表中对书单进行管理,如编辑书单。2.输入项(1)创建书单,用户输入书单名、简介、添加自己收藏的书并写推荐语,确认添加。3.输出项(1)创建书单,用户输入书单名、简介、添加自己收藏的书并写推荐语,确认添加,我的书单未发布显示刚刚创建的书单。4.实现方式用户访问http://localhost:8080/#/pages/index/index进入书单界面,点击“创建书单”按钮,输入标题、描述,点击“添加书籍”按钮,跳转到添加小说页面,选择小说后,点击选择小说页面“完成”按钮,前端发送HTTP请求至调用ListNovelController类的addListNovel方法,ListNovelController获取小说参数,随后调用ListNovelService类的insert方法;ListNovelServiceImpl类执行具体业务逻辑,如数据校验,并调用ListNovelMapper接口的insert方法;MyBatis框架根据ListNovelMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果返回ListNovelServiceImpl后,Service层进行数据处理,如封装结果对象,再将结果返回ListNovelController;ListNovelController将处理结果封装为HTTP响应返回给前端,显示所选的小说;点击创建书单页面“完成”按钮,前端发送HTTP请求至调用NovelListController类的add方法,NovelListController获取小说参数,随后调用NovelListService类的insert方法;NovelListServiceImpl类执行具体业务逻辑,如数据校验,并调用NovelListMapper接口的insert方法;MyBatis框架根据NovelListMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果依次返回到NovelListController;NovelListController将处理结果封装为HTTP响应返回给前端页面。创建书单顺序图如图4-14所示。图4-14创建书单顺序图5.效果图进入“书单”界面后,可以查看所有书单或者查看自己的书单、创建书单。书单管理模块效果图如图4-15所示。`图4-15书单管理模式效果图4.2.4评论管理模块设计1.模块功能描述评论管理模块主要实现用户在移动端对小说或者书单书友评论中进行评价后,管理员可以进入管理后台书单列表中查看到任意一个用户对任意一本小说的评价以及评论的时间,管理员可以对其进行审核,对言语不当的评价进行删除。管理员可以删除任意一个用户的评论。2.输入项(1)用户评论,用户输入评论,确认发表。3.输出项(1)用户输入评论,确认发表,书友评论中出现自己的评论。4.实现方式用户访问http://localhost:8080/#/pages/index/index进入书城界面,选择小说,点击“写书评”按钮,编写评论后,点击“发表”按钮,前端发送HTTP请求到CommentController类的addComment方法,CommentController类获取请求参数并进行校验,随后调用CommentService类的insert方法;CommentServiceImpl类执行具体业务逻辑,如数据校验,并调用CommentMapper接口的insert方法;MyBatis框架根据CommentMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果依次返回到CommentController;CommentController将处理结果封装为HTTP响应返回给前端,显示结果。用户评论顺序图如图4-16所示。图4-16用户评论顺序图5.效果图进入“书籍详情”界面后,可以查看书籍详情,编写评论等。评论管理模块效果图如图4-17所示。图4-17评论管理模块效果图4.2.5查找小说模块设计1.模块功能描述小说可以根据不同类型查找,可以在排行榜中根据评分、小说是否完结、最近热更、最热门、系统推荐查找,也可以根据书城分类查找,在搜索框中编写关键字查找。2.输入项搜索查找,用户输入关键字,搜索。3.输出项搜索查找,用户输入关键字,搜索,页面显示搜索出的小说。4.实现方式用户访问http://localhost:8080/#/pages/index/index进入书城界面,输入关键字,点击“搜索”按钮后,前端发送HTTP请求至NovelController类的likeNovelOfName方法;NovelController类获取用户名,随后调用NovelService类的likeNovelOfName方法;NovelServiceImpl类执行查询业务逻辑,并调用NovelMapper接口的likeNovelOfName方法;MyBatis框架根据NovelMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果依次返回到NovelController;NovelController将处理结果封装为HTTP响应返回给前端,显示查询结果。查找小说顺序图如图4-18所示。图4-18查找小说顺序图5.效果图进入“搜索”界面后,可以查看搜索历史、搜索推荐和输入关键字查找小说等。查找小说管理模块效果图如图4-19所示。图4-19查找小说管理模块效果图4.2.6收藏管理模块设计1.模块功能描述收藏管理模块主要实现允许用户将感兴趣的小说加入书架,在小说详情页加入书架。2.输入项(1)加入书架,点击加入书架。3.输出项 (1)加入书架,点击加入书架,提示收藏成功,书架中出现此本小说。4.实现方式用户访问http://localhost:8080/#/pages/index/index进入书城界面,选择小说,点击“加入书架”按钮,前端发送HTTP请求到CollectController类的addCollect方法,CollectController类获取请求参数并进行校验是否已登录,随后调用CollectService类的existNovelId方法判断是否收藏这本小说,CollectServiceImpl类执行具体业务逻辑,如数据校验,并调用CollectMapper接口的existNovelId方法;MyBatis框架根据CollectMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果依次返回到CollectController;结果为未收藏,调用CollectService类的insert方法判断是否收藏这本小说,CollectServiceImpl类执行具体业务逻辑,如数据校验,并调用CollectMapper接口的insert方法;MyBatis框架根据CollectMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库插入操作;操作结果依次返回到CollectController;CollectController将处理结果封装为HTTP响应返回给前端,显示结果。加入书架顺序图如图4-20所示。图4-20加入书架顺序图5.效果图进入“书架”界面后,可以查看用户收藏的小说等。收藏管理模块效果图如图4-21所示。图4-21收藏管理模块效果图4.2.7推荐管理模块设计1.模块功能描述推荐管理模块基于用户阅读历史、收藏行为及相似用户偏好,采用协同过滤算法实现个性化小说推荐。推荐结果需实时更新,展示在用户首页和专属推荐板块,包含小说封面、标题、作者、评分及推荐理由。同时支持按类型、热度等维度筛选推荐内容,确保推荐多样性和准确性。2.输入项(1)我的推荐,用户点击此处进行推荐。3.输出项(1)我的推荐,用户点击此处进行推荐,推荐一批新的小说。4.实现方式用户访问http://localhost:8080/#/pages/book/recommend进入推荐界面,点击“点击此处进行推荐!”,前端发送HTTP请求到RecommendControlle类的recommendNovelList方法,RecommendControlle类获取请求参数,随后调用RecommendService类的delete方法清除该用户的历史推荐记录,通过UserServiceImpl类的allUser方法获取所有用户列表,过滤当前用户,通过CollectServiceImpl类的collectOfUserId方法获取收藏列表,封装为UserM对象,调用RecommendControlle类的compare方法计算当前用户与所有用户的杰卡德相似度,按相似度排序并取前10名,通过recommend方法合并相似用户收藏,过滤已读小说,按相似度加权生成推荐得分,调用RecommendService类的insert方法获取该用户的推荐列表,RecommendServiceImpl类执行查询业务逻辑,并调用RecommendMapper接口的insert方法;MyBatis框架根据RecommendMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果依次返回到RecommendControlle;RecommendControlle将处理结果封装为HTTP响应返回给前端,显示查询结果。推荐顺序图如图4-22所示。图4-22推荐顺序图5.、效果图进入“我的推荐”界面后,可以查看推荐小说等。推荐管理模块效果图如图4-23所示。图4-23推荐管理模块效果图4.2.8历史管理模块设计1.模块功能描述历史模块主要实现记录用户看过的小说(阅读历史)以及搜索框中搜索过得小说名。2.输入项(1)阅读历史,选择小说,点击立即阅读。3.输出项(1)阅读历史,选择小说,点击阅读,阅读历史显示此小说。4.实现方式用户访问http://localhost:8080/#/进入书架界面,点击“阅读历史”按钮后,跳转到阅读历史页面,前端发送HTTP请求至HistoryController类的historyOfUserId方法,HistoryController类获取用户id参数,随后调用HistoryService类的historyOfUserId方法,HistoryServiceImpl类执行查询业务逻辑,并调用HistoryMapper接口的historyOfUserId方法,MyBatis框架根据HistoryMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;操作结果依次返回到HistoryController;之后调用NovelService类的novelId方法,NovelServiceImpl类执行查询业务逻辑,调用NovelMapper接口的novelId方法,MyBatis框架根据NovelMapper接口生成动态代理实现类,由该实现类执行SQL语句完成数据库查询操作;Service层进行数据处理,再将结果返回HistoryController,HistoryController将处理结果封装为HTTP响应返回给前端,显示查询结果。阅读历史顺序图如图4-24所示。图4-24阅读历史顺序图5.效果图进入“阅读历史”界面后,可以查看阅读历史小说的时间、类型、名称和评分等,选择小说进入可以直接定位到上一次阅读章节。历史管理模块效果图如图4-25所示。图4-25历史管理模块效果图4.2.9青少年管理模块设计1.模块功能描述青少年管理模块主要用于实现系统限制用户的使用时长。用户可以通过App开启青少年模式,在开启青少年模式时需要通过用户输入退出时长。2.输入项(1)青少年模式,点击青少年模式,输入退出时长,点击确定。3.输出项(1)青少年模式,点击青少年模式,输入退出时长,点击确定,20秒后退出系统,限制时间内无法进入系统。4.实现方式用户访问http://localhost:8080/#/pages/user/user进入用户界面,用户点击“青少年模式”按钮后,调用checkAndEnter方法检查是否已开启青少年模式和是否设置了验证方式;若未开启,则显示设置弹窗,用户选择开启后调用selectMode方法设置状态,并通过confirmMode方法确认开启,关闭弹窗。随后,调用startMode方法初始化青少年模式,获取用户信息,限制功能,筛选适合青少年的内容,并显示青少年模式界面。若设置了使用时间限制,则启动定时器,倒计时完成后调用endMode方法退出青少年模式,弹出提示,清除定时器并重置状态。青少年模式顺序图如图4-26所示。图4-26青少年模式顺序图5.效果图进入“用户”界面后,可以选择青少年模式,限制青少年访问时间。青少年管理模块效果图如图4-27所示。图4-27青少年管理模块效果图4.3本章小结本章先对系统的数据架构进行了全面描述,其次通过定义数据实体、属性及关联关系,规范了数据库表结构,最后对主要功能模块设计,对模块的业务逻辑、输入输出项及如何实现进行说明。

第5章系统运行与测试5.1测试环境5.1.1软件配置(1)Java环境配置在开发系统中安装JDK11,并配置系统环境变量。(2)MySQL数据库版本为8.0.17,图形化界面安装NavicatPremium15.0.27进行操作。(3)项目配置安装IntelliJIDEA软件,版本为2022.1.2,对该软件进行idea自带的Maven工程化的配置,建立本地项目,项目名:nove。(4)浏览器配置安装Google浏览器,版本126.0.6478.183(64位),用于浏览用户端界面进行操作。5.1.2硬件设备操作系统:Windows11家庭版处理器:英特尔(Intel)i5-11300H内存:16GDDR4硬盘:512GB5.2系统主要功能模块测试在对系统各个关键模块的测试中,采用了黑盒测试方式。为了检验各功能模块能否正常工作,达到预定的目标,在进行测试时,设计了大量的测试用例。测试内容主要有用户管理、小说管理、书单管理、评论管理、查找搜索、推荐、阅读历史、青少年模式等。5.2.1用户管理模块测试1.测试方案用户管理功能有添加用户信息、修改用户信息、删除用户信息和查询用户信息等。该模块主要测试添加用户信息、修改用户信息、删除用户信息和查询用户信息的测试。2.测试用例用户模块主要对添加用户信息、修改用户信息、删除用户信息和查询用户信息等功能展开测试,用户模块测试用例如表5-1所示。表5-1用户模块测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-01添加用户信息正确填入客户信息添加成功手机号输入错误添加成功-输入错误格式手机号提示手机号不正确提示手机号不正确-输入相同账号用户名已存在用户名已存在-输入不是6未数字密码提示密码不是6位数提示密码不是6位数-未填入客户信息校验信息,提示手机号不正确校验信息,提示手机号不正确-修改用户信息输入新的数据修改成功,更新新的数据修改失败,还是原先数据输入格式校验未通过或者表单数据未正确绑定删除用户信息点击删除跳出弹窗确认是否删除,点击确定,删除成功用户不存在跳出弹窗确认是否删除,点击确定,删除成功用户不存在-查询用户信息输入用户账号查询到该用户,显示该用户信息查询到该用户,显示该用户信息-点击查询显示全部用户显示全部用户-3.测试效果图添加用户成功测试效果如图5-1所示。图5-1添加用户成功测试效果图修改用户失败测试效果如图5-2所示。图5-2修改用户失败测试效果图删除用户成功测试效果如图5-3所示。图5-3删除用户成功测试效果图查询用户成功测试效果如图5-4所示。图5-4查询用户成功测试效果图5.2.2小说管理模块测试小说列表测试1.测试方案小说列表有添加小说信息、修改小说信息、删除小说信息和查找小说等。设置该模块主要测试小说列表添加小说信息、修改小说信息、删除小说信息和查找小说等的测试。2.测试用例小说列表主要对添加小说信息、修改小说信息、删除小说信息和查找小说等功能展开测试,小说列表测试用例如表5-2所示。表5-2小说模块测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-02添加小说信息正确填入小说信息添加成功添加成功-未输入小说信息提示请填入完整信息提示请填入完整信息-修改小说信息输入新的数据修改成功,更新新的数据修改失败,还是原先数据-删除小说信息点击删除跳出弹窗确认是否删除,点击确定,删除成功小说不存在跳出弹窗确认是否删除,点击确定,删除成功小说不存在-查询小说输入小说名称查询到该小说,显示该用户信息查无此书添加时未录入数据库或者SQL语句出错点击查询显示说有小说信息显示说有小说信息-3.测试效果图添加小说成功测试效果如图5-5所示。图5-5添加小说成功测试效果图修改小说信息成功测试效果如图5-6所示。删除小说成功测试效果如图5-7所示。查询小说失败测试效果如图5-8所示。图5-6修改小说信息成功测试效果图图5-7删除小说成功测试效果图图5-8查询小说失败测试效果图阅读小说测试1.测试方案阅读小说有查看小说详情、小说阅读、阅读目录、设置夜间模式、设置排版、设置翻页模式、设置繁体字、听书定时等。设置该模块主要测试查看小说详情、小说阅读、阅读目录、设置夜间模式、设置排版、设置翻页模式、设置繁体字、听书定时等的测试。2.测试用例阅读小说主要对查看小说详情、小说阅读、阅读目录、设置夜间模式、设置排版、设置翻页模式、设置繁体字、听书定时等功能展开测试,阅读小说测试用例如表5-3所示。表5-3阅读小说测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-03小说详情选择小说显示小说详情显示小说详情-小说阅读点击立即阅读显示小说内容加载中正在加载数据,数据过多阅读目录点击目录显示目录信息显示目录信息-设置夜间模式点击日间变成夜间模式变成夜间模式-设置排版点击设置,选择排版方式排版格式变化排版格式变化-设置翻页模式点击设置,选择翻页方式更换翻页模式更换翻页模式-设置繁体字点击设置,选择繁体字体变成繁体字字体变成繁体字-听书定时选择定时时长结束后提示定时结束提醒结束后提示定时结束提醒-3.测试效果图小说详情成功测试效果如图5-9所示。小说阅读失败测试效果如图5-10所示。阅读目录成功效果如图5-11所示。设置夜间模式成功测试效果如图5-12所示。设置排版成功测试效果如图5-13所示。设置翻页模式成功测试效果如图5-14所示。设置繁体字成功测试效果如图5-15所示。听书定时成功测试效果如图5-16所示。图5-9小说详情成功测试效果图图5-10小说阅读失败测试效果图图5-11阅读目录成功测试效果图图5-12设置夜间模式成功测试效果图图5-13设置排版成功测试效果图图5-14设置翻页模式成功测试效果图图5-15设置繁体字成功测试效果图图5-16听书定时成功测试效果图5.2.3书单管理模块测试书单列表测试1.测试方案书单列表有修改书单信息、删除书单信息、查看书单信息和查询书单等。设置该模块主要测试书单信息、删除书单信息、查看书单信息和查询书单等的测试。2.测试用例书单列表主要对修改书单信息、删除书单信息、查看书单信息和查询书单等功能展开测试,书单列表测试用例如表5-4所示。表5-4书单列表测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-04修改书单详情输入修改的信息修改成功修改失败,数据没有修改成功前端传递的id参数为空、非数字或对应书单已被删除删除书单点击删除删除成功删除成功-查看书单点击查看查看书单内容查看书单内容-查询书单输入书单名称查询到书单查询到书单-点击查询显示所有书单信息显示所有书单信息-3.测试效果图修改书单详情失败效果如图5-17所示。图5-17修改书单详情失败效果图删除书单成功效果如图5-18所示。图5-18删除书单成功询效果图查看书单成功效果如图5-19所示。查询书单成功效果如图5-20所示。图5-19查看书单成功效果图图5-20查询书单成功效果图我的书单测试1.测试方案我的书单有我的书单查看、书单详情、发布书单、编辑书单信息和删除书单信息等。设置该模块主要测试我的书单查看、书单详情、发布书单、编辑书单、删除书单等的测试。2.测试用例书单列表主要对我的书单查看、书单详情、发布书单、编辑书单信息和删除书单信息等功能展开测试,书单列表测试用例如表5-5所示。表5-5我的书单测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-05我的书单查看点击我的书单跳转书单页面跳转书单页面-书单详情点击书单显示书单详情显示书单详情-发布书单点击查看发布中有此书单,书单列表状态为发布,并有发布时间。发布成功,书单列表状态为发布,并有发布时间。关联表插入失败,在插入list_novel表时,novelId无效删除书单点击删除图标书单不再显示,后台书单列表找不到此书单。书单不再显示,后台书单列表找不到此书单。-3.测试效果图我的书单查看效果如图5-21所示。图5-21我的书单查看效果图书单详情成功效果如图5-22所示。发布书单失败效果如图5-23所示。删除书单成功效果如图5-24所示。图5-22书单详情成功询效果图图5-23查看书单成功效果图图5-24删除书单成功效果图5.2.4评论管理模块测试评论列表测试1.测试方案评论列表有删除评论信息等。设置该模块主要测试删除评论等的测试。2.测试用例评论列表主要对删除评论信息等功能展开测试,评论列表测试用例如表5-6所示。表5-6评论列表测试用例测试编号测试项输入数据预期结果实际结果结果分析CS-06管理员评论列表删除评论点击删除删除成功删除失败,但是数据已被删除前端获取返回值时错误删除成功-3.测试效果图管理员评论列表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论