场地预约管理模块提供完整的场地信息管理和预约流程 API 接口,支持场地信息的 CRUD 操作、预约申请、审批流程和时间冲突检查等功能。
请求方式: GET
请求路径: /venue/info/list
权限要求: hq:venue:list
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| venueName | String | 否 | 场地名称(模糊查询) | 会议室 |
| venueCode | String | 否 | 场地编码 | ROOM001 |
| venueLocation | String | 否 | 场地位置(模糊查询) | 行政楼 |
| venueType | String | 否 | 场地类型 | meeting_room |
| venueStatus | String | 否 | 场地状态(0-维修中 1-可用) | 1 |
| venueManagerName | String | 否 | 管理员姓名(模糊查询) | 张三 |
| pageNum | Integer | 否 | 页码 | 1 |
| pageSize | Integer | 否 | 每页数量 | 10 |
{
"code": 200,
"msg": "操作成功",
"rows": [
{
"id": 1234567890123456789,
"venueName": "第一会议室",
"venueCode": "ROOM001",
"venueLocation": "行政楼3楼",
"venueCapacity": 50,
"venueType": "meeting_room",
"venueStatus": "1",
"venueDescription": "配备投影设备的大型会议室",
"venueImages": "/upload/venue/room001.jpg",
"venueManagerId": 123456789,
"venueManagerName": "张三",
"createTime": "2025-07-01 10:00:00"
}
],
"total": 1
}
请求方式: GET
请求路径: /venue/info/{id}
权限要求: hq:venue:query
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | Long | 是 | 场地 ID |
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1234567890123456789,
"venueName": "第一会议室",
"venueCode": "ROOM001",
"venueLocation": "行政楼3楼",
"venueCapacity": 50,
"venueType": "meeting_room",
"venueStatus": "1",
"venueDescription": "配备投影设备的大型会议室",
"venueImages": "/upload/venue/room001.jpg",
"venueManagerId": 123456789,
"venueManagerName": "张三",
"createTime": "2025-07-01 10:00:00"
}
}
请求方式: POST
请求路径: /venue/info
权限要求: hq:venue:add
{
"venueName": "第二会议室",
"venueCode": "ROOM002",
"venueLocation": "行政楼4楼",
"venueCapacity": 30,
"venueType": "meeting_room",
"venueStatus": "1",
"venueDescription": "中型会议室,适合部门会议",
"venueImages": "/upload/venue/room002.jpg",
"venueManagerId": 123456789,
"venueManagerName": "李四"
}
{
"code": 200,
"msg": "操作成功"
}
请求方式: PUT
请求路径: /venue/info
权限要求: hq:venue:edit
{
"id": 1234567890123456789,
"venueName": "第二会议室(已更新)",
"venueCode": "ROOM002",
"venueLocation": "行政楼4楼",
"venueCapacity": 35,
"venueType": "meeting_room",
"venueStatus": "1",
"venueDescription": "中型会议室,适合部门会议,已扩容",
"venueImages": "/upload/venue/room002_new.jpg",
"venueManagerId": 123456789,
"venueManagerName": "李四"
}
请求方式: DELETE
请求路径: /venue/info/{ids}
权限要求: hq:venue:remove
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ids | String | 是 | 场地 ID,多个用逗号分隔 |
请求方式: GET
请求路径: /venue/info/available
权限要求: hq:venue:query
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1234567890123456789,
"venueName": "第一会议室",
"venueCode": "ROOM001",
"venueLocation": "行政楼3楼",
"venueCapacity": 50,
"venueType": "meeting_room"
}
]
}
请求方式: GET
请求路径: /venue/reservation/list
权限要求: hq:reservation:list
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| venueId | Long | 否 | 场地 ID | 1234567890123456789 |
| venueName | String | 否 | 场地名称(模糊查询) | 会议室 |
| applicantName | String | 否 | 申请人姓名(模糊查询) | 张三 |
| reservationDate | String | 否 | 预约日期 | 2025-07-01 |
| reservationStatus | String | 否 | 预约状态(0-待审批 1-已批准 2-已拒绝) | 0 |
| pageNum | Integer | 否 | 页码 | 1 |
| pageSize | Integer | 否 | 每页数量 | 10 |
{
"code": 200,
"msg": "操作成功",
"rows": [
{
"id": 1234567890123456780,
"venueId": 1234567890123456789,
"venueName": "第一会议室",
"applicantId": 987654321,
"applicantName": "张三",
"applicantPhone": "13800138000",
"reservationDate": "2025-07-02",
"startTime": "2025-07-02 09:00:00",
"endTime": "2025-07-02 11:00:00",
"reservationPurpose": "部门月度会议",
"participantCount": 15,
"specialRequirements": "需要投影设备",
"reservationStatus": "0",
"createTime": "2025-07-01 15:30:00"
}
],
"total": 1
}
请求方式: GET
请求路径: /venue/reservation/my
权限要求: hq:reservation:my
同场地预约列表查询参数,系统自动过滤当前用户的预约
请求方式: GET
请求路径: /venue/reservation/pending
权限要求: hq:reservation:approve
同场地预约列表查询参数,系统自动过滤待审批状态的预约
请求方式: POST
请求路径: /venue/reservation
权限要求: hq:reservation:add
{
"venueId": 1234567890123456789,
"applicantPhone": "13800138000",
"reservationDate": "2025-07-02",
"startTime": "2025-07-02 14:00:00",
"endTime": "2025-07-02 16:00:00",
"reservationPurpose": "产品发布会",
"participantCount": 25,
"specialRequirements": "需要音响设备和投影仪"
}
{
"code": 200,
"msg": "预约申请已提交,等待审批"
}
请求方式: PUT
请求路径: /venue/reservation
权限要求: hq:reservation:edit
{
"id": 1234567890123456780,
"venueId": 1234567890123456789,
"applicantPhone": "13800138000",
"reservationDate": "2025-07-02",
"startTime": "2025-07-02 14:30:00",
"endTime": "2025-07-02 16:30:00",
"reservationPurpose": "产品发布会(已调整)",
"participantCount": 30,
"specialRequirements": "需要音响设备、投影仪和无线话筒"
}
请求方式: DELETE
请求路径: /venue/reservation/{ids}
权限要求: hq:reservation:remove
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ids | String | 是 | 预约 ID,多个用逗号分隔 |
请求方式: GET
请求路径: /venue/reservation/conflict
权限要求: hq:reservation:query
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| venueId | Long | 是 | 场地 ID | 1234567890123456789 |
| startTime | String | 是 | 开始时间 | 2025-07-02 14:00:00 |
| endTime | String | 是 | 结束时间 | 2025-07-02 16:00:00 |
| excludeId | Long | 否 | 排除的预约 ID(修改时使用) | 1234567890123456780 |
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1234567890123456781,
"venueName": "第一会议室",
"applicantName": "王五",
"startTime": "2025-07-02 15:00:00",
"endTime": "2025-07-02 17:00:00",
"reservationPurpose": "培训会议",
"reservationStatus": "1"
}
]
}
请求方式: POST
请求路径: /venue/reservation/approve
权限要求: hq:reservation:approve
{
"id": 1234567890123456780,
"reservationStatus": "1",
"approveRemark": "审批通过,请按时使用场地"
}
{
"code": 200,
"msg": "审批完成"
}
/hq/hallReservation/checkTimeConflict{
"hallId": "1", // 报告厅ID
"startTime": "2025-01-15 09:00:00", // 预约开始时间
"endTime": "2025-01-15 12:00:00", // 预约结束时间
"excludeId": "100" // 排除的预约ID(可选,用于编辑时排除自身)
}
{
"code": 200,
"msg": "操作成功",
"data": {
"hasConflict": true, // 是否存在冲突
"conflictList": [ // 冲突的预约列表
{
"id": "101",
"hallId": "1",
"hallName": "第一报告厅",
"startTime": "2025-01-15 10:00:00",
"endTime": "2025-01-15 13:00:00",
"applicantName": "张三",
"status": "1", // 预约状态:0-审核中,1-已批准,2-已拒绝
"auditTime": "2025-01-14 15:30:00"
}
]
}
}
| 错误码 | 说明 |
|---|---|
| 200 | 成功 |
| 500 | 系统错误 |
| 400 | 参数错误 |
POST /hq/hallReservation/checkTimeConflict
Content-Type: application/json
{
"hallId": "1",
"startTime": "2025-01-15 09:00:00",
"endTime": "2025-01-15 12:00:00"
}
{
"code": 200,
"msg": "操作成功",
"data": {
"hasConflict": true,
"conflictList": [
{
"id": "101",
"hallId": "1",
"hallName": "第一报告厅",
"startTime": "2025-01-15 10:00:00",
"endTime": "2025-01-15 13:00:00",
"applicantName": "张三",
"status": "1",
"auditTime": "2025-01-14 15:30:00"
}
]
}
}
| 字典值 | 字典标签 | 说明 |
|---|---|---|
| meeting_room | 会议室 | 用于会议讨论 |
| classroom | 教室 | 用于教学培训 |
| sports_field | 运动场 | 用于体育活动 |
| auditorium | 礼堂 | 用于大型活动 |
| laboratory | 实验室 | 用于实验研究 |
| other | 其他 | 其他类型场地 |
| 状态值 | 状态名称 | 说明 |
|---|---|---|
| 0 | 维修中 | 场地不可预约 |
| 1 | 可用 | 场地可正常预约 |
| 状态值 | 状态名称 | 说明 |
|---|---|---|
| 0 | 待审批 | 预约已提交,等待审批 |
| 1 | 已批准 | 预约已通过审批 |
| 2 | 已拒绝 | 预约被拒绝 |
hq:venue:list - 查看场地列表hq:venue:query - 查看场地详情hq:venue:add - 新增场地hq:venue:edit - 修改场地hq:venue:remove - 删除场地hq:venue:export - 导出场地信息hq:reservation:list - 查看所有预约列表hq:reservation:my - 查看我的预约hq:reservation:query - 查看预约详情hq:reservation:add - 新增预约hq:reservation:edit - 修改预约hq:reservation:remove - 删除预约hq:reservation:approve - 审批预约hq:reservation:export - 导出预约信息| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 400 | 请求参数错误 | 请求参数格式不正确或缺少必填参数 |
| 401 | 未授权访问 | 用户未登录或 token 无效 |
| 403 | 权限不足 | 用户没有对应的操作权限 |
| 404 | 资源不存在 | 请求的场地或预约不存在 |
| 500 | 服务器内部错误 | 系统异常,请联系管理员 |
场地编码已存在 - 添加场地时编码重复场地不存在 - 预约时指定的场地 ID 无效场地当前不可用 - 预约的场地状态为维修中无权限修改此预约 - 尝试修改他人的预约只能修改待审批状态的预约 - 尝试修改已审批的预约该预约已经审批过了 - 重复审批预约