前端代码说明

components

AccountManage.vue

这个页面提供了用户管理功能,用户可以查看和编辑个人信息,包括头像、昵称、生日、手机号、邮箱、性别、个性签名和常住地。此外,用户还可以修改密码和注销账户。

ArticleManage.vue

这个页面提供了文章管理功能,用户可以查看、搜索、编辑和删除文章。

ArticlePage.vue

这个页面展示了一篇文章的详细内容和评论,用户可以阅读文章、发表评论和点赞文章。

CategoryManage.vue

这个页面提供了分类管理功能,用户可以搜索、添加、编辑和删除分类,并通过分页组件进行数据分页和导航。

LabelManage.vue

这个页面提供了标签管理功能,用户可以搜索、添加、编辑和删除标签,并通过分页组件进行数据分页和导航。

LookArticle.vue

这个页面提供了查看文章功能,用户可以搜索文章并查看文章列表,通过点击按钮查看具体的文章内容,并通过分页组件进行数据分页和导航。

MainPage.vue

这个导航栏组件展示了一个包含Logo图标和导航链接的导航栏,通过点击导航链接可以切换到不同的页面。导航链接具有样式设置和鼠标悬浮效果,提供了发表文章、查看文章、编辑分类和编辑标签的功能。

WriteArticle.vue

这个页面组件用于撰写文章,提供了填写文章信息的表单,包括文章图片上传、标题、分类、概要和内容等字段,并可以选择发布文章或保存为草稿。在提交表单时进行验证,并根据用户的选择发送相应的请求。

views

IndexView.vue

这是一个包含顶栏和主要区域的页面组件。顶栏包含了标题和菜单栏,菜单栏提供了主页、消息中心、文章管理和用户相关操作的选项。主要区域容器通过路由展示不同的内容。页面在加载时会验证用户身份,并根据验证结果决定是否显示页面内容。

LoginView.vue

这是一个登录页面的组件,包含了登录表单和背景图片轮播。用户可以输入账号和密码进行登录,还可以选择记住密码的选项。页面提供了注册的链接,点击后跳转到注册页面。底部显示版权信息。

RegisterView.vue

这是一个注册页面的组件,包含了注册表单和背景渐变动画效果。用户可以填写账号、密码、昵称、生日、性别、常住地、电话号码、电子邮箱和个性签名等信息,并上传头像。页面提供了注册按钮和登录链接,点击注册按钮后进行表单验证并发送注册请求,点击登录链接后跳转到登录页面。底部显示版权信息。

后端代码说明

config

MybatisPlusConfig

这是一个MyBatis Plus的配置类,用于配置MyBatis Plus的分页插件。

该配置类的作用是启用MyBatis Plus的分页插件,通过配置拦截器实现分页功能。

WebAppConfigurer

这是一个Spring MVC的配置类,用于配置跨域请求和配置图片的虚拟路径。

该配置类的作用是配置跨域请求,允许不同域名的客户端访问接口,并配置图片的虚拟路径,使得可以通过指定URL访问存储在指定路径下的图片。

controller

PageParam

这是一个用于接收分页查询参数的Java类PageParam

通过使用该类,可以方便地封装分页查询的参数,从而在控制器中接收并处理分页查询请求。

ArticleController

该代码文件是一个文章相关的控制器,包括分页查询用户文章列表、新增文章、删除文章、更新文章、阅读文章、点赞文章、发表评论等功能的实现。同时还包含文件上传、查询草稿文章、获取特定用户写的文章列表等方法。

CategoryController

该代码文件是一个分类相关的控制器,包括分页查询用户分类列表、新增分类、删除分类、更新分类等功能的实现。同时还包含根据分类id查询单个分类、分类封号/解封等方法。

LabelController

该代码文件是一个标签相关的控制器,包括分页查询用户标签列表、新增标签、删除标签、更新标签等功能的实现。同时还包含根据标签id查询单个标签、标签封号/解封等方法。

ManageController

该代码文件是管理员相关的控制器,包括管理员登录和新增管理员功能的实现。在登录功能中,根据管理员输入的用户名和密码,通过查询数据库验证管理员身份。在新增管理员功能中,判断管理员名称是否已存在,然后将管理员信息保存到数据库中。

UserController

该代码文件是用户相关的控制器,包括用户登录、用户注销、用户封号/解封、用户头像上传、用户列表查询、用户添加、用户信息修改等功能的实现。其中,登录功能通过查询数据库验证用户身份,注销功能通过逻辑删除用户,封号/解封功能修改用户状态,头像上传功能将用户头像文件上传到指定路径,列表查询功能实现用户的分页查询,添加功能新增用户,查询功能根据用户ID或用户名查询用户信息,修改功能修改用户的各项信息。

entity

ResultVO

该代码文件定义了一个自定义的结果集类ResultVO,用于封装返回给前端的JSON对象。该类继承自HashMap<String, Object>,通过重写put方法实现链式调用。该类提供了一系列静态方法用于创建不同类型的结果集,如成功的结果集、失败的结果集,可以设置消息、状态码等信息。在创建结果集时,会自动设置code、desc、msg等键值对。

Article

该代码文件定义了一个文章实体类Article,用于映射数据库中的文章表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名、逻辑删除等。其中,分类对象和创建者对象为非数据库字段,用于级联查询。该类实现了Serializable接口,以支持序列化。

ArticleLabel

该代码文件定义了一个文章标签实体类ArticleLabel,用于映射数据库中的文章标签表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。其中,文章对象和标签对象为非数据库字段,用于级联查询。该类实现了Serializable接口,以支持序列化。

ArticleUser

