晋江文学城的鸿蒙开发

晋江文学城的鸿蒙开发

大三上的期末课设,团队作业,由于时间问题,我在这边贡献不是很大,做个记录 一、设计需求 1.1 功能清单

大三上的期末课设,团队作业,由于时间问题,我在这边贡献不是很大,做个记录

一、设计需求

1.1 功能清单

书城界面

(1)书城首页顶部轮播图展示,左上角显示简介;

(2)推荐书目板块,显示三本推荐的书籍,包括书名和封面;

(3)热门书目板块,显示三本热门书籍,包括书名和封面;

(4)所有书籍板块,显示数据库中所有的书籍,包括书名、作者、简介和封面;

(5)筛选功能,有几个标签按钮可供选择进行书籍筛选,选择后会更新显示的书籍数量,并将书籍列表展示在所有书籍板块;

(6)管理员功能,可以编辑书籍的封面、书名、作者、字数、状态和简介;

(7)点击书籍可跳转至对应的书籍详情页面。

书架界面

(1)新书千字榜板块,横向滚轮显示前几本新书榜的书籍,包括书名和封面,点击更多可跳转至新书千字榜,查看新书千字榜所有书籍;

(2)顶部导航栏包括收藏、收藏作者、书单、关注作者、已阅列表,点击可跳转至对应页面;

(3)最近阅读板块,展示用户最近阅读过的书籍,包括封面、书名、作者、状态、标签和字数;

(4)收藏夹板块,展示用户创建的收藏夹以及加入收藏夹的书籍列表;

(5)收藏作者板块,展示用户已关注的作者列表;

(6)点击书籍可跳转至对应的书籍详情页面。

发现界面

(1)搜索栏板块,包括搜索条件、搜索栏输入框和搜索图标,搜索条件包括书名、作者和标签,可供用户选择按什么条件搜索,输入搜索内容点击搜索图标后跳转至搜索界面显示搜索结果;

(2)大家都在看板块,展示热门书籍列表,包括书名和对应简介;

(3)猜你喜欢板块,展示用户可能爱看的书籍列表,包括书名、作者、状态、标签和字数,右侧有一个按钮可以选择显示或关闭该板块;

(4)点击书籍可跳转至对应的书籍详情页面。

我的界面

(1)未登录状态下,有登录和注册按钮,提供用户登录或者注册功能;

(2)登陆后,可进行切换账号或退出登录操作;

(3)账号安全板块,可跳转至对应页面进行修改密码、手机号和邮箱信息;

(4)基本信息板块,可跳转至对应页面进行修改头像、昵称信息;

(5)发出评论板块,可跳转至对应页面查看用户当前所有的评论留言信息;

(6)足迹板块,可跳转至对应页面查看用户当前已浏览过的书籍信息列表,可以删除记录。

书籍详情界面

(1)显示书籍信息,包括书名、作者、标签、状态、简介和书名等信息;

(2)作者专栏板块,点击后跳转至对应页面可查看作者信息、作者所有作品,还可关注作者等操作;

(3)收藏板块,点击可将对应书籍加入想要的收藏夹,同时可以新建收藏夹;

(4)开始阅读板块,点击可跳转至阅读页面进行阅读;

(5)目录板块,点击可跳转至目录页面显示目录信息,包括章节数、章节名称、章节简介,还可正序或倒序显示;

(6)导入章节模块,点击可以将txt文件内容导入对应书籍;

(7)评论模块,包括输入栏和发送按钮,可以查看所有用户对该书的评论,也可发表评论。

阅读界面

(1)内容部分,展示书籍的文本内容,可供阅读;

(2)右上角设置里可以修改文本字体、翻页方式,还可切换夜间或日间模式

(3)底部导航栏,包括翻页按钮和跳转至目录按钮;

(4)左上角有返回退出阅读按钮,同时显示当前阅读章节。

二、主体框架

2.1 总体架构

 

 

图2-1总体架构图

 

2.2 数据流向

