1 用户登陆
1.1 登陆验证接口
前端需要把登陆成功后得到的token
保存到window.localStorage
里面,如果能解决axios
跨域请求无法协带cookie的问题也可以不存储,对于此问题后面的接口中就不再详细说明了,都会按使用token
的方式解决。后端需要存储这个token
对应的用户相关的信息(因为没有会话管理,所以可能没法正常使用session来存储数据,可以考虑使用数据库,或是静态的map,如果使用map的话,记得做程序退出前的以及程序再次启动时的序列化工作,以保持前端用户的会话不中断)
- 请求路径:
/user/login
- 请求方式:
POST
- 请求参数
参数名称 | 参数说明 | 备注 |
---|
name | 用户名 | 不能为空 |
pwd | 密码 | 前端可以直接计算出md5值再传给后端 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回密钥token信息 |
{"status":200,"msg":"服务器调用成功!","data":"1e893a97634847b3a8b499b173bea620"}
2 权限管理
2.1 权限新增
- 请求路径:/rights
- 请求方式:POST
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
name | 权限名称 | 不能为空 |
path | 前端路由地址 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
2.2 权限修改
- 请求路径:
/rights
- 请求方式:
PUT
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 权限id | 不能为空,后端根据这个来确定更新哪一条记录 |
name | 权限名称 | 不能为空 |
path | 前端路由地址 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
2.3 权限删除
- 请求路径:
/rights
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 权限id | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
2.4 权限列表
- 请求路径:
/rights
- 请求方式:
GET
- 请求参数:无
- 响应数据
SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回每一条权限即可,层级结构由parentId属性来确定 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"name": "IC管理",
"path": "",
"parentId": 0,
"level": 1,
"children": [
{
"id": 2,
"name": "IC列表",
"path": "/rights",
"parentId": 1,
"level": 2,
"children": null
}
]
}
]
}
2.5 用户权限查询
- 请求路径:
/rights/{userId}
- 请求方式:
GET
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
token | 用户登陆成功后得到的token | 前端可以从window.sessionStorage 中取token |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回每一条权限即可,层级结构由parentId属性来确定 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"name": "用户管理",
"parentId": 0,
"path": ""
},
{
"id": 2,
"name": "用户列表",
"parentId": 1,
"path": "/user"
}
]
}
3 角色管理
3.1 新增角色
参数名称 | 参数说明 | 备注 |
---|
name | 角色名称 | 不能为空 |
rightsId | 角色对应的权限列表的Id的数组 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
3.2 修改角色
参数名称 | 参数说明 | 备注 |
---|
id | 角色id ,后端据此更新相应数据 | 不能为空 |
rightsId | 角色对应的权限列表的Id的数组 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
3.3 删除角色
这个需要先做验证,如果是当前用户的角色就不能删除了,可以前后端都先做一下验证再执行
- 请求路径:
/role
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 角色id | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
3.4 角色列表
- 请求路径:
/role
- 请求方式:
GET
- 请求参数:无
- 响应数据
SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回角色对象数组 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"name": "超级管理员",
"rightsId": [1,2,3,4,5,6,7,8,9,10,11]
},
{
"id": 2,
"name": "普通用户",
"rightsId": [3,5,6,7]
}
]
}
4 用户管理
这个是用来登陆管理系统的用户,不是要停车的车主
4.1 新增用户
参数名称 | 参数说明 | 备注 |
---|
name | 用户账号,用来登陆的,可以设置验证,比如只能是字母等 | 不能为空 |
phone | 用户手机号 | 不能为空 |
pwd | 密码,前端直接计算出md5值再传给后端 | 不能为空 |
roleId | 用户对应的角色的id,这样就与权限对应起来了 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
4.2 修改用户
参数名称 | 参数说明 | 备注 |
---|
id | 用户id ,后端据此更新相应数据 | 不能为空 |
name | 用户账号,用来登陆的,可以设置验证,比如只能是字母等 | 可以为空 |
phone | 用户手机号,设置11位验证 | 可以为空 |
pwd | 密码,前端直接计算出md5值再传给后端 | 可以为空 |
roleId | 用户对应的角色的id,这样就与权限对应起来了 | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
4.3 删除用户
注意,不能删除自己,这个可以从前端就直接做好验证
- 请求路径:
/user
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 用户id | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
4.4 用户列表
- 请求路径:
/user
- 请求方式:
GET
- 请求参数:无
- 响应数据
SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回用户对象数组 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"name": "admin",
"phone": "13333333333",
"pwd": "202cb962ac59075b964b07152d234b70",
"roleId": 1
},
{
"id": 3,
"name": "usual",
"phone": "133987654321",
"pwd": "c20ad4d76fe97759aa27a0c99bff6710",
"roleId": 2
}
]
}
5 车位管理
5.1 新增车位
- 请求路径:
/carport
- 请求方式:
POST
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
code | 车位号:如A06、B23、C15 | 不能为空 |
area | 所属区域,如A区、B区、C区 | 不能为空 |
typeId | 车位类型id | 不能为空 |
status | 车位状态,true 已有车辆停靠,false 空闲(默认) | 可以为空 |
note | 备注信息,可以写一些车位相关的说明信息 | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
5.2 修改车位
- 请求路径:
/carport
- 请求方式:
PUT
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 车位id ,后端据此判断要更新的是哪一条记录 | 不能为空 |
code | 车位号:如A06、B23、C15 | 可以为空 |
area | 所属区域,如A区、B区、C区 | 可以为空 |
typeId | 车位类型id | 可以为空 |
status | 车位状态,true 已有车辆停靠,false 空闲(默认) | 可以为空 |
note | 备注信息,可以写一些车位相关的说明信息 | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
5.3 删除车位
这个需要先验证,如果车位状态是正停着一辆车是不能删的,如果已有固定车主且IC卡未到期也是不能删的
- 请求路径:
/carport
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 车位id | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
5.4 车位列表
- 请求路径:
/carport
- 请求方式:
GET
- 请求参数:无
- 响应数据
SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回车位对象数组 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"code": "A01",
"area": "A",
"typeId": 1,
"status": true,
"note": "王经理楼下附近"
},
{
"id": 2,
"code": "B03",
"area": "B",
"typeId": 1,
"status": true,
"note": ""
}
]
}
6 车位类型管理
6.1 新增车位类型
- 请求路径:
/carportType
- 请求方式:
POST
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
name | 车位类型的名称,如固定车主车位、闲置车位 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
6.2 修改车位类型
- 请求路径:
/carportType
- 请求方式:
PUT
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 车位类型id ,后端据此判断要更新的是哪一条记录 | 不能为空 |
name | 车位类型的名称,如固定车主车位、闲置车位 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
6.3 删除车位类型
这个需要先验证,如果车位状态是正停着一辆车是不能删的,如果已有固定车主且IC卡未到期也是不能删的
- 请求路径:
/carportType
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 车位id | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
6.4 车位类型列表
- 请求路径:
/carportType
- 请求方式:
GET
- 请求参数:无
- 响应数据
SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回车位对象数组 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"id": 1,
"name": "固定车主车位"
},
{
"id": 2,
"name": "闲置车位"
}
]
}
7 IC卡管理
7.1 新增IC卡
参数名称 | 参数说明 | 备注 |
---|
cardNo | 卡片实物上印刷的卡号或虚拟号 | 不能为空 |
name | 办卡人姓名,即车主姓名 | 不能为空 |
phone | 车主电话,用来联系车主 | 不能为空 |
enable | 当前IC卡状态,true 启用,false 注销(默认) | 可以为空 |
note | 备注信息,可以写一些车位相关的说明信息 | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回新增行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
7.2 卡片启用/停用
这个可以设置个策略,如果是在有效期内,停用的话,剩余的有效期是否可以延续到再次启用后使用,后端可以想个办法来实现,前端可以在停用时加个提示:还在有效期内abababa
参数名称 | 参数说明 | 备注 |
---|
id | 车位id ,后端据此判断要更新的是哪一条记录 | 不能为空 |
enable | 当前IC卡状态,true 启用,false 注销(默认) | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
7.3 IC卡删除
这个需要先验证,如果车位状态是正停着一辆车是不能删的,如果IC卡未到期也是不应该能删的,当然了,也可以根据启用/停用的状态来综合判定
- 请求路径:
/card
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | IC卡的id ,也可以使用cardNo 来做为唯一标识,先按id 来做 | 不能为空,后端根据这个来确定删除哪一条记录 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回删除行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
7.4 IC卡续期
这个可以按天续期,也可以按月续期
- 请求路径:
/card/renew
- 请求方式:
PUT
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | IC卡id ,后端据此判断要更新的是哪一条记录 | 不能为空 |
type | day 按天续期,month 按月续期 | 不能为空 |
num | 实际要续的天/月数,单位与type 里面的值相关 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
7.5 IC卡查询
7.5.1 根据cardNo
这个可以用于车辆入场时查询输入的卡号是否尚在有效期,或是做IC卡片有效性的检测
- 请求路径:
/card/{cardNo}
- 请求方式:
GET
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
cardNo | IC卡cardNo ,后端据此查询对应的记录 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回IC卡对象 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": {
"cardNo": "IC01",
"id": 1,
"name": "张三丰",
"enable": true,
"phone": "13111112222",
"created": "2021-05-17T11:33:46.000+00:00",
"valid": "2022-05-17T11:33:46.000+00:00"
}
}
7.5.2 查询所有卡
主要用于IC卡片列表
-
请求路径:/card
-
请求方式:GET
-
请求参数:无
-
响应数据 SysResult
对象
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回IC卡对象数组 |
{
"status": 200,
"msg": "服务器调用成功!",
"data": [
{
"cardNo": "IC01",
"id": 1,
"name": "张三丰",
"enable": true,
"phone": "13111112222",
"created": "2021-05-17T11:33:46.000+00:00",
"valid": "2022-05-17T11:33:46.000+00:00"
},
{
"cardNo": "IC02",
"id": 2,
"name": "李思思",
"enable": true,
"phone": "13987654321",
"created": "2021-08-11T12:38:26.000+00:00",
"valid": "2022-08-11T12:38:26.000+00:00"
}
]
}
7.6 修改IC卡信息
- 请求路径:
/card/update
- 请求方式:
PUT
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
id | 卡片的id 属性,后端以此为准来确定是哪一条记录 | 不能为空 |
cardNo | 卡片实物上印刷的卡号或虚拟号 | 不能为空 |
name | 办卡人姓名,即车主姓名 | 不能为空 |
phone | 车主电话,用来联系车主 | 不能为空 |
enable | 当前IC卡状态,true 启用,false 注销(默认) | 可以为空 |
note | 备注信息,可以写一些车位相关的说明信息 | 可以为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息 | 可以为null |
data | 服务器返回的业务数据 | 返回更新行数,前端可根据这个判断是否确实成功 |
{"status":200,"msg":"服务器调用成功!","data":1}
8 停车管理
8.1 入场
- 前端只需要向后传一个
no
参数即可,后端接收到请求后,先查询是否是IC卡。
1.1. 如果是IC卡则判断是否是启用状态、有效期内,并登记IC卡号、是IC卡、入场时间到数据库。
1.2. 如果卡片已停用,则返回失败信息,并提示您的卡片已注销,无法使用IC卡入场
1.3. 如果卡片已启用,但未在有效期内,则返回失败信息,并提示您的IC已过期,请先续费后再入场!
。 - 如果未查询到IC卡,说明是临时车,直接登陆车牌号、时间、不是IC入场 到 数据库。
参数名称 | 参数说明 | 备注 |
---|
no | IC卡的cardNo 或是车牌号,具体是哪一种由后端判断 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息,提 | |
data | 服务器返回的业务数据 | 空 |
临时车时返回示例
{
"status":200,
"msg":"欢迎临时车 鲁A54321 入场,请到A区A63号车位停车",
"data":{}
}
固定车位的车主时返回的示例
{
"status":200,
"msg":"欢迎 张三丰 入场,请到您的固定车位停车",
"data":{}
}
8.2 出场
- 前端只需要向后传一个
no
参数即可,后端接收到请求后,先查询入场记录。
1.1. 如果是IC卡入场,则判断是否是启用状态、有效期内,返回出场成功!
,并更新出场时间到数据库。
1.2. 如果卡片已停用,则返回失败信息,并提示您的卡片已注销,无法使用IC卡出场,请补缴费超期后的停车费用
。注:正常情况下应该不会出现在正使用期间就注销卡的情况,所以此项判断可以不做
1.3. 如果卡片已启用,但未在有效期内,则返回失败信息,并提示您的IC已过期,无法使用IC卡出场,请补缴超期后的停车费用
。 - 如果未查询到IC卡,说明是临时车,返回
您停车3天2小时16分,请缴费:150元
,然后更新出场时间到 数据库。
- 请求路径:
/park
- 请求方式:
DELETE
- 请求参数:
参数名称 | 参数说明 | 备注 |
---|
no | IC卡的cardNo 或是车牌号,具体是哪一种由后端判断 | 不能为空 |
参数名称 | 参数说明 | 备注 |
---|
status | 状态信息 | 200表示服务器请求成功 201表示服务器异常 |
msg | 服务器返回的提示信息,提 | |
data | 服务器返回的业务数据 | 空 |
临时车时返回示例
{
"status":200,
"msg":"出场成功!",
"data":{}
}
固定车位的车主时返回的示例
{
"status":200,
"msg":"您停车3天2小时16分,请缴费:150元",
"data":{}
}