• cxk123
    资源预约与摇号
    ID resource_booking版本 1.0.0插件制作者 cxk123售价 30 积分2641 行 / 158.1 KBHook / 路由 / 后台页
    把会议室、场地、器材或号源按时间段开放预约:名额满了可以摇号或排队等退号,需要审核的资源由管理团队把关,爽约太多会被暂时限制预约。
    收费插件安装说明购买后点击“授权码”获取一次性授权码;在后台 > 插件广场点击在线安装或更新,并填写该授权码。已购买用户更新免费:每次在线安装或更新前,重新点击“授权码”获取新的一次性授权码即可,无需再次购买;也可直接下载新版后用后台“插件上传”更新。尊重并感谢他人劳动,请勿传播代码。
    app/plugins/resource_booking/plugin.php
    开发日志已有 1 条

    此项目接受所有登录用户协助维护和提交更新。

    • cxk123
      cxk123
      版本 1.0.0 1dc8f893d51a 更新:## resource_booking 1.0.0 · 首次上架 **把「会议室 / 场地 / 器材 / 号源」按时间段开放预约:名额满了摇号或排队等退号,需要审核的资源由管理团队把关,爽约太多会被暂时限制预约。** ### 资源与时段 - **资源**:名称 / 说明 / 位置 / 图片 / 是否需审批 / 最短最长时长 / 提前截止 / 取消截止 / 爽约阈值 / 签到开关 / 黑白名单用户组release
    主楼
  • cxk123

    版本 1.0.0 更新:

    resource_booking 1.0.0 · 首次上架

    把「会议室 / 场地 / 器材 / 号源」按时间段开放预约:名额满了摇号或排队等退号,需要审核的资源由管理团队把关,爽约太多会被暂时限制预约。

    资源与时段

    • 资源:名称 / 说明 / 位置 / 图片 / 是否需审批 / 最短最长时长 / 提前截止 / 取消截止 / 爽约阈值 / 签到开关 / 黑白名单用户组,可逐个上架下架。
    • 周模板:一条「周三 09:00–10:00 / 名额 4」,未来两周的具体时段自动铺开;例外日支持「整日关闭」与「临时加开一场」。
    • 时段网格:按天分组,一眼看到每个格子的剩余名额、候补人数、摇号池人数和「我的状态」。

    预约与防重

    • 选时段即可提交;同一人同一时段不可能重复占位(数据库唯一约束 + 占位列仲裁,双击 / 多标签页都只会成一单)。
    • 名额守卫式占用:同秒多人抢最后一个名额时恰好只有一人成功,绝不超卖。

    超额三策略(每个资源单独选)

    • 先到先得:满了直接提示「名额已满」。
    • 摇号:超额进摇号池,到点自动开奖,中签 / 未中签都会收到通知;同一份名单 + 同一个种子必然同一个结果(结果可复现)。
    • 候补:超额自动排队;有人取消 → 自动把名额递给候补第一位并通知,递补有确认截止时间,逾期未确认会自动顺延给下一位。

    审批 · 取消 · 爽约 · 核销

    • 需审批的资源:提交后名额先为你保留,管理团队通过 / 驳回(驳回必填理由),驳回立刻释放名额并触发递补。
    • 本人可在截止前取消;管理团队可强制取消(必填理由),两者都会释放名额并触发递补。
    • 时段结束后未签到记为爽约,累计到阈值(可按资源单独设)后会暂时不能预约该资源。
    • 签到窗口内可自助核销,管理团队可代核销,全部留档。

    后台

    • 资源 / 周模板 / 例外日 / 未来时段与摇号 / 预约与候补 逐块管理;手动干预(指定中签、调整候补顺序)必须填理由并写进审计台账。
    • 统计:使用率、爽约率、按资源的预约与爽约分布、爽约次数最多的用户。
    • 计划任务负责铺时段、到点摇号、收尾(爽约判定、递补超时顺延、名额计数自愈)。

    工程说明

    • 三驱动可移植(SQLite / MySQL / PostgreSQL):只用核心 app_db_* 助手与 unix 时间戳,无窗口函数、无方言 upsert、无驱动分支。
    • 页面路径零循环内查库:列表 ≤4 条、详情 ≤5 条、我的预约 ≤4 条、提交 ≤4 条;首页与主题页 0 条额外查询。
    • 幂等安装 / 干净卸载;覆盖升级时结构自愈,不会把插件停用。
    #1
  • 质量报告

    插件质量报告

    插件:resource_booking

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    top.bar.actions顶部栏插件入口,同一请求只执行一次(展示位置:版块导航与搜索框前后)否5----
    admin.tabs后台管理页标签栏(展示位置:后台Tab)否1----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_resource_booking_resources

    字段类型可空默认值约束
    -动态定义--无法静态解析

    plugin_resource_booking_rules

    字段类型可空默认值约束
    -动态定义--无法静态解析

    plugin_resource_booking_exceptions

    字段类型可空默认值约束
    -动态定义--无法静态解析

    plugin_resource_booking_slots

    字段类型可空默认值约束
    -动态定义--无法静态解析

    plugin_resource_booking_bookings

    字段类型可空默认值约束
    -动态定义--无法静态解析

    plugin_resource_booking_logs

    字段类型可空默认值约束
    -动态定义--无法静态解析
    #2
  • 8

    有意思

    #3
  • 123456789

    牛🐮

    #4

发表回复

登录后回复