数据类型

数据流向

用户登录/注册

用户输入信息 → 客户端(UserLoginInfo.ets)→ 服务器(UserController)→ 数据库(MySQL)→ 客户端存储(偏好存储)→ 界面显示

书籍数据

服务器(BookController)→ 客户端(BookStore.ets)→ 界面显示(书城、书架、详情页)

评论数据

用户输入评论 → 客户端(BookController)→ 服务器(BookController)→ 数据库(MySQL)→ 客户端显示(书籍详情页)

收藏夹数据

用户操作 → 客户端(FavoriteController)→ 服务器(FavoriteController)→ 数据库(MySQL)→ 客户端显示(书架、收藏夹)

阅读记录

用户阅读行为 → 客户端(RecentReadDao)→ 服务器(UserController)→ 数据库(MySQL)→ 客户端显示(足迹页)

 

 

三、服务端数据库的设计

3.1 数据库

序号

表名

功能

1

t_author

 作者表

2

t_book

书籍表

3

t_book_comment

评论表

4

t_book_fav

收藏书籍表

5

t_chapter

章节表

6

t_chapter_content

内容表

7

t_favorite

收藏夹表

8

t_follow

关注表

9

t_follow_author

关注作者表

10

t_read_history

最近阅读表

11

t_user

用户表

3.2 E-R图

 

图3-1 E-R图

3.3 各表的设计

3.2.1 作者表(t_author)

 

 

图3-2 作者表图

 

3.2.2 书籍表(t_book)

 

 

图3-3 书籍表图

3.2.3 评论表(t_book_comment)

 

 

图3-4 评论图

3.2.4 收藏书籍表(t_book_fav)

 

 

图3-5 收藏书籍图

3.2.5 章节表(t_chapter)

 

 

图3-6 章节表图

3.2.6 内容表(t_chapter_content)

 

 

图3-7 内容表图

3.2.7 收藏夹表(t_chapter_content)

 

 

图3-7 收藏夹表图

3.2.8 关注表(t_chapter_content)

 

 

图3-7 关注表图

3.2.9 关注作者表(t_follow_author)

 

图3-7 关注作者表图

3.2.10 最近阅读表(t_read_history)

 

图3-7 最近阅读表图

3.2.11 用户表(t_user)

 

图3-7 用户表图

 

 

四、具体实现

4.1 代码的组成

4.1.1 客户端代码组成说明

文件夹名

核心文件

主要功能

db

BookStore.ets,DataCenter.ets

本地 SQLite 封装:17 张表创建、事务、缓存、统计算法;一开关(USE_REMOTE)决定走本地 SQLite 还是远程 Tomcat

model

*Data.ets

与后端字段 1:1 映射的 15 个类型定义

net

RemoteBookStore.ets,Api.ets

后端 30 + 个 REST 接口的 ArkTS 客户端封装;含 multipart 上传;统一出口:注册/登录/收藏/搜索/轮播/专栏等 20 + 接口

pages

*Page.ets

存放所有页面组件,包括书城、书架、发现、我的等页面,以及书籍详情、阅读界面等。

user

UserLoginInfo.ets

内存单例 + Preferences 持久化;事件总线通知各页刷新

utils

BookParser.ets,PreferencesUtils.ets

TXT 正则拆章;epub 预留接口;选中历史、用户、收藏等 key-value 封装

entryability

EntryAbility.ets

应用入口能力

common

EntryContext.ets

全局 AbilityContext 单例,供图片/数据库/Preferences 使用

4.1.2 服务端代码组成说明

模块

主要文件

主要功能

控制器层

AuthorController.java

处理作者相关请求,如获取作者信息、作品列表等。

BookController.java

处理书籍相关请求,如书籍列表、搜索、详情、评论等。

ChapterController.java

处理章节相关请求,如章节列表、内容、最新章节等。

FavoriteController.java

处理收藏夹相关请求,如收藏夹列表、书籍收藏等。

UserController.java

