# 功能房预约 模块任务清单(MVP) ## 后端(ruoyi-manage) - Domain - Building/Room/Booking/BookingUser/Setting/Ban 实体与审计字段 - Mapper + XML - 分页/条件查询 + 时间区间冲突查询([start,end) 半开区间) - Service - 预约创建:参数校验(人数≥3/封禁/禁用/时长≤全局上限)+ 冲突校验 + 幂等键 + 事务 - 预约修改:开始前允许改;进行中仅支持 endEarly;均需冲突校验 - 预约取消:开始前允许;释放占用 - 审核:approve/reject(必填理由) - 定时任务:状态进位(approved→ongoing→completed)与排行榜重算(简易) - 设置:获取/修改 auditRequired 与 maxDurationMinutes - 封禁:新增/解除;校验仅限制“申请人” - Controller(路径/权限) - /manage/facility/building, /room, /booking, /booking/audit, /setting, /ban, /top - 权限标识 - manage:facility:building:* / room:* / booking:* / booking:audit:* / setting:* / ban:* / top:* - 测试(src/test/java) - 成功:创建预约→待审/批准;审核通过;取消;提前结束 - 失败:时间冲突;封禁申请人;房间禁用;时长非法;人数不足 - 权限:未授权/无权访问 ## 前端(frontend) - API 封装(src/api/facility.ts) - building/room/booking/setting/ban/top 全量方法 - 页面(Vue3 + Element-Plus) - 浏览页:楼房→楼层→房间列表 - 房间详情:ECharts 时间轴 + 预约表单 - 我的预约:列表(取消/修改/查看) - 排行榜 - 管理端: - 楼房/房间 CRUD(启禁) - 审核列表(通过/驳回) - 设置页(审核开关/最长时长) - 封禁管理 - 权限与菜单(RuoYi 后台配置) - 菜单与按钮权限与后端一致,前端按钮 `v-hasPermi` 对齐