该代码文件定义了一个文章点赞实体类ArticleUser,用于映射数据库中的文章点赞表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。其中,文章对象和用户对象为非数据库字段,用于级联查询。该类实现了Serializable接口,以支持序列化。

Category

该代码文件定义了一个分类实体类Category,用于映射数据库中的分类表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。其中,创建者对象为非数据库字段,用于级联查询。该类实现了Serializable接口,以支持序列化。

Label

该代码文件定义了一个标签实体类Label,用于映射数据库中的标签表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。其中,创建者对象为非数据库字段,用于级联查询。该类实现了Serializable接口,以支持序列化。

Manager

该代码文件定义了一个管理员实体类Manager,用于映射数据库中的管理员表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。该类实现了Serializable接口,以支持序列化。

Remark

该代码文件定义了一个评论实体类Remark,用于映射数据库中的评论表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。该类实现了Serializable接口,以支持序列化。该类还包含了评论用户对象和评论文章对象的字段,用于进行级联查询。

User

该代码文件定义了一个用户实体类User,用于映射数据库中的用户表。该类使用了Lombok库的@Data注解,自动生成getter、setter、toString等方法。该类的字段与数据库表的列一一对应,并使用了MyBatis-Plus注解进行配置,包括表名、主键、字段名等。该类实现了Serializable接口,以支持序列化。该类还包含了用户头像路径、用户生日、用户性别等字段,用于描述用户的个人信息。该类还包含了用户状态和用户账号状态的字段,用于表示用户的状态信息。

mapper

ArticleLabelMapper

该代码文件是针对”article_label”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为ArticleLabel。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

ArticleMapper

该代码文件是针对”article”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为Article。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

ArticleUserMapper

该代码文件是针对”article_user”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为ArticleUser。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

CategoryMapper

该代码文件是针对”category”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为Category。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

LabelMapper

该代码文件是针对”label”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为Label。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

ManagerMapper

该代码文件是针对”manager”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为Manager。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

RemarkMapper

该代码文件是针对”remark”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为Remark。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

UserMapper

该代码文件是针对”user”表的数据库操作Mapper接口。它继承自MyBatis-Plus的BaseMapper接口,并指定了操作的实体类为User。该接口不需要额外的方法定义,可以直接使用BaseMapper中提供的方法来进行数据库操作。

service

impl

ArticelLabelServicelmpl

该代码文件是针对”article_label”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为ArticleLabelMapper,实体类为ArticleLabel。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了ArticleLabelService接口。

ArticleServicelmpl

该代码文件是针对”article”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为ArticleMapper,实体类为Article。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了ArticleService接口。

ArticleUserServicelmpl

该代码文件是针对”article_user”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为ArticleUserMapper,实体类为ArticleUser。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了ArticleUserService接口。

CategoryServicelmpl

该代码文件是针对”category”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为CategoryMapper,实体类为Category。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了CategoryService接口。

LabelServicelmpl

该代码文件是针对”label”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为LabelMapper,实体类为Label。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了LabelService接口。

ManagerServicelmpl

该代码文件是针对”manager”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为ManagerMapper,实体类为Manager。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了ManagerService接口。

RemarkServicelmpl

该代码文件是针对”remark”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为RemarkMapper,实体类为Remark。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了RemarkService接口。

UserServicelmpl

该代码文件是针对”user”表的数据库操作Service实现类。它继承自MyBatis-Plus的ServiceImpl类,并指定了Mapper接口为UserMapper,实体类为User。通过@Service注解标记该类为Service组件,用于进行业务逻辑的处理。该实现类已经继承了ServiceImpl中提供的基本数据库操作方法,并实现了UserService接口。

ArticleLabelService

该代码文件是针对”article_label”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为ArticleLabel。该接口定义了对”article_label”表进行数据库操作的方法,包括基本的增删改查等操作。

ArticleService

该代码文件是针对”article”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为Article。该接口定义了对”article”表进行数据库操作的方法,包括基本的增删改查等操作。

ArticleUserService

该代码文件是针对”article_user”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为ArticleUser。该接口定义了对”article_user”表进行数据库操作的方法,包括基本的增删改查等操作。

CategoryService

该代码文件是针对”category”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为Category。该接口定义了对”category”表进行数据库操作的方法,包括基本的增删改查等操作。

LabelService

该代码文件是针对”label”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为Label。该接口定义了对”label”表进行数据库操作的方法,包括基本的增删改查等操作。

ManagerService

该代码文件是针对”manager”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为Manager。该接口定义了对”manager”表进行数据库操作的方法,包括基本的增删改查等操作。

RemarkService

该代码文件是针对”remark”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为Remark。该接口定义了对”remark”表进行数据库操作的方法,包括基本的增删改查等操作。

UserService

该代码文件是针对”user”表的数据库操作Service接口。它继承自MyBatis-Plus的IService接口,并指定了实体类为User。该接口定义了对”user”表进行数据库操作的方法,包括基本的增删改查等操作。

util

FileUploadUtil

该代码文件是一个文件上传工具类,用于将MultipartFile对象上传到指定目录中。它包含以下功能:

  1. upload方法:用于上传文件。接收一个目录路径(dirPath)和MultipartFile对象(file),并返回上传后的文件名(fileName)。方法内部会对文件名进行重新组装,并判断目录是否存在,然后将文件写入磁盘中。

  2. generateFilePath方法:用于生成文件路径。接收一个文件名(fileName),通过UUID生成一个唯一的文件名,并保持与原始文件名的后缀一致。

该工具类依赖于Apache Commons IO库的FileUtils类来实现文件的复制操作。它通常用于在Web应用中处理文件上传功能。