处理用户相关请求,如注册、登录、信息更新、头像更新等。

饮食记录子模块

AuthorDao.java

提供作者数据的增删改查操作。

BookDao.java

提供书籍数据的增删改查操作。

ChapterDao.java

提供章节数据的增删改查操作。

FavoriteDao.java

提供收藏夹数据的增删改查操作。

RecentReadDao.java

提供用户阅读记录的增删改查操作。

UserDao.java

提供用户数据的增删改查操作。

工具类

JDBCUtil.java

提供数据库连接和关闭操作的工具方法。

模型层

 

Author.java

定义作者实体类。

Book.java

定义书籍实体类。

Chapter.java

定义章节实体类。

ChapterContent.java

定义章节内容实体类。

Favorite.java

定义收藏夹实体类。

FollowAuthorVO.java

定义关注作者的视图对象。

UserCommentV0.java

定义用户评论的视图对象。

UserEntity.java

定义用户实体类。

4.2 文件清单

4.2.1 核心页面文件清单

序号

文件名

主要功能

1

BookMallPage.ets

书城页面,展示书籍列表、轮播图、筛选功能等。

2

BookshelfPage.ets

书架页面,展示用户的收藏夹、最近阅读、收藏作者等。

3

DiscoverPage.ets

发现页面,展示搜索栏、热门书籍、猜你喜欢等。

4

ProfilePage.ets

我的页面,展示用户信息、账号安全、基本信息等。

5

BookDetailPage.ets

书籍详情页面,展示书籍信息、作者专栏、评论等。

6

ReadPage.ets

阅读页面,展示书籍内容,支持翻页、字体调整等。

7

CatalogPage.ets

目录页面,展示书籍章节列表,支持排序和搜索。

8

Login.ets

登录:墨绿渐变、图标输入框、事件总线

9

Register.ets

注册:同名检查、手机号、邮箱、笔名

10

SearchResultPage.ets

搜索结果:书名/作者/标签三通道

11

AuthorPage.ets

作者主页:头像、签名、完结/连载列表、关注

12

NewBookPage.ets

新书榜:横向分类、多选筛选、标签换行

13

AccountSecurityPage.ets

账号安全:改密码、手机号、邮箱

14

BasicInfoPage.ets

基本信息:头像(图库)、昵称、实时预览

15

UserCommentPage.ets

我的评论:左头像、绿色书名、时间

16

FootprintPage.ets

我的足迹:最近 30 本、滑动删除

17

AdminPage.ets

简易后台:书籍 CRUD、实时刷新、弹窗编辑

18

CollectListPage.ets

收藏列表:复用 ArticleItem 组件

 

4.2.2 组件文件清单

序号

文件名

主要功能

1

ArticleItem.ets

文章列表项组件,展示单个文章的标题、作者、简介等。

2

CatalogItem.ets

目录项组件,展示单个章节的标题、更新时间等。

3

ChapterContent.ets

章节内容组件,展示章节的正文内容。

4

FollowAuthorItem.ets

关注作者项组件,展示作者头像、笔名、签名等。

5

UserCommentItem.ets

用户评论项组件,展示单条评论的内容、作者、时间等。

4.2.3 数据模型文件清单

序号

文件名

对应后端实体

1

NewBookItem.ets

t_book

2

HotBookItem.ets

hot_books

3

ChapterContent.ets

t_chapter_content

4

CatalogData.ets

t_chapter

5

User.ets

t_user

6

Response.ets

R<T>

7

Article.ets

轮播/专栏/问答

8

ArtcleItemBean.ets

文章卡片

9

Tree.ets

知识体系

10

Search.ets

热词

11

Recommend.ets

猜你喜欢

12

Pair.ets

通用键值对

13

NovelItem.ets

小说卡片

4.2.4 工具类文件清单

序号

文件名

主要功能

1

BookParser.ets

TXT 正则拆章;epub 预留

2

CollectUtils.ets

收藏/取消收藏封装

3

LogUtils.ets

hilog 二次封装

4

PreferencesUtils.ets

Preferences 读写

 

RouterUtils.ets

路由跳转

 

StringUtils.ets

资源字符串同步获取

 

Toast.ets

轻提示

 

WindowUtils.ets

窗口宽高获取

4.2.5 数据库操作文件清单

序号

文件名

主要功能

1

BookStore.ets

提供书籍数据的本地存储和操作方法。

2

RemoteBookStore.ets

提供书籍数据的远程存储和操作方法,与服务器端交互。

3

DataCenter.ets

提供数据存储的统一接口,根据配置选择本地或远程存储。

4.2.6 接口定义文件清单

序号

接口名

后端路径

主要功能

1

/api/book/list

GET

全部书籍

2

/api/book/hot

GET

热门 10 本

3

/api/book/new

GET

新书干字榜 Top20

4

/api/book/search

GET

书名模糊

5

/api/book/searchByAuthor

GET

作者模糊

6

/api/book/searchByTag

GET

标签模糊

7

/api/book/detail

GET

单本详情

8

/api/book/update

POST

管理员更新

9

/api/book/uploadChapters

POST

TXT 批量上传

10

/api/book/comment

GET/POST

评论列表/发表

11

/api/chapter/list

GET

章节目录

12

/api/chapter/content

GET

单章正文

13

/api/chapter/latest

GET

最新章节

14

/api/user/register

POST

注册

15

/api/user/login

POST

登录

16

/api/user/info

GET

用户信息

17

/api/user/updateInfo

POST

更新资料

18

/api/user/updatePassword

POST

修改密码

19

/api/user/updateAvatar

POST

更换头像

20

/api/user/recentRead

GET

最近阅读

21

/api/user/addRecentRead

POST

写入阅读历史

22

/api/user/removeRecentRead

POST

删除单条记录

23

/api/user/fav/list

GET

收藏夹列表

24

/api/user/fav/

POST

新建收藏夹

25

/api/user/fav/collect

POST

收藏书籍

26

/api/user/fav/uncollect

POST

取消收藏

27

/api/user/followAuthor/list

GET

已关注作者

28

/api/user/followAuthor/add

POST

关注

29

/api/user/followAuthor/remove

POST

取消关注

30

/api/user/updateSpecialFollow

POST

设为特别关注

31

/api/author

GET

作者主页

4.2.7 资源文件清单

序号

文件类型

典型文件

主要功能

1

icon

ic_back.png

统一返回箭头

2

cover

newbook_cover1~10.jpg

默认书籍封面

3

logo

logo1.png

启动图标

4

color

color.json

主色 #ff23ae94

5

string

strings.json

中英双语

6

float

float.json

间距/字号

4.2.8 配置文件清单

序号

文件名

主要功能

1

module.json5

包名、权限、设备类型、入口 Ability

2

main_pages.json

18 个页面路由

3

backup_config.json

自动备份开关

4.2.9 页面布局文件清单

序号

页面名称

布局特点

主要文件

1

书城页面

纵向滚动布局

BookMallPage.ets

2

书架页面

网格+卡片布局

BookshelfPage.ets

3

发现页面

列表+卡片布局

DiscoverPage.ets

4

我的页面

分栏布局

ProfilePage.ets

5

书籍详情页面

分层信息展示

BookDetailPage.ets

6

阅读页面

数据可视化布局

ReadPage.ets

7

目录页面

列表布局

CatalogPage.ets

8

用户评论页面

社交化布局

UserCommentPage.ets

9

足迹页面

列表布局

FootprintPage.ets

4.2.10 路由配置清单

序号

路由名称

目标页面

参数说明

1

书城页面

BookMallPage.ets

2

书架页面

BookshelfPage.ets

3

发现页面

DiscoverPage.ets

4

我的页面

ProfilePage.ets

5

书籍详情页面

BookDetailPage.ets

bookId:书籍 ID

6

阅读页面

ReadPage.ets

bookId:书籍 ID,chapterId:章节 ID

7

目录页面

CatalogPage.ets

bookId:书籍 ID

8

用户评论页面

UserCommentPage.ets

9

足迹页面

FootprintPage.ets

 

五、使用说明

5.1开屏图

运行后会展示开屏动画页面

 

5.2登录注册界面

未登录状态下点击“我的”页面中的登录或者注册按钮即可跳转至登录或注册页面。

在注册页面按提示分别输入信息,最后点击注册按钮即可注册成功。

在注册页面可以选择是否显示密码。

也可以点击“已有账号?立即登录”跳转至登陆页面。

 

 

在登录页面输入用户的账号和密码,再点击登录按钮即可登录成功,并跳转至书城页面,同时,“我的”页面也会更新成登陆状态,显示用户的头像和笔名。

在登录页面可以选择是否显示密码。

 

5.3书城界面

书城页面顶部是轮播图动画展示。

下方反别是推荐书目专栏、热门书目专栏和所有书目专栏。前两者只显示对应书籍列表中的前三本。

在轮播图和推荐专栏之间有一行标签筛选栏,可以点击想要的标签筛选出对应的书籍,下方小字提示筛选后的书籍数量,筛选结果显示在所有书籍专栏。

在书城页面最下方有一个管理的按钮,点击即可跳转至简单管理员页面。在该页面会显示所有书籍列表,点击对应书籍下方的编辑按钮即可修改书籍相关的信息,点击保存后实现修改书籍信息的功能。

 

5.4发现界面

页面由搜索栏、大家都在看板块和猜你喜欢板块构成。

大家都在看展示一些热门书籍,点击书名即可跳转至对应书籍的详情页面。

点击猜你喜欢右侧的按钮,可以关闭猜你喜欢。

点击搜索栏左侧,可以选择筛选方法,总共3种,分别为书名,作者,标签。

 

 

 

搜索功能

 

 

 

 

点击文本后,会跳转到该书的详情页

5.5书架界面

书架页面由收藏、收藏作者两个板块构成。

收藏板块包含收藏夹、最近阅读和新书千字榜。

收藏作者板块包含用户已关注的所有作者列表。

如图,点击收藏作者即可显示已关注的作者。

最近阅读显示最近浏览过的书籍列表信息。

点击收藏夹会显示用户添加在对应收藏夹中的书籍信息列表。

 

点击更多,进入新书千字榜

可以点击标签筛选对应的书籍。

 

5.6书籍详情页界面

书籍详情页面由书籍信息、作者专栏板块、收藏板块、阅读板块、目录板块、导入板块和评论板块构成。

 

点击收藏可以收藏该书,并且会跳出弹窗,可以选择收藏到哪个文件夹,点击弹窗右上角的+,可以创建新收藏夹,收藏夹在书架界面会展示出来

 

 

 

 

点击目录,可以实现倒叙升序展示章节

 

点击开始阅读或者某个章节,跳转到该书的阅读界面,能够实现书页不同方式滚动,调节字体大小和调节日间或者夜间。

 

点击导入章节可以实现本地导入

 

 

点击作者专栏进入该作者主页

最下方可以在输入栏输入内容并点击右侧发送按钮实现评论功能。

同时会展示当前该书籍的所有评论信息,包括用户的头像、昵称、评论内容和评论时间。

 

5.7我的界面

未登录状态显示默认头像,右侧提示登入或注册。同时点击其他图标都会跳转至登陆页面。

用户登陆后会切换成登陆状态,包括用户头像、昵称,新增切换账号和退出登录的按钮,点击可实现对应功能。

点击账号安全能够实现邮箱、手机号和密码的更改

 

点击基本信息按钮,能够查看自己的个人信息,实现更改头像和昵称的功能

 

 

点击我的评论,可以查看我的所有评论

 

点击足迹,会显示我刚刚看过的所有书,足迹可以按删除,进行单条删除

LICENSED UNDER CC BY-NC-SA 4.0
评论