feat: 新增运动节拍训练工具套件与子工具页面

新增运动节拍RepClock全套小程序页面、后端API与数据库服务,新增subhub子工具汇总页面,优化全局主页样式与配置,为web静态资源添加版本缓存参数,补充配套调试脚本
This commit is contained in:
yangxiangyuan
2026-09-09 14:43:06 +08:00
parent db7648eb4d
commit d4bf3627fd
69 changed files with 5759 additions and 297 deletions
@@ -0,0 +1,24 @@
const fs = require('fs')
const path = require('path')
process.chdir('d:/Trae_Files/TRAE-Toolbox')
const db = require(path.join(process.cwd(), 'src/server/mp_rep_clock/db'))
const locks = require(path.join(process.cwd(), 'src/server/mp_rep_clock/locks.js'))
console.log('=== 1. 锁表当前值 ===')
console.log(JSON.stringify(locks.getLockState(), null, 2))
console.log('\n=== 2. rc_sessions 最近 5 条 ===')
const rows = db.getDb().prepare(`SELECT id, status, card_id, ended_at, created_at, updated_at FROM rc_sessions WHERE deleted=0 ORDER BY datetime(created_at) DESC LIMIT 5`).all()
rows.forEach(r => console.log(' -', JSON.stringify(r)))
console.log('\n=== 3. 直接调 reserveRunningLock 看新版逻辑是否加载(看是否返回 expiresInMs + expiredLockCleared)===')
const testSid = 'rc_session_test_' + Math.random().toString(36).slice(2, 10)
const result = locks.reserveRunningLock(testSid, 'rep_clock')
console.log(JSON.stringify(result, null, 2))
console.log('新版字段校验:result.expiresInMs =', result && result.expiresInMs, typeof result && result.expiresInMs)
console.log('新版字段校验:result.expiredLockCleared =', result && result.expiredLockCleared, typeof result && result.expiredLockCleared)
console.log('\n=== 4. 回滚:删除测试锁(如果创建成功) ===')
if (result && result.ok) locks.resetRunningLock()
console.log('回滚后锁表:', JSON.stringify(locks.getLockState()))