发表于: 2020-06-17 23:32:27
1 1872
今天完成的事情:
完成了所有接口文档,在这过程中发现原先表设计的不足,新加了一张留言回复reply表方便管理留言回复:
所有接口文档如下:
1 登录接口
请求地址:POST /a/login
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
username | string | 用户名 | 是 | |
password | string | 密码 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
2 Banner管理
2.1 新增banner
请求地址:POST /a/u/banner
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
url | string | 作品链接 | 是 | |
img | string | 配图 | 是 | |
state | number | 状态 | 是 | 1为上架,0为不上架 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
2.2 删除banner
请求地址:DELETE /a/u/banner/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
2.3 修改banner
请求地址:PUT /a/u/banner/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
url | string | 作品链接 | 是 | |
img | string | 配图 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
2.4 上架下架banner
请求地址:PUT /a/u/banner/state/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | banner状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
2.5 查询单个banner
请求地址:GET /a/u/banner/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 自增主键 |
url | string | 作品链接 |
img | string | 配图 |
state | number | banner状态 |
createBy | string | 创建人 |
createAt | number | 创建时间 |
updateAt | number | 更新时间 |
2.6 按照条件查询banner
请求地址:GET /a/u/banner/list
请求参数:
字段 | 类型 | 说明 | 是否必填 |
---|---|---|---|
state | number | banner状态 | 否 |
createBy | string | 创建人 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 自增主键 |
url | string | 作品链接 |
img | string | 配图 |
state | number | banner状态 |
createBy | string | 创建人 |
createAt | number | 创建时间 |
updateAt | number | 更新时间 |
3 留言管理
3.1 新建留言
请求地址:POST /a/u/message
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
createBy | string | 留言人名称 | 否 | |
content | string | 留言内容 | 是 | |
title | string | 作品名称 | 是 | |
state | number | 留言状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
3.2 删除留言
请求地址:DELETE /a/u/message/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
3.3 编辑留言状态
请求地址:PUT /a/u/message/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | 留言状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
3.4 查询留言
请求地址:GET /a/u/message/list
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
title | string | 作品名称 | 否 | |
state | number | 留言状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | id |
title | string | 作品名称 |
createBy | string | 留言游客昵称 |
state | number | 留言状态 |
createAt | number | 留言时间 |
updateAt | number | 后台修改时间 |
updateBy | string | 编辑人 |
3.5 查看留言详情
请求地址:GET /a/u/message/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | id |
title | string | 作品名称 |
createBy | string | 留言游客昵称 |
state | number | 留言状态 |
createAt | number | 留言时间 |
updateAt | number | 后台修改时间 |
updateBy | string | 编辑人 |
4 留言回复管理
4.1 回复留言
请求地址:POST /a/u/reply
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品名称 | 是 | |
reply | string | 回复内容 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
4.2 删除回复
请求地址:DELETE /a/u/reply/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
4.3 修改回复
请求地址:PUT /a/u/reply/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
reply | string | 回复内容 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
4.4 留言回复列表
请求地址:GET /a/u/reply/{message.id} (留言id)
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | id |
name | string | 作品名称 |
reply | string | 回复内容 |
createAt | number | 回复时间 |
updateBy | string | 回复人 |
5 作品集管理
5.1 新增作品集
请求地址:POST /a/u/portfolio
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品集名称 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
5.2 删除作品集
请求地址:DELETE /a/u/portfolio/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
5.3 更新作品集名称
请求地址:PUT /a/u/portfolio/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品集名称 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
5.4 更新作品集状态
请求地址:PUT /a/u/portfolio/state/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | 作品集状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
5.5 查询单个作品集
请求地址:GET /a/u/portfolio/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 作品集名称 |
state | number | 作品集状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
5.6 按条件查询作品集
请求地址:GET /a/u/portfolio/list
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品集名称 | 否 | |
state | number | 作品集状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 作品集名称 |
state | number | 作品集状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
6 作品集分类列表管理
6.1 新增作品集分类
请求地址:POST /a/u/secondportfolio
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品集分类名称 | 是 | |
portfolio | string | 所属作品集 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
6.2 删除作品集分类
请求地址:DELETE /a/u/secondportfolio/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
6.3 编辑作品集分类名称
请求地址:PUT /a/u/secondportfolio/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品集分类名称 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
6.4 编辑作品集分类状态
请求地址:PUT /a/u/secondportfolio/state/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | 作品集分类状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
6.5 查询单个作品集
请求地址:GET /a/u/secondportfolio/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 名称 |
portfolio | string | 所属作品集 |
state | number | 状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
6.6 按条件查询作品集分类
请求地址:GET /a/u/secondportfolio/list
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
portfolio | string | 作品集分类名称 | 否 | |
state | number | 状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 名称 |
portfolio | string | 所属作品集 |
state | number | 状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
7 作品管理
7.1 新增作品
请求地址:POST /a/u/works
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品名称 | 是 | |
intro | string | 作品简介 | 是 | |
thumbnail | string | 缩略图 | 是 | |
url | string | 视频链接 | 是 | |
img | string | 作品详细图片 | 是 | |
content | string | 介绍文章 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
7.2 删除作品
请求地址:DELETE /a/u/works/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
7.3 更新作品
请求地址:PUT /a/u/works/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品名称 | 是 | |
intro | string | 作品简介 | 是 | |
thumbnail | string | 缩略图 | 是 | |
url | string | 视频链接 | 是 | |
img | string | 作品详细图片 | 是 | |
content | string | 介绍文章 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
7.4 编辑作品上下架状态
请求地址:PUT /a/u/works/state/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | 状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
7.5 查询单个作品
请求地址:GET /a/u/works/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 作品名称 |
portfolio | string | 所属作品集 |
secondportfolio | string | 所属二级作品集 |
state | number | 状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
7.6 按条件查询作品
请求地址:GET /a/u/works/list
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 作品名称 | 否 | |
state | number | 状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 作品名称 |
portfolio | string | 所属作品集 |
secondportfolio | string | 所属二级作品集 |
state | number | 状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
8 工作室管理
8.1 新增工作室
请求地址:POST /a/u/studio
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 简介类型 | 是 | |
img | string | 图片 | 是 | |
content | string | 正文 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
8.2 删除工作室
请求地址:DELETE /a/u/studio/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
8.3 编辑工作室
请求地址:PUT /a/u/studio/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 简介类型 | 是 | |
img | string | 图片 | 是 | |
content | string | 正文 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
8.4 编辑工作室上下架状态
请求地址:PUT /a/u/studio/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
state | number | 状态 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
8.5 查询工作室
请求地址:GET /a/u/studio/list
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
name | string | 名称 | 否 | |
state | number | 状态 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
name | string | 名称 |
state | number | 状态 |
createAt | number | 创建时间 |
updateAt | number | 修改时间 |
updateBy | string | 编辑人 |
9 账户管理
9.1 新建账户
请求路径:POST /a/u/account
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
username | string | 账户名 | 是 | |
password | string | 密码 | 是 | |
role | string | 角色 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
9.2 删除账户
请求地址:DELETE /a/u/account/{id}
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
9.3 编辑账户
请求地址:PUT /a/u/account/{id}
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
username | string | 账户名 | 是 | |
password | string | 密码 | 是 | |
role | string | 角色 | 是 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
9.4 查询账户
请求地址:GET /a/u/account
请求参数:
字段 | 类型 | 说明 | 是否必填 | 备注 |
---|---|---|---|---|
username | string | 账户名 | 否 | |
role | string | 角色 | 否 |
返回参数:
字段 | 类型 | 说明 |
---|---|---|
code | number | 状态码 |
message | string | 状态信息 |
data | object | 数据 |
data
字段 | 类型 | 说明 |
---|---|---|
id | number | 序号 |
username | string | 账户名 |
role | string | 角色 |
createAt | number | 创建时间 |
createBy | string | 创建人 |
自动生成的接口里面的方法除了4个基础的增删改查之外,还多了几个:
public interface WorksMapper {
int deleteByPrimaryKey(Long id);
int insert(Works record);
int insertSelective(Works record);
Works selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(Works record);
int updateByPrimaryKeyWithBLOBs(Works record);
int updateByPrimaryKey(Works record);
}
查了一下它们的用法:
加了Selective的是对数据进行了判断的,比如updateByPrimartKeySelective只更新非0的字段。写service接口的时候可以根据需要去掉这个。
这里卡在按条件查询了,之前只写过单条件查询的方法,这个是多条件查询。
在网上查了一下发现有很多种方法:
其中一种是将查询条件封装到pojo类中:
例如:
在WorksMapper中加一个select Works方法:
List<Works> selectWorks(Works record);
然后再WorksMapper.xml中加上:
<select id="selectWorks" resultType="Works" parameterType="Works">
select * from works
where
name like CONCAT('%', #{name}, '%') and
state=#{state}
</select>
这样可以实现根据作品名称和上架状态来查询作品,但是也有一个问题,原接口中的请求参数name和state不是必传的,如果只传一个参数的话就会出错。
这里我参考上面自动生成的updateByPrimartKeySelective方法,加了if test语句:
<select id="selectWorks" resultType="Works" parameterType="Works">
select * from works
where
<if test="name != null">
name like CONCAT('%', #{name}, '%')
</if>
<if test="state != null">
and state=#{state}
</if>
</select>
如果不为空就用这个条件查询,但还是有一点问题就是如果name设为空,state不为空,sql语句就多了个and,会直接报错。
去看了一下动态sql基本语句,在where后面加个条件:1=1就可以解决了!
像这样:
<select id="selectWorks" resultType="Works" parameterType="Works">
select * from works
where 1=1
<if test="name != null">
name like CONCAT('%', #{name}, '%')
</if>
<if test="state != null">
and state=#{state}
</if>
</select>
或者加上<where></where>标签:
<select id="selectWorks" resultType="Works" parameterType="Works">
select * from works
<where>
<if test="name != null">
name like CONCAT('%', #{name}, '%')
</if>
<if test="state != null">
and state=#{state}
</if>
</where>
</select>
收获:学习了动态sql基本语句
每天计划完成的事情:
完成所有接口
评论