From 153c7322203dc8616b6b495eb878a7030e9aca00 Mon Sep 17 00:00:00 2001 From: nxxy335 Date: Tue, 8 Sep 2026 15:22:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E9=97=A8=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=20+=20=E6=AF=8F=E5=A5=97=E8=AF=95=E5=8D=B7=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E6=BB=A1=E5=88=86=E7=AD=89=E5=A2=9E=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 登录门:进入页面先输入系统网址/API路由/账号/密码,测试连接通过后才显示登录按钮,登录后才进入主界面;密码每次需输入,防止依赖一次配置直接查看数据 - 每套试卷独立满分配置(设置中按当前试卷单独设置,合格率按 ≥60% 满分计算) - 班级联动统计与面板计数(成绩明细/缺考名单标题计数随班级过滤) - 移除最高/最低分获得者显示 - 平均用时不换行(避免“秒”字换行) - 卷王地址默认 https://exam.nxxy335.top,默认勾选校验 HTTPS 证书 - 统计卡片含合格率(≥60% 满分) - .gitignore 排除 data/(账号密码/令牌/学生名单,禁止入库) --- .gitignore | 9 + api.php | 224 ++++++++++ assets/app.js | 692 +++++++++++++++++++++++++++++++ assets/style.css | 364 ++++++++++++++++ bootstrap.php | 239 +++++++++++ docs/预览图/1-首页.png | Bin 0 -> 56352 bytes docs/预览图/2-成绩明细与统计.png | Bin 0 -> 130773 bytes docs/预览图/3-系统设置.png | Bin 0 -> 114326 bytes docs/预览图/4-名单管理.png | Bin 0 -> 109478 bytes index.php | 268 ++++++++++++ lib/DataService.php | 311 ++++++++++++++ lib/Roster.php | 229 ++++++++++ lib/SurveyKingClient.php | 527 +++++++++++++++++++++++ lib/XlsxReader.php | 223 ++++++++++ tools/lint.js | 29 ++ tools/mock-server.js | 138 ++++++ tools/test-xlsx.js | 114 +++++ 启动平台.bat | 24 ++ 18 files changed, 3391 insertions(+) create mode 100644 .gitignore create mode 100644 api.php create mode 100644 assets/app.js create mode 100644 assets/style.css create mode 100644 bootstrap.php create mode 100644 docs/预览图/1-首页.png create mode 100644 docs/预览图/2-成绩明细与统计.png create mode 100644 docs/预览图/3-系统设置.png create mode 100644 docs/预览图/4-名单管理.png create mode 100644 index.php create mode 100644 lib/DataService.php create mode 100644 lib/Roster.php create mode 100644 lib/SurveyKingClient.php create mode 100644 lib/XlsxReader.php create mode 100644 tools/lint.js create mode 100644 tools/mock-server.js create mode 100644 tools/test-xlsx.js create mode 100644 启动平台.bat diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0c619fd --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# 运行时数据:含账号密码、API 令牌、学生名单,禁止入库 +data/ + +# 依赖与系统文件 +node_modules/ +vendor/ +*.log +.DS_Store +Thumbs.db diff --git a/api.php b/api.php new file mode 100644 index 0000000..43b900c --- /dev/null +++ b/api.php @@ -0,0 +1,224 @@ + true, 'config' => ny_load_config()]); + + // ---------------- 连接测试 ---------------- + case 'ping': + $client = new SurveyKingClient(cfg()); + $res = $client->ping(); + $res['session'] = $client->sessionInfo(); + ny_ok($res); + + case 'diag': + $client = new SurveyKingClient(cfg()); + ny_ok($client->diagnose()); + + // ---------------- 问卷列表 ---------------- + case 'projects': + $client = new SurveyKingClient(cfg()); + $list = $client->listProjects(); + $out = []; + foreach ($list as $p) { + if (!is_array($p)) { + continue; + } + $out[] = [ + 'id' => ny_str($p['id'] ?? ''), + 'name' => ny_str($p['name'] ?? '') ?: '未命名', + 'mode' => ny_str($p['mode'] ?? ''), + 'total' => (int)($p['total'] ?? 0), + 'status'=> (int)($p['status'] ?? 0), + ]; + } + ny_ok($out); + + // ---------------- 数据 ---------------- + case 'data': + $projectId = (string)($_GET['projectId'] ?? ''); + if ($projectId === '') { + ny_fail('请先选择问卷/考试'); + } + $nameQid = (string)($_GET['nameQid'] ?? ''); + $c = cfg(); + $result = DataService::build($c, $projectId, $nameQid); + $fsMap = is_array($c['full_scores'] ?? null) ? $c['full_scores'] : []; + $fs = isset($fsMap[$projectId]) ? (int)$fsMap[$projectId] : (int)($c['full_score'] ?? 100); + if ($fs < 1) { + $fs = 100; + } + $result['config'] = [ + 'refresh_interval' => (int)$c['refresh_interval'], + 'base_url' => $c['base_url'], + 'full_score' => $fs, + ]; + ny_ok($result); + + // ---------------- 名单 ---------------- + case 'roster': + ny_ok(['students' => Roster::all(), 'meta' => Roster::meta()]); + + case 'roster_import': + if (empty($_FILES['file']) || !is_uploaded_file($_FILES['file']['tmp_name'])) { + ny_fail('请选择要导入的文件'); + } + $f = $_FILES['file']; + $ext = strtolower(pathinfo((string)$f['name'], PATHINFO_EXTENSION)); + $dest = NY_DATA . '/uploads/roster_' . date('Ymd_His') . '.' . ($ext !== '' ? $ext : 'dat'); + if (!@move_uploaded_file($f['tmp_name'], $dest)) { + ny_fail('文件保存失败,请检查 data/uploads 目录权限'); + } + try { + $res = Roster::importFile($dest, $ext); + } catch (Throwable $e) { + @unlink($dest); + ny_fail($e->getMessage()); + } + $mode = (string)($_POST['mode'] ?? 'replace'); + if ($mode === 'append') { + $merged = array_merge(Roster::all(), $res['students']); + Roster::save($merged); + } else { + Roster::save($res['students']); + } + ny_ok(['students' => Roster::all(), 'meta' => Roster::meta(), 'imported' => $res['count']]); + + case 'roster_save': + $raw = (string)file_get_contents('php://input'); + $in = json_decode($raw, true); + if (!is_array($in) || !isset($in['students']) || !is_array($in['students'])) { + ny_fail('参数错误'); + } + $students = []; + foreach ($in['students'] as $s) { + if (!is_array($s)) { + continue; + } + $students[] = [ + 'sid' => (string)($s['sid'] ?? ''), + 'name' => (string)($s['name'] ?? ''), + 'cls' => trim((string)($s['cls'] ?? '')), + ]; + } + Roster::save($students); + ny_ok(['students' => Roster::all(), 'meta' => Roster::meta()]); + + case 'roster_clear': + Roster::clear(); + ny_ok(['students' => [], 'meta' => Roster::meta()]); + + // ---------------- 导出 ---------------- + case 'export': + case 'export_absent': + $projectId = (string)($_GET['projectId'] ?? ''); + if ($projectId === '') { + ny_fail('请先选择问卷/考试'); + } + $nameQid = (string)($_GET['nameQid'] ?? ''); + $c = cfg(); + $result = DataService::build($c, $projectId, $nameQid); + $filename = ($action === 'export_absent' ? '缺考名单' : '成绩明细') + . '_' . preg_replace('/[\\\\\/:*?"<>|]/u', '_', (string)$result['project']['name']) + . '_' . date('Ymd_His') . '.csv'; + + header('Content-Type: text/csv; charset=utf-8'); + header('Content-Disposition: attachment; filename="' . $filename . '"'); + header('Cache-Control: no-store'); + echo "\xEF\xBB\xBF"; + $out = fopen('php://output', 'w'); + + if ($action === 'export_absent') { + fputcsv($out, ['学号', '姓名', '班级']); + foreach ($result['absent'] as $r) { + fputcsv($out, [$r['sid'], $r['name'], $r['cls'] ?? '']); + } + } else { + fputcsv($out, ['学号', '姓名', '班级', '成绩', '提交时间', '考试时长', '考试时长(秒)']); + foreach ($result['rows'] as $r) { + fputcsv($out, [ + $r['sid'], + $r['name'], + $r['cls'] ?? '', + $r['score'] === null ? '' : $r['score'], + $r['submit_at'], + $r['duration_txt'], + $r['duration'] === null ? '' : $r['duration'], + ]); + } + } + fclose($out); + exit; + + default: + ny_fail('未知操作:' . $action); + } +} catch (Throwable $e) { + ny_fail($e->getMessage(), [ + 'trace' => defined('NY_DEBUG') && NY_DEBUG ? $e->getTraceAsString() : null, + ]); +} diff --git a/assets/app.js b/assets/app.js new file mode 100644 index 0000000..6acb325 --- /dev/null +++ b/assets/app.js @@ -0,0 +1,692 @@ +/* NY 问卷考试系统数据平台 - 前端逻辑 */ +(function () { + 'use strict'; + + const $ = (s, r) => (r || document).querySelector(s); + const $$ = (s, r) => Array.prototype.slice.call((r || document).querySelectorAll(s)); + + const state = { + projects: [], + questions: [], + rows: [], + absent: [], + unmatched: [], + roster: [], // 完整名单(含班级),用于按班级重算统计 + prevMap: {}, // sid -> 摘要,用于高亮变化 + prevSids: new Set(), // 上一次刷新出现的 sid + newSids: new Set(), // 本次刷新新增的 sid(绿色底纹) + hasPrev: false, + fullScore: 100, + sortKey: 'submit_ts', + sortAsc: false, + timer: null, + loading: false, + lastSig: '' + }; + + /* ---------------- 通用 ---------------- */ + async function api(action, opts) { + opts = opts || {}; + const init = { method: opts.method || 'GET' }; + if (opts.body) { + init.headers = { 'Content-Type': 'application/json' }; + init.body = JSON.stringify(opts.body); + } + if (opts.form) { + init.method = 'POST'; + init.body = opts.form; + } + let url = 'api.php?action=' + encodeURIComponent(action); + if (opts.params) { + for (const k in opts.params) { + if (opts.params[k] !== '' && opts.params[k] != null) { + url += '&' + k + '=' + encodeURIComponent(opts.params[k]); + } + } + } + const res = await fetch(url, init); + const text = await res.text(); + let json; + try { json = JSON.parse(text); } catch (e) { + throw new Error('服务端返回异常(可能 PHP 报错):' + text.slice(0, 300)); + } + if (!json.ok) throw new Error(json.msg || '请求失败'); + return json.data; + } + + function esc(s) { + return String(s == null ? '' : s).replace(/[&<>"']/g, c => + ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c])); + } + + function setConn(cls, text) { + const el = $('#conn'); + el.className = 'conn ' + cls; + el.innerHTML = '' + esc(text) + ''; + } + + function showAlert(msg, type) { + const el = $('#alert'); + if (!msg) { el.classList.add('hidden'); return; } + el.textContent = msg; + el.className = 'alert' + (type === 'info' ? ' info' : ''); + } + + /* ---------------- 问卷列表 ---------------- */ + async function loadProjects() { + setConn('conn-load', '连接中…'); + try { + const list = await api('projects'); + state.projects = list || []; + const sel = $('#projectSel'); + const keep = sel.value; + sel.innerHTML = ''; + if (!state.projects.length) { + sel.innerHTML = ''; + } else { + const ph = document.createElement('option'); + ph.value = ''; ph.textContent = '请选择问卷 / 考试'; + sel.appendChild(ph); + state.projects.forEach(p => { + const o = document.createElement('option'); + o.value = p.id; + o.textContent = (p.mode ? '[' + p.mode + '] ' : '') + p.name + '(' + (p.total || 0) + '份)'; + sel.appendChild(o); + }); + } + if (keep && state.projects.some(p => p.id === keep)) sel.value = keep; + else if (state.deeplinkProject && state.projects.some(p => p.id === state.deeplinkProject)) sel.value = state.deeplinkProject; + setConn('conn-on', '已连接 · ' + state.projects.length + ' 个问卷'); + showAlert(''); + if (sel.value) refresh(); + } catch (e) { + setConn('conn-err', '连接失败'); + showAlert('无法连接卷王系统:' + e.message + '\n请点击右上角【设置】检查系统地址、接口前缀与账号密码。'); + } + } + + /* ---------------- 数据刷新 ---------------- */ + async function refresh(silent) { + const pid = $('#projectSel').value; + if (!pid) return; + if (state.loading) return; + state.loading = true; + if (!silent) setConn('conn-load', '拉取数据…'); + try { + const d = await api('data', { params: { projectId: pid, nameQid: $('#nameFieldSel').value } }); + state.questions = d.questions || []; + state.rows = d.rows || []; + state.absent = d.absent || []; + state.unmatched = d.unmatched || []; + state.roster = d.roster || []; + state.fullScore = (d.config && d.config.full_score) ? (parseInt(d.config.full_score, 10) || 100) : 100; + + // 计算本次刷新新增的 sid(用于绿色底纹);首次加载不标记 + const cur = new Set(state.rows.map(r => r.sid).filter(Boolean)); + if (state.hasPrev) state.newSids = new Set(Array.from(cur).filter(s => !state.prevSids.has(s))); + else state.newSids = new Set(); + state.hasPrev = true; + + renderNameFields(d); + renderStats(); + renderTable(); + state.prevSids = cur; + populateClasses(); + renderAbsent(); + renderUnmatched(); + renderHints(); + + $('#lastUpdate').textContent = d.updated_at; + setConn('conn-on', '实时 · ' + d.project.name); + showAlert(''); + } catch (e) { + if (!silent) setConn('conn-err', '数据获取失败'); + showAlert(e.message); + } finally { + state.loading = false; + $('#liveDot').classList.add('on'); + setTimeout(() => $('#liveDot').classList.remove('on'), 900); + } + } + + function renderNameFields(d) { + const sel = $('#nameFieldSel'); + const keep = sel.value; + sel.innerHTML = ''; + const cands = d.name_candidates || []; + cands.forEach(q => { + const o = document.createElement('option'); + o.value = q.id; + o.textContent = '姓名题:' + (q.title || q.id); + sel.appendChild(o); + }); + (d.questions || []).forEach(q => { + if (cands.some(c => c.id === q.id)) return; + const o = document.createElement('option'); + o.value = q.id; + o.textContent = (q.title || q.id) + '(' + (q.type || '') + ')'; + sel.appendChild(o); + }); + if (keep) sel.value = keep; + else if (state.deeplinkQid) sel.value = state.deeplinkQid; + else if (d.name_qid) sel.value = d.name_qid; + } + + function populateClasses() { + const sel = $('#clsSel'); + const cur = sel.value; + const set = new Set(); + (state.roster || []).forEach(s => { if (s.cls) set.add(s.cls); }); + const vals = Array.from(set).sort((a, b) => a.localeCompare(b, 'zh', { numeric: true })); + sel.innerHTML = '' + + vals.map(v => '').join(''); + if (vals.indexOf(cur) >= 0) sel.value = cur; + else sel.value = ''; + } + + // 按当前所选班级(或无)客户端重算统计卡片 + function computeDisplayStats(cls) { + const allStudents = state.roster || []; + const rows = cls ? state.rows.filter(r => (r.cls || '') === cls) : state.rows; + const students = cls ? allStudents.filter(s => (s.cls || '') === cls) : allStudents; + const total = students.length; + const submitted = rows.length; + const absent = Math.max(0, total - submitted); + const rate = total > 0 ? Math.round(submitted / total * 1000) / 10 : 0; + + const scores = rows.map(r => r.score).filter(v => v !== null && v !== undefined); + const avg = scores.length ? Math.round(scores.reduce((a, b) => a + b, 0) / scores.length * 100) / 100 : null; + + const full = state.fullScore || 100; + const passCount = rows.filter(r => r.score !== null && r.score !== undefined && r.score >= 0.6 * full).length; + const passRate = submitted > 0 ? Math.round(passCount / submitted * 1000) / 10 : 0; + + let maxScore = null, minScore = null; + const maxNames = [], minNames = []; + rows.forEach(r => { + if (r.score === null || r.score === undefined) return; + if (maxScore === null || r.score > maxScore) { maxScore = r.score; maxNames.length = 0; maxNames.push(r.name); } + else if (r.score === maxScore) maxNames.push(r.name); + if (minScore === null || r.score < minScore) { minScore = r.score; minNames.length = 0; minNames.push(r.name); } + else if (r.score === minScore) minNames.push(r.name); + }); + + const durs = rows.map(r => r.duration).filter(v => v !== null && v !== undefined); + const avgDur = durs.length ? Math.round(durs.reduce((a, b) => a + b, 0) / durs.length) : null; + + return { + total, submitted, absent, rate, avg, passRate, + maxScore, minScore, maxNames, minNames, avgDur + }; + } + + function renderStats() { + const cls = $('#clsSel').value; + const st = computeDisplayStats(cls); + const set = (id, v) => { $(id).textContent = v; }; + set('#sTotal', st.total); + set('#sSubmit', st.submitted); + set('#sAbsent', st.absent); + set('#sRate', st.rate + '%'); + set('#sAvg', st.avg == null ? '-' : st.avg); + set('#sMax', st.maxScore == null ? '-' : st.maxScore); + set('#sMin', st.minScore == null ? '-' : st.minScore); + set('#sPass', st.passRate + '%'); + set('#sDur', st.avgDur == null ? '-' : fmtDur(st.avgDur)); + } + + // 各面板计数文字按所选班级过滤(成绩明细 / 缺考名单) + function renderHints() { + const cls = $('#clsSel').value; + const rowsForCls = cls ? state.rows.filter(r => (r.cls || '') === cls) : state.rows; + const rosterForCls = cls ? (state.roster || []).filter(s => (s.cls || '') === cls) : (state.roster || []); + const absentForCls = cls ? state.absent.filter(a => (a.cls || '') === cls) : state.absent; + $('#tableHint').textContent = '共 ' + rowsForCls.length + ' 人已提交 · 名单 ' + rosterForCls.length + ' 人'; + $('#absentHint').textContent = absentForCls.length ? '共 ' + absentForCls.length + ' 人' : ''; + } + + function fmtDur(sec) { + if (sec == null) return '-'; + if (sec < 60) return sec + ' 秒'; + const m = Math.floor(sec / 60), s = sec % 60; + if (m < 60) return m + ' 分 ' + String(s).padStart(2, '0') + ' 秒'; + const h = Math.floor(m / 60); + return h + ' 小时 ' + String(m % 60).padStart(2, '0') + ' 分'; + } + + function scoreClass(v) { + if (v == null) return ''; + if (v >= 90) return 'score-high'; + if (v >= 60) return 'score-mid'; + return 'score-low'; + } + + function renderTable() { + const kw = $('#kw').value.trim().toLowerCase(); + const clsFilter = $('#clsSel').value; + let rows = state.rows.slice(); + + if (clsFilter) rows = rows.filter(r => (r.cls || '') === clsFilter); + if (kw) rows = rows.filter(r => + String(r.sid).toLowerCase().includes(kw) || String(r.name).toLowerCase().includes(kw)); + + const k = state.sortKey, dir = state.sortAsc ? 1 : -1; + rows.sort((a, b) => { + let x = a[k], y = b[k]; + if (k === 'sid' || k === 'cls') { + const na = parseFloat(x), nb = parseFloat(y); + if (!isNaN(na) && !isNaN(nb)) return (na - nb) * dir; + return String(x == null ? '' : x).localeCompare(String(y == null ? '' : y), 'zh', { numeric: true }) * dir; + } + if (x == null) x = -1; + if (y == null) y = -1; + if (typeof x === 'string') return x.localeCompare(String(y), 'zh', { numeric: true }) * dir; + return (x - y) * dir; + }); + + const tb = $('#tbody'); + if (!rows.length) { + tb.innerHTML = '' + + (state.rows.length ? '没有匹配的记录' : '暂无提交记录') + ''; + return; + } + tb.innerHTML = rows.map(r => { + const sig = r.sid + '|' + r.score + '|' + r.submit_at; + const changed = state.prevMap[r.sid] && state.prevMap[r.sid] !== sig; + const isNew = r.sid && state.newSids.has(r.sid); + const clsName = (changed ? 'diff ' : '') + (isNew ? 'new' : ''); + return '' + + '' + esc(r.sid) + '' + + '' + esc(r.name) + '' + + '' + esc(r.cls || '') + '' + + '' + (r.score == null ? '-' : r.score) + '' + + '' + esc(r.submit_at) + '' + + '' + esc(r.duration_txt) + '' + + ''; + }).join(''); + + const map = {}; + state.rows.forEach(r => { map[r.sid] = r.sid + '|' + r.score + '|' + r.submit_at; }); + state.prevMap = map; + + $$('#dataTable th.sortable').forEach(th => { + const isCur = th.dataset.k === state.sortKey; + th.innerHTML = th.textContent.replace(/[\s↑↓]+$/, '') + (isCur ? ' ' + (state.sortAsc ? '↑' : '↓') + '' : ''); + }); + } + + function renderAbsent() { + const clsFilter = $('#clsSel').value; + const list = clsFilter ? state.absent.filter(a => (a.cls || '') === clsFilter) : state.absent; + const tb = $('#absentBody'); + if (!list.length) { + tb.innerHTML = '' + (clsFilter ? '本班全部已提交 🎉' : '全部已提交 🎉') + ''; + return; + } + tb.innerHTML = list.map(a => + '' + esc(a.sid) + '' + esc(a.name) + '' + esc(a.cls || '') + '').join(''); + } + + function renderUnmatched() { + const tb = $('#unmatchedBody'); + if (!state.unmatched.length) { + tb.innerHTML = '无'; + return; + } + tb.innerHTML = state.unmatched.map(u => + '' + esc(u.name) + '' + (u.score == null ? '-' : u.score) + + '' + esc(u.submit_at) + '').join(''); + } + + /* ---------------- 自动刷新 ---------------- */ + function schedule() { + if (state.timer) clearInterval(state.timer); + if (!$('#autoRefresh').checked) return; + const sec = parseInt($('#intervalSel').value, 10) || 15; + state.timer = setInterval(() => refresh(true), sec * 1000); + } + + /* ---------------- 全屏 ---------------- */ + function toggleFullscreen() { + const el = document.documentElement; + if (!document.fullscreenElement && !document.webkitFullscreenElement) { + const req = el.requestFullscreen || el.webkitRequestFullscreen; + if (req) req.call(el); + } else { + const exit = document.exitFullscreen || document.webkitExitFullscreen; + if (exit) exit.call(document); + } + } + function onFsChange() { + const on = !!(document.fullscreenElement || document.webkitFullscreenElement); + document.body.classList.toggle('fs-on', on); + const btn = $('#btnFullscreen'); + if (btn) btn.textContent = on ? '⛶ 退出全屏' : '⛶ 全屏'; + } + + /* ---------------- 设置 ---------------- */ + async function openSettings() { + try { + const c = await api('config_get'); + $('#cfgBase').value = c.base_url || ''; + $('#cfgPrefix').value = c.api_prefix || '/api'; + $('#cfgUser').value = c.username || ''; + $('#cfgPwd').value = ''; + $('#cfgPageSize').value = c.page_size || 200; + $('#cfgInterval').value = c.refresh_interval || 15; + $('#cfgTimeout').value = c.timeout || 20; + $('#cfgKeywords').value = c.name_keywords || '姓名'; + $('#cfgDedupe').checked = !!c.dedupe; + $('#cfgTemp').checked = !!c.include_temp_save; + $('#cfgSsl').checked = !!c.verify_ssl; + const pid = $('#projectSel').value; + const scores = (c.full_scores && typeof c.full_scores === 'object') ? c.full_scores : {}; + $('#cfgFull').value = (pid && scores[pid] != null) ? scores[pid] : (c.full_score || 100); + const pObj = state.projects.find(p => p.id === pid); + $('#cfgFullHint').textContent = pid + ? ('应用于当前试卷:' + (pObj ? pObj.name : pid)) + : '未选择试卷时,作为所有试卷的默认值'; + } catch (e) { showAlert(e.message); } + $('#pingResult').classList.add('hidden'); + $('#settingsModal').classList.add('open'); + } + + /* ---------------- 名单 ---------------- */ + let rosterDraft = []; + + async function openRoster() { + try { + const d = await api('roster'); + rosterDraft = d.students || []; + renderRoster(); + $('#rosterMeta').textContent = '共 ' + rosterDraft.length + ' 人' + + (d.meta && d.meta.updated_at ? ' · 更新于 ' + d.meta.updated_at : ''); + } catch (e) { showAlert(e.message); } + $('#rosterModal').classList.add('open'); + } + + function renderRoster() { + const kw = $('#rosterSearch').value.trim().toLowerCase(); + const rows = rosterDraft.filter(r => !kw || + String(r.sid).toLowerCase().includes(kw) || String(r.name).toLowerCase().includes(kw)); + const tb = $('#rosterBody'); + if (!rows.length) { + tb.innerHTML = '暂无名单,请上传文件'; + return; + } + tb.innerHTML = rows.map((r, i) => { + const gi = rosterDraft.indexOf(r); + return '' + + '' + + '' + + '' + + '删除'; + }).join(''); + } + + /* ---------------- 登录门 ---------------- */ + async function showLoginGate() { + const gate = $('#loginGate'); + if (gate) gate.classList.remove('hidden'); + try { + const c = await api('config_get'); + $('#lgBase').value = c.base_url || ''; + $('#lgPrefix').value = c.api_prefix || '/api'; + $('#lgUser').value = c.username || ''; + } catch (e) { /* 取不到配置也可继续,手动填写 */ } + $('#lgPwd').value = ''; + $('#lgLogin').disabled = true; + const msg = $('#lgMsg'); + msg.textContent = ''; + msg.className = 'login-msg'; + } + + async function loginTest() { + const base = $('#lgBase').value.trim(); + const prefix = $('#lgPrefix').value.trim(); + const user = $('#lgUser').value.trim(); + const pwd = $('#lgPwd').value; + const msg = $('#lgMsg'); + if (!base || !prefix || !user || !pwd) { + msg.textContent = '请填写系统网址、API 路由、账号与密码'; + msg.className = 'login-msg err'; + return; + } + msg.textContent = '正在测试连接…'; + msg.className = 'login-msg'; + try { + await api('config_save', { method: 'POST', body: { base_url: base, api_prefix: prefix, username: user, password: pwd } }); + const r = await api('ping'); + msg.textContent = '连接成功!读取到 ' + r.projects + ' 个问卷/考试,可登录'; + msg.className = 'login-msg ok'; + $('#lgLogin').disabled = false; + } catch (e) { + msg.textContent = '连接失败:' + e.message; + msg.className = 'login-msg err'; + $('#lgLogin').disabled = true; + } + } + + function loginEnter() { + const gate = $('#loginGate'); + if (gate) gate.classList.add('hidden'); + schedule(); + loadProjects(); + } + + /* ---------------- 事件绑定 ---------------- */ + document.addEventListener('DOMContentLoaded', function () { + + $('#projectSel').addEventListener('change', () => { state.prevMap = {}; refresh(); }); + $('#nameFieldSel').addEventListener('change', () => { state.prevMap = {}; refresh(); }); + $('#btnRefresh').addEventListener('click', () => refresh(false)); + $('#btnSettings').addEventListener('click', openSettings); + $('#btnRoster').addEventListener('click', openRoster); + $('#btnFullscreen').addEventListener('click', toggleFullscreen); + document.addEventListener('fullscreenchange', onFsChange); + if (document.webkitFullscreenEnabled === undefined && !document.documentElement.requestFullscreen && !document.documentElement.webkitRequestFullscreen) { + $('#btnFullscreen').style.display = 'none'; + } + $('#kw').addEventListener('input', renderTable); + $('#clsSel').addEventListener('change', () => { + renderStats(); + renderTable(); + renderAbsent(); + renderHints(); + }); + $('#intervalSel').addEventListener('change', schedule); + $('#autoRefresh').addEventListener('change', e => { + if (e.target.checked) { schedule(); refresh(true); } + else if (state.timer) clearInterval(state.timer); + }); + + $$('#dataTable th.sortable').forEach(th => { + th.addEventListener('click', () => { + if (state.sortKey === th.dataset.k) state.sortAsc = !state.sortAsc; + else { state.sortKey = th.dataset.k; state.sortAsc = true; } + renderTable(); + }); + }); + + $('#btnExport').addEventListener('click', () => { + const pid = $('#projectSel').value; + if (!pid) return showAlert('请先选择问卷 / 考试'); + location.href = 'api.php?action=export&projectId=' + encodeURIComponent(pid) + + '&nameQid=' + encodeURIComponent($('#nameFieldSel').value); + }); + $('#btnExportAbsent').addEventListener('click', () => { + const pid = $('#projectSel').value; + if (!pid) return showAlert('请先选择问卷 / 考试'); + location.href = 'api.php?action=export_absent&projectId=' + encodeURIComponent(pid) + + '&nameQid=' + encodeURIComponent($('#nameFieldSel').value); + }); + + /* 弹窗关闭 */ + document.addEventListener('click', e => { + if (e.target.matches('[data-close]') || e.target.classList.contains('modal')) { + $$('.modal').forEach(m => m.classList.remove('open')); + } + }); + + /* 设置保存 */ + $('#btnSaveCfg').addEventListener('click', async () => { + const payload = { + base_url: $('#cfgBase').value.trim(), + api_prefix: $('#cfgPrefix').value.trim(), + username: $('#cfgUser').value.trim(), + password: $('#cfgPwd').value, + page_size: parseInt($('#cfgPageSize').value, 10) || 200, + refresh_interval: parseInt($('#cfgInterval').value, 10) || 15, + timeout: parseInt($('#cfgTimeout').value, 10) || 20, + name_keywords: $('#cfgKeywords').value.trim(), + dedupe: $('#cfgDedupe').checked, + include_temp_save: $('#cfgTemp').checked, + verify_ssl: $('#cfgSsl').checked, + full_score: parseInt($('#cfgFull').value, 10) || 100, + project_id: $('#projectSel').value + }; + try { + await api('config_save', { method: 'POST', body: payload }); + $('#settingsModal').classList.remove('open'); + const iv = payload.refresh_interval; + const opts = $$('#intervalSel option').map(o => parseInt(o.value, 10)); + let best = opts[0]; + opts.forEach(v => { if (Math.abs(v - iv) < Math.abs(best - iv)) best = v; }); + $('#intervalSel').value = String(best); + schedule(); + loadProjects(); + } catch (e) { showAlert(e.message); } + }); + + $('#btnPing').addEventListener('click', async () => { + const el = $('#pingResult'); + el.classList.remove('hidden', 'err'); + el.textContent = '正在测试…'; + try { + const payload = { + base_url: $('#cfgBase').value.trim(), + api_prefix: $('#cfgPrefix').value.trim(), + username: $('#cfgUser').value.trim(), + password: $('#cfgPwd').value, + timeout: parseInt($('#cfgTimeout').value, 10) || 20, + verify_ssl: $('#cfgSsl').checked + }; + await api('config_save', { method: 'POST', body: payload }); + const r = await api('ping'); + el.textContent = '连接成功!读取到 ' + r.projects + ' 个问卷/考试,耗时 ' + r.elapsed + ' ms'; + } catch (e) { + el.classList.add('err'); + el.textContent = '连接失败:' + e.message; + } + }); + + $('#btnDiag').addEventListener('click', async () => { + const el = $('#pingResult'); + el.classList.remove('hidden', 'err'); + el.textContent = '诊断中…'; + try { + const payload = { + base_url: $('#cfgBase').value.trim(), + api_prefix: $('#cfgPrefix').value.trim(), + username: $('#cfgUser').value.trim(), + password: $('#cfgPwd').value, + timeout: parseInt($('#cfgTimeout').value, 10) || 20, + verify_ssl: $('#cfgSsl').checked + }; + await api('config_save', { method: 'POST', body: payload }); + const d = await api('diag'); + const lines = (d.steps || []).map(s => (s.ok ? '✅ ' : '❌ ') + s.step + '\n ' + s.detail); + const failed = (d.steps || []).some(s => !s.ok); + el.classList.toggle('err', failed); + el.textContent = lines.join('\n'); + } catch (e) { + el.classList.add('err'); + el.textContent = '诊断失败:' + e.message; + } + }); + + /* 名单上传 */ + const zone = $('#dropZone'), fileInput = $('#rosterFile'); + zone.addEventListener('click', () => fileInput.click()); + zone.addEventListener('dragover', e => { e.preventDefault(); zone.classList.add('over'); }); + zone.addEventListener('dragleave', () => zone.classList.remove('over')); + zone.addEventListener('drop', e => { + e.preventDefault(); zone.classList.remove('over'); + if (e.dataTransfer.files.length) uploadRoster(e.dataTransfer.files[0]); + }); + fileInput.addEventListener('change', () => { + if (fileInput.files.length) uploadRoster(fileInput.files[0]); + fileInput.value = ''; + }); + + async function uploadRoster(file) { + const fd = new FormData(); + fd.append('file', file); + const mode = (document.querySelector('input[name=impMode]:checked') || {}).value || 'replace'; + fd.append('mode', mode); + try { + const d = await api('roster_import', { form: fd }); + rosterDraft = d.students || []; + renderRoster(); + $('#rosterMeta').textContent = '共 ' + rosterDraft.length + ' 人 · 导入完成'; + $('#rosterBadge').textContent = rosterDraft.length; + } catch (e) { showAlert(e.message); } + } + + $('#rosterSearch').addEventListener('input', renderRoster); + $('#btnAddRow').addEventListener('click', () => { + rosterDraft.push({ sid: '', name: '', cls: '' }); + renderRoster(); + }); + $('#btnClearRoster').addEventListener('click', async () => { + if (!confirm('确定清空全部名单?')) return; + try { + const d = await api('roster_clear', { method: 'POST' }); + rosterDraft = []; + renderRoster(); + $('#rosterBadge').textContent = '0'; + $('#rosterMeta').textContent = '共 0 人'; + } catch (e) { showAlert(e.message); } + }); + + $('#rosterBody').addEventListener('input', e => { + const tr = e.target.closest('tr'); + if (!tr) return; + const i = parseInt(tr.dataset.i, 10); + if (isNaN(i)) return; + rosterDraft[i][e.target.dataset.f] = e.target.value; + }); + $('#rosterBody').addEventListener('click', e => { + const id = e.target.getAttribute && e.target.getAttribute('data-del'); + if (id == null) return; + rosterDraft.splice(parseInt(id, 10), 1); + renderRoster(); + }); + + $('#btnSaveRoster').addEventListener('click', async () => { + try { + const d = await api('roster_save', { method: 'POST', body: { students: rosterDraft } }); + rosterDraft = d.students || []; + renderRoster(); + $('#rosterBadge').textContent = rosterDraft.length; + $('#rosterMeta').textContent = '共 ' + rosterDraft.length + ' 人 · 已保存'; + if ($('#projectSel').value) refresh(true); + } catch (e) { showAlert(e.message); } + }); + + /* 启动 */ + // 支持 ?projectId=xxx&nameQid=yyy 直接打开某份问卷 + const qs = new URLSearchParams(location.search); + if (qs.get('interval')) $('#intervalSel').value = qs.get('interval'); + state.deeplinkProject = qs.get('projectId') || ''; + state.deeplinkQid = qs.get('nameQid') || ''; + + // 登录门 + $('#lgTest').addEventListener('click', loginTest); + $('#lgLogin').addEventListener('click', loginEnter); + $('#lgPwd').addEventListener('keydown', e => { if (e.key === 'Enter') loginTest(); }); + + // 启动:先显示登录门,不直接拉取数据(防止依赖一次配置直接查看数据) + showLoginGate(); + }); +})(); diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..1364cf3 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,364 @@ +:root { + --bg: #f4f6fa; + --panel: #ffffff; + --border: #e4e8f0; + --border-2: #eef1f6; + --text: #1d2433; + --text-2: #5b6577; + --text-3: #8b95a7; + --primary: #2f6bff; + --primary-weak: #eaf0ff; + --ok: #12a86a; + --ok-weak: #e7f7ef; + --warn: #e08c1a; + --warn-weak: #fdf3e2; + --danger: #e0483d; + --danger-weak: #fdecea; + --shadow: 0 1px 2px rgba(20, 30, 60, .05), 0 8px 24px rgba(20, 30, 60, .06); + --radius: 12px; +} + +* { box-sizing: border-box; } + +html, body { + margin: 0; + padding: 0; + background: var(--bg); + color: var(--text); + font: 14px/1.55 "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, -apple-system, sans-serif; + -webkit-font-smoothing: antialiased; +} + +/* ---------- 顶栏 ---------- */ +.topbar { + position: sticky; + top: 0; + z-index: 30; + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 12px 24px; + background: #fff; + border-bottom: 1px solid var(--border); +} +.brand { display: flex; align-items: center; gap: 12px; } +.logo { + width: 38px; height: 38px; + border-radius: 10px; + background: linear-gradient(135deg, #2f6bff, #6a4bff); + color: #fff; font-weight: 800; font-size: 15px; + display: grid; place-items: center; + letter-spacing: .5px; +} +.brand-text { display: flex; flex-direction: column; } +.brand-text strong { font-size: 16px; letter-spacing: .3px; } +.brand-text small { color: var(--text-3); font-size: 12px; } +.top-right { display: flex; align-items: center; gap: 10px; } + +.conn { + display: inline-flex; align-items: center; gap: 7px; + padding: 5px 12px; border-radius: 999px; + font-size: 12px; font-weight: 600; + background: var(--border-2); color: var(--text-2); +} +.conn i { width: 8px; height: 8px; border-radius: 50%; background: var(--text-3); } +.conn-on { background: var(--ok-weak); color: var(--ok); } +.conn-on i { background: var(--ok); box-shadow: 0 0 0 3px rgba(18,168,106,.15); } +.conn-off { background: var(--border-2); color: var(--text-2); } +.conn-err { background: var(--danger-weak); color: var(--danger); } +.conn-err i { background: var(--danger); } +.conn-load i { background: var(--warn); animation: blink 1s infinite; } +@keyframes blink { 50% { opacity: .25; } } + +/* ---------- 按钮 ---------- */ +.btn { + border: 1px solid var(--border); + background: #fff; + color: var(--text); + padding: 7px 14px; + border-radius: 8px; + font-size: 13px; + cursor: pointer; + transition: .15s; + font-family: inherit; +} +.btn:hover { border-color: #c9d2e3; background: #fafbfe; } +.btn:active { transform: translateY(1px); } +.btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; } +.btn-primary:hover { background: #2559db; border-color: #2559db; } +.btn.sm { padding: 5px 10px; font-size: 12px; } +.btn.danger { color: var(--danger); border-color: #f3cfcb; } +.btn.danger:hover { background: var(--danger-weak); } +.btn b { + display: inline-block; margin-left: 4px; padding: 0 6px; + background: var(--primary-weak); color: var(--primary); + border-radius: 999px; font-size: 11px; +} + +/* ---------- 布局 ---------- */ +.wrap { max-width: 1440px; margin: 0 auto; padding: 20px 24px 48px; } + +.toolbar { + display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; + background: var(--panel); border: 1px solid var(--border); + border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); +} +.field { display: flex; flex-direction: column; gap: 6px; } +.field.grow { flex: 1 1 260px; min-width: 220px; } +.field.grow-2 { flex: 1 1 200px; min-width: 180px; } +.field.btns { flex-direction: row; gap: 8px; align-items: center; } +.field label { font-size: 12px; color: var(--text-2); font-weight: 600; } +.inline { display: flex; align-items: center; gap: 10px; } + +select, input[type=text], input[type=number], input[type=password] { + height: 36px; padding: 0 10px; + border: 1px solid var(--border); border-radius: 8px; + background: #fff; color: var(--text); font-size: 13px; + font-family: inherit; outline: none; width: 100%; +} +select:focus, input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(47,107,255,.12); } +.field.btns select { width: 100px; } + +.switch { position: relative; display: inline-block; width: 40px; height: 22px; flex: none; } +.switch input { opacity: 0; width: 0; height: 0; } +.switch span { + position: absolute; inset: 0; cursor: pointer; + background: #d3d9e6; border-radius: 999px; transition: .2s; +} +.switch span::before { + content: ''; position: absolute; width: 18px; height: 18px; + left: 2px; top: 2px; background: #fff; border-radius: 50%; transition: .2s; +} +.switch input:checked + span { background: var(--primary); } +.switch input:checked + span::before { transform: translateX(18px); } + +/* ---------- 提示 ---------- */ +.alert { + margin-top: 14px; padding: 12px 16px; border-radius: 10px; + background: var(--danger-weak); color: #a3342c; border: 1px solid #f5d3cf; + font-size: 13px; white-space: pre-wrap; +} +.alert.info { background: var(--primary-weak); color: #1a45ad; border-color: #ccdaff; } +.hidden { display: none !important; } + +/* ---------- 卡片 ---------- */ +.cards { + display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); + gap: 12px; margin-top: 16px; +} +.card { + background: var(--panel); border: 1px solid var(--border); + border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); + display: flex; flex-direction: column; gap: 4px; +} +.card span { font-size: 12px; color: var(--text-3); } +.card b { font-size: 24px; font-weight: 700; letter-spacing: .5px; white-space: nowrap; } +.card.ok b { color: var(--ok); } +.card.warn b { color: var(--warn); } + +/* ---------- 面板 ---------- */ +.panel { + margin-top: 16px; background: var(--panel); + border: 1px solid var(--border); border-radius: var(--radius); + box-shadow: var(--shadow); overflow: hidden; +} +.panel-head { + display: flex; align-items: center; justify-content: space-between; + padding: 12px 16px; border-bottom: 1px solid var(--border-2); +} +.panel-head h2 { margin: 0; font-size: 15px; font-weight: 700; } +.panel-head h2 small { font-weight: 500; color: var(--text-3); font-size: 12px; margin-left: 8px; } +.updated { font-size: 12px; color: var(--text-3); display: flex; align-items: center; gap: 6px; } +.dot { width: 7px; height: 7px; border-radius: 50%; background: #cbd3e2; display: inline-block; } +.dot.on { background: var(--ok); animation: pulse 1.6s infinite; } +@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .25; } } + +.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } +@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } } + +/* ---------- 表格 ---------- */ +.table-scroll { overflow: auto; max-height: 62vh; } +.table-scroll.short { max-height: 320px; } +.table-scroll.mid { max-height: 380px; } + +table.grid { width: 100%; border-collapse: collapse; font-size: 13px; } +table.grid th { + position: sticky; top: 0; z-index: 2; + background: #fafbfe; color: var(--text-2); + text-align: left; font-weight: 600; font-size: 12px; + padding: 10px 14px; border-bottom: 1px solid var(--border); + white-space: nowrap; +} +table.grid th.sortable { cursor: pointer; user-select: none; } +table.grid th.sortable:hover { color: var(--primary); } +table.grid th .arrow { color: var(--primary); margin-left: 3px; } +table.grid td { padding: 9px 14px; border-bottom: 1px solid var(--border-2); } +table.grid tbody tr:hover td { background: #fafbfe; } +table.grid.compact td, table.grid.compact th { padding: 7px 12px; } +td.empty { text-align: center; color: var(--text-3); padding: 32px 0; } +td.num { font-variant-numeric: tabular-nums; white-space: nowrap; } +td.sid { font-weight: 600; color: var(--text-2); font-variant-numeric: tabular-nums; } +td.name { font-weight: 600; } +td.score { font-weight: 700; font-variant-numeric: tabular-nums; } +.score-high { color: var(--ok); } +.score-mid { color: var(--warn); } +.score-low { color: var(--danger); } +.diff { animation: flash 1.6s ease-out; } +@keyframes flash { from { background: #fff6d9; } to { background: transparent; } } + +/* 新增数据绿色底纹(每次刷新后标记,下一轮刷新前持续显示) */ +table.grid tbody tr.new td { background: #e7f7ee; } +table.grid tbody tr.new:hover td { background: #d6f2e2; } + +.tag { + display: inline-block; padding: 1px 8px; border-radius: 999px; + font-size: 11px; font-weight: 600; +} +.tag-ok { background: var(--ok-weak); color: var(--ok); } +.tag-warn { background: var(--warn-weak); color: var(--warn); } +.tag-gray { background: var(--border-2); color: var(--text-3); } + +/* ---------- 弹窗 ---------- */ +.modal { + position: fixed; inset: 0; z-index: 100; + background: rgba(20, 28, 48, .45); + display: none; align-items: center; justify-content: center; + padding: 24px; backdrop-filter: blur(2px); +} +.modal.open { display: flex; } +.modal-box { + background: #fff; border-radius: 14px; width: 640px; max-width: 100%; + max-height: 90vh; display: flex; flex-direction: column; + box-shadow: 0 24px 64px rgba(15, 23, 42, .28); +} +.modal-box.wide { width: 820px; } +.modal-head { + display: flex; align-items: center; justify-content: space-between; + padding: 14px 18px; border-bottom: 1px solid var(--border); +} +.modal-head h3 { margin: 0; font-size: 15px; } +.x { border: 0; background: none; font-size: 22px; line-height: 1; cursor: pointer; color: var(--text-3); } +.x:hover { color: var(--text); } +.modal-body { padding: 18px; overflow: auto; } +.modal-foot { + display: flex; align-items: center; gap: 8px; + padding: 12px 18px; border-top: 1px solid var(--border); background: #fbfcfe; + border-radius: 0 0 14px 14px; +} +.spacer { flex: 1; } + +.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } +.fi { display: flex; flex-direction: column; gap: 6px; } +.fi.full { grid-column: 1 / -1; } +.fi label { font-size: 12px; font-weight: 600; color: var(--text-2); } +.hint { margin: 0; font-size: 11px; color: var(--text-3); } +.fi.checks { flex-direction: row; flex-wrap: wrap; gap: 18px; } +.fi.checks label { display: flex; align-items: center; gap: 6px; font-weight: 500; font-size: 13px; color: var(--text); } +.ping-result { + margin-top: 14px; padding: 10px 12px; border-radius: 8px; + font-size: 12px; white-space: pre-wrap; + background: var(--ok-weak); color: #0d7a4d; border: 1px solid #c8ecda; +} +.ping-result.err { background: var(--danger-weak); color: #a3342c; border-color: #f5d3cf; } + +/* ---------- 名单 ---------- */ +.upload-zone { + border: 2px dashed #cfd8ea; border-radius: 10px; padding: 22px; + text-align: center; cursor: pointer; transition: .15s; background: #fbfcfe; +} +.upload-zone:hover, .upload-zone.over { border-color: var(--primary); background: var(--primary-weak); } +.uz-inner { display: flex; flex-direction: column; gap: 4px; } +.uz-inner strong { font-size: 13px; } +.uz-inner span { font-size: 12px; color: var(--text-3); } +.roster-bar { + display: flex; align-items: center; gap: 10px; margin: 14px 0 10px; flex-wrap: wrap; +} +.roster-bar input[type=text] { width: 180px; } +.chk { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text-2); } +#rosterBody input { + width: 100%; border: 1px solid transparent; background: transparent; + padding: 4px 6px; border-radius: 6px; font-size: 13px; font-family: inherit; color: var(--text); +} +#rosterBody input:focus { border-color: var(--primary); background: #fff; outline: none; } +.link-del { color: var(--danger); cursor: pointer; font-size: 12px; } + +/* ---------- 登录门 ---------- */ +.login-gate { + position: fixed; inset: 0; z-index: 200; + display: flex; align-items: center; justify-content: center; + padding: 24px; background: linear-gradient(135deg, #1b2440, #2f6bff); +} +.login-gate.hidden { display: none; } +.login-box { + width: 420px; max-width: 100%; + background: #fff; border-radius: 16px; padding: 28px 26px; + box-shadow: 0 24px 64px rgba(15, 23, 42, .35); +} +.login-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; } +.login-tip { margin: 0 0 18px; font-size: 12px; color: var(--text-3); line-height: 1.5; } +.login-box .fi { margin-bottom: 14px; } +.login-actions { display: flex; gap: 10px; margin-top: 4px; } +.login-actions .btn { flex: 1; } +.login-msg { margin-top: 12px; font-size: 12px; min-height: 18px; white-space: pre-wrap; } +.login-msg.ok { color: var(--ok); } +.login-msg.err { color: var(--danger); } + +/* ---------- 全屏适配 ---------- */ +body.fs-on .wrap { max-width: none; padding-top: 8px; } +body.fs-on .table-scroll { max-height: calc(100vh - 230px); } +body.fs-on .table-scroll.short { max-height: 40vh; } +body.fs-on .cards { gap: 14px; } +body.fs-on .card b { font-size: 28px; } +body.fs-on .topbar { padding-top: 8px; padding-bottom: 8px; } + +/* ---------- 三端自适应(桌面 / 平板 / 手机) ---------- */ +@media (max-width: 1180px) { + .wrap { padding: 16px 16px 40px; } + .topbar { padding: 10px 16px; } +} + +@media (max-width: 1024px) { + .grid-2 { grid-template-columns: 1fr; } + .field.grow, .field.grow-2 { flex: 1 1 100%; min-width: 0; } +} + +@media (max-width: 768px) { + body { font-size: 13px; } + .topbar { flex-wrap: wrap; gap: 10px; } + .brand-text small { display: none; } + .top-right { flex-wrap: wrap; gap: 8px; } + .top-right .btn { padding: 6px 10px; font-size: 12px; } + .btn b { font-size: 10px; } + .wrap { padding: 12px 12px 36px; } + .toolbar { padding: 12px; gap: 10px; } + .field { flex: 1 1 100%; min-width: 0; } + .field.btns { flex: 1 1 100%; } + .field.btns select { width: 100%; } + .cards { grid-template-columns: repeat(3, 1fr); gap: 8px; } + .card { padding: 10px 12px; } + .card b { font-size: 20px; } + .panel-head { flex-direction: column; align-items: flex-start; gap: 6px; } + .table-scroll { max-height: 56vh; } + table.grid { font-size: 12px; } + table.grid th { padding: 8px 10px; white-space: nowrap; } + table.grid td { padding: 7px 10px; } + .modal { padding: 10px; } + .modal-box, .modal-box.wide { width: 100%; max-height: 92vh; } + .form-grid { grid-template-columns: 1fr; } + .modal-body { padding: 14px; } + .roster-bar .chk { font-size: 11px; } +} + +@media (max-width: 480px) { + .cards { grid-template-columns: repeat(2, 1fr); } + .brand-text strong { font-size: 14px; } + .topbar .logo { width: 32px; height: 32px; font-size: 13px; } + .btn { padding: 6px 9px; font-size: 12px; } + .field label { font-size: 11px; } + .roster-bar { gap: 8px; } + .roster-bar input[type=text] { width: 120px; } + .panel-head h2 { font-size: 14px; } + #rosterBody input { font-size: 12px; } +} + diff --git a/bootstrap.php b/bootstrap.php new file mode 100644 index 0000000..f53afb6 --- /dev/null +++ b/bootstrap.php @@ -0,0 +1,239 @@ += 8.0 + */ +declare(strict_types=1); + +const NY_APP_NAME = 'NY问卷考试系统数据平台'; +const NY_VERSION = '1.0.0'; + +define('NY_ROOT', str_replace('\\', '/', __DIR__)); +define('NY_DATA', NY_ROOT . '/data'); + +// ---------------- 环境预检 ---------------- +if (PHP_VERSION_ID < 80000) { + http_response_code(500); + header('Content-Type: text/html; charset=utf-8'); + echo '

环境不满足

本平台需要 PHP 8.0 及以上,当前版本:' . PHP_VERSION . '

'; + exit; +} +$missing = []; +foreach (['curl' => 'curl', 'json' => 'json', 'mbstring' => 'mbstring'] as $fn => $ext) { + if (!extension_loaded($ext)) { + $missing[] = $ext; + } +} +if ($missing !== []) { + http_response_code(500); + header('Content-Type: text/html; charset=utf-8'); + echo '

缺少 PHP 扩展

请在 php.ini 中启用:' . implode('、', $missing) . '

' + . '

Windows:去掉 extension=' . $missing[0] . ' 前面的分号并重启服务。' + . '(zip 扩展可选,未启用时会用内置解析器读取 xlsx)

'; + exit; +} + +date_default_timezone_set('Asia/Shanghai'); +mb_internal_encoding('UTF-8'); + +// ---------------- 目录初始化 ---------------- +foreach (['', '/cache', '/uploads'] as $sub) { + $dir = NY_DATA . $sub; + if (!is_dir($dir)) { + @mkdir($dir, 0777, true); + } +} +// 保护数据目录(Apache) +if (!file_exists(NY_DATA . '/.htaccess')) { + @file_put_contents(NY_DATA . '/.htaccess', "Deny from all\n"); +} + +// ---------------- 默认配置 ---------------- +function ny_default_config(): array +{ + return [ + 'base_url' => 'https://exam.nxxy335.top', + 'api_prefix' => '/api', + 'username' => 'admin', + 'password' => '123456', + 'verify_ssl' => true, + 'timeout' => 20, + 'refresh_interval' => 15, + 'page_size' => 200, + 'include_temp_save' => false, + 'dedupe' => true, + 'name_keywords' => '姓名,名字,学生姓名,考生姓名,您的姓名,姓名:,姓名:', + 'full_score' => 100, + 'full_scores' => [], + ]; +} + +function ny_config_file(): string +{ + return NY_DATA . '/config.json'; +} + +function ny_load_config(): array +{ + $cfg = ny_default_config(); + $saved = ny_read_json(ny_config_file(), null); + if (is_array($saved)) { + foreach ($cfg as $k => $v) { + if (array_key_exists($k, $saved)) { + $cfg[$k] = is_bool($v) ? (bool)$saved[$k] : $saved[$k]; + } + } + } + $cfg['base_url'] = rtrim(trim((string)$cfg['base_url']), '/'); + $cfg['api_prefix'] = '/' . trim((string)$cfg['api_prefix'], '/'); + return $cfg; +} + +function ny_save_config(array $cfg): bool +{ + return ny_write_json(ny_config_file(), $cfg); +} + +/** 安全的字符串化(避免数组/对象转字符串报错) */ +function ny_str(mixed $v): string +{ + if ($v === null || is_array($v) || is_object($v)) { + return ''; + } + return trim((string)$v); +} + +// ---------------- JSON 文件读写 ---------------- +function ny_read_json(string $file, mixed $default = null): mixed +{ + if (!is_file($file)) { + return $default; + } + $raw = @file_get_contents($file); + if ($raw === false || trim($raw) === '') { + return $default; + } + $data = json_decode($raw, true); + return $data === null ? $default : $data; +} + +function ny_write_json(string $file, mixed $data): bool +{ + $tmp = $file . '.tmp'; + $ok = @file_put_contents($tmp, json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), LOCK_EX); + if ($ok === false) { + return false; + } + return @rename($tmp, $file) || @copy($tmp, $file); +} + +// ---------------- 输出 ---------------- +function ny_json(mixed $data, int $http = 200): void +{ + http_response_code($http); + header('Content-Type: application/json; charset=utf-8'); + header('Cache-Control: no-store'); + echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE); +} + +function ny_ok(mixed $data = null): void +{ + ny_json(['ok' => true, 'data' => $data]); + exit; +} + +function ny_fail(string $msg, mixed $extra = null): void +{ + ny_json(['ok' => false, 'msg' => $msg, 'extra' => $extra]); + exit; +} + +// ---------------- 工具函数 ---------------- +/** 规范化姓名:去空白、去全角空格、统一大小写 */ +function ny_norm_name(string $s): string +{ + $s = str_replace(["\xC2\xA0", ' '], '', $s); + $s = preg_replace('/\s+/u', '', $s) ?? ''; + return mb_strtolower(trim($s)); +} + +/** 把任意结构的答卷值压平成字符串 */ +function ny_flatten_value(mixed $v): string +{ + if ($v === null) { + return ''; + } + if (is_bool($v)) { + return $v ? '1' : ''; + } + if (is_int($v) || is_float($v)) { + return trim((string)$v); + } + if (is_string($v)) { + return trim($v); + } + if (is_array($v)) { + foreach (['value', 'text', 'label', 'name', 'content', 'title'] as $k) { + if (isset($v[$k]) && (is_string($v[$k]) || is_numeric($v[$k]))) { + return trim((string)$v[$k]); + } + } + $parts = []; + foreach ($v as $item) { + $s = ny_flatten_value($item); + if ($s !== '') { + $parts[] = $s; + } + } + return implode(',', $parts); + } + return trim((string)$v); +} + +/** 时间字段 -> 时间戳(秒) */ +function ny_to_timestamp(mixed $v): int +{ + if ($v === null || $v === '') { + return 0; + } + if (is_numeric($v)) { + $n = (int)$v; + if ($n > 1000000000000) { // 毫秒 + return intdiv($n, 1000); + } + return $n; + } + $t = strtotime((string)$v); + return $t === false ? 0 : $t; +} + +/** 秒 -> 12分34秒 */ +function ny_format_duration(?int $sec): string +{ + if ($sec === null || $sec < 0) { + return '-'; + } + if ($sec < 60) { + return $sec . '秒'; + } + $m = intdiv($sec, 60); + $s = $sec % 60; + if ($m < 60) { + return $m . '分' . str_pad((string)$s, 2, '0', STR_PAD_LEFT) . '秒'; + } + $h = intdiv($m, 60); + return $h . '小时' . str_pad((string)($m % 60), 2, '0', STR_PAD_LEFT) . '分' . str_pad((string)$s, 2, '0', STR_PAD_LEFT) . '秒'; +} + +// ---------------- 类自动加载 ---------------- +spl_autoload_register(function (string $class): void { + $map = [ + 'XlsxReader' => NY_ROOT . '/lib/XlsxReader.php', + 'SurveyKingClient' => NY_ROOT . '/lib/SurveyKingClient.php', + 'Roster' => NY_ROOT . '/lib/Roster.php', + 'DataService' => NY_ROOT . '/lib/DataService.php', + ]; + if (isset($map[$class]) && is_file($map[$class])) { + require $map[$class]; + } +}); diff --git a/docs/预览图/1-首页.png b/docs/预览图/1-首页.png new file mode 100644 index 0000000000000000000000000000000000000000..fe65c91d55b84c0acd57bda069262e5849fc6421 GIT binary patch literal 56352 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

rfO(!zUCnlaH(W{vlGNQ>Lhsu^7=z4g>iR~M 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

HkN`cm}ruWO^hHgDY!6g29K73V4xnW==+-} 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 z z>9^aQqTSG9%xmN9HDXMS+A2x7%x}U-@j$EK;g_}|$@3^W5+`qp>0~80lNl`O$wDfU zSTiIw9XJ&*%oyI((d>YDF&fJLUdml`Y2Y_c&$ayLh5k5K<3}04;)klA#`sNEx=v9izrreM-$RS^ww5zVO@uzRFpGtj^a*ZJDj+ek#Y1vo&phnekUI z-0yv5>U=P62`ZCLyfoNvXJ*mz*hmEi-+K397+?+f7GN+)pYXVNIb{a9rO2Q&MGh@!zdUx-@ zdS;By;Ooe7mc@mokfd~{k;8mhIbv8ntRe@VEKP;0HVOhK0%w&h!m@)0X1B(!1vra7 zzOHvs{~pkBs^iMxJ!F+-Ts>;8+*Cgpfwg95yh6wOKHrx}TPp4&@|gY3xh=#kT2PYl zrKBI^o4fSPqaoB4ArhP}6t$3e^NLz?gUFoom>G8)EAWH~Iuegv23=vgk7#?{g5Oi} zuA?T3d>=EMUeii|tLZegbXzPisz!`R1eDM%v=afiz19m3vpJ{@kHLL&*{7W(y*_hM zaoF=Ab=06-pZ!*APJp>5DogY~oOZNH8Tpy2Cr<)+m zQP?FB<61867g3f~5$b=qljP%}W0h$MhfkF^efwcz+;PSI9q-YM$-YOwu$e}JkkiVp zCY))eJI{WmaTLB9&r0iDrm-7Q>1wBB-Zg`?GqMW4XC?1pcV+dw+7MB$SoO9p*1c^F z{yMFa*YZ~}ej=!_5Pun#?-pQ^sxl`%_FAg1lY2$WxN;^2IeNbQxUL)OY_cCbvj)do z%uCr~t=X{0WZR_9UW$c@WK#R$*6*!p6f7{F{7|9F}`$KGZ^ zDOhm=jj{W}AXv?!c=^U8jZMtKoL7dvO405rLVM7aopEYMO(!!imUoVI^KPL6=lpKHWWZ$|5;KrL$Uw7DEVWl>XKhj3`X{OulTL)u7x61ilmLOF8 zskbUd(m%`p&H^e%7*HD1z*`p?Kp|j%Y?Dr-x2aFwLrLGKd$(j&v>Z?SABM7nGh4KQ z-8n3%FHaQS)yGS|UXNh5!!-vwSrMKug*mn|y#dx`=*o9xI|FoA?v0@K@la86gQ9v4 zOW~+bo^I@5Y)b&H+^%M+d|L(7x?QHK)4gLzs;q*gIS;7$?RYpkC@j$Ow_vcv{shwx z8)LG452?HvEEmW6Jn()~^9jf?^eHvZkxBar38tmZ;2+J=4u}Qn?kixMGX464nP#3$ zFRxEYY1JEK74h?&V-vGuFz4ti6^Tr9!%e&-QtUcl4%zWN9vYIf*E~+VyMDIVEA=&a z|0}%wec#uaI5k~3E&oNI)Mr6sC_F(I#F%N=O6SJT{T(nLx>c2> zb1Z)_qo!>|p!S@gm>0H?xX|W&xKMSez&%JoRqBcS6$tNA@3lw^1El(w(?P2e0+R@qxJCGXS`cJ{$GF9)%TI`JQX

c1F(axZVE_oqt-UpjOU8{ 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 literal 0 HcmV?d00001 diff --git a/docs/预览图/3-系统设置.png b/docs/预览图/3-系统设置.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d7f751030324225f227575548eda9b1932bac1 GIT binary patch literal 114326 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΍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 coCI0l@hJzTZnL@zjR#V0*O&p7))QR!*_^6HPD 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 N>KJL4Yh8cze*nX*jd1_~ literal 0 HcmV?d00001 diff --git a/docs/预览图/4-名单管理.png b/docs/预览图/4-名单管理.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4b6cefc6475deabfc3f7a913186c55078b79f5 GIT binary patch literal 109478 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 literal 0 HcmV?d00001 diff --git a/index.php b/index.php new file mode 100644 index 0000000..4117fc4 --- /dev/null +++ b/index.php @@ -0,0 +1,268 @@ + + + + + + +<?= htmlspecialchars(NY_APP_NAME) ?> + + + + +

+
+ +
+ NY问卷考试系统数据平台 + 卷王问卷系统 · 实时数据统计 +
+
+
+
未连接
+ + + +
+
+ + + + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+
+
+ +
+
+ + +
+
+ + +
+
+ + + +
+
名单总人数-
+
已提交-
+
缺考-
+
提交率-
+
平均分-
+
最高分-
+
最低分-
+
合格率(≥60%满分)-
+
平均用时-
+
+ +
+
+

成绩明细

+
最后更新:—
+
+
+ + + + + + + + + + + + +
学号姓名班级成绩提交时间考试时长
请选择问卷 / 考试
+
+
+ +
+
+

缺考名单

+
+ + + +
学号姓名班级
—
+
+
+
+

未匹配答卷 姓名不在名单中

+
+ + + +
姓名成绩提交时间
—
+
+
+
+
+ + + + + + + + + + + diff --git a/lib/DataService.php b/lib/DataService.php new file mode 100644 index 0000000..a8e7159 --- /dev/null +++ b/lib/DataService.php @@ -0,0 +1,311 @@ + 学号 / 姓名 / 成绩 / 提交时间 / 考试时长 + */ +declare(strict_types=1); + +class DataService +{ + /** 容器型题目(分页、题组、说明)不参与取值 */ + private const CONTAINER_TYPES = [ + 'pagination', 'page', 'group', 'survey', 'divider', 'tree', + ]; + + /** 题目标题可能是富文本,去掉标签便于展示与匹配 */ + private static function cleanTitle(string $t): string + { + $t = strip_tags($t); + $t = html_entity_decode($t, ENT_QUOTES | ENT_HTML5, 'UTF-8'); + return trim(preg_replace('/\s+/u', ' ', $t) ?? ''); + } + + /** + * 展平题目树 + * @return array + */ + public static function flattenQuestions(mixed $node, string $path = ''): array + { + $out = []; + if (!is_array($node)) { + return $out; + } + + // children 在根或子节点 + $self = $node; + $children = (isset($node['children']) && is_array($node['children'])) ? $node['children'] : null; + + $id = isset($self['id']) ? (string)$self['id'] : ''; + $title = isset($self['title']) ? self::cleanTitle((string)$self['title']) : ''; + $type = isset($self['type']) ? (string)$self['type'] : ''; + + $isRoot = ($path === ''); + if (!$isRoot && $id !== '' && !in_array(strtolower($type), self::CONTAINER_TYPES, true)) { + $out[] = [ + 'id' => $id, + 'title' => $title !== '' ? $title : $id, + 'type' => $type, + 'path' => $path, + ]; + } + + if ($children !== null) { + foreach ($children as $idx => $child) { + $subPath = $path === '' ? (string)($idx + 1) : $path . '-' . ($idx + 1); + foreach (self::flattenQuestions($child, $subPath) as $q) { + $out[] = $q; + } + } + } + return $out; + } + + /** 根据关键词猜测"姓名"题 */ + public static function guessNameQuestion(array $questions, string $keywords): array + { + $kws = array_values(array_filter(array_map('trim', preg_split('/[,,]/u', $keywords) ?: []))); + $candidates = []; + foreach ($questions as $q) { + $t = (string)$q['title']; + foreach ($kws as $kw) { + if ($kw !== '' && mb_stripos($t, $kw) !== false) { + $candidates[] = $q; + break; + } + } + } + return $candidates; + } + + /** + * 组装结果 + */ + public static function build(array $cfg, string $projectId, string $nameQid = ''): array + { + $client = new SurveyKingClient($cfg); + + $students = Roster::all(); + // 姓名 -> 学号 / 班级(规范化) + $studentInfo = []; + foreach ($students as $s) { + $k = ny_norm_name((string)$s['name']); + if ($k !== '') { + $studentInfo[$k] = [ + 'sid' => (string)$s['sid'], + 'cls' => (string)($s['cls'] ?? ''), + ]; + } + } + + $project = $client->getProject($projectId); + $survey = $project['survey'] ?? null; + if (is_string($survey) && $survey !== '') { + $decoded = json_decode($survey, true); + if (is_array($decoded)) { + $survey = $decoded; + } + } + $questions = self::flattenQuestions($survey); + + $keywords = (string)($cfg['name_keywords'] ?? '姓名'); + $nameCandidates = self::guessNameQuestion($questions, $keywords); + $autoQid = $nameCandidates[0]['id'] ?? ''; + + // 指定优先 + $pickedQid = $nameQid !== '' ? $nameQid : $autoQid; + $candidateIds = []; + if ($pickedQid !== '') { + $candidateIds[] = $pickedQid; + } + foreach ($nameCandidates as $q) { + if (!in_array($q['id'], $candidateIds, true)) { + $candidateIds[] = $q['id']; + } + } + + $answers = $client->listAnswers($projectId); + + $includeTemp = !empty($cfg['include_temp_save']); + $dedupe = !empty($cfg['dedupe']); + + $rows = []; + $unmatched = []; + $seenSid = []; + + foreach ($answers as $a) { + $tempSave = isset($a['tempSave']) ? (int)$a['tempSave'] : 1; + if (!$includeTemp && $tempSave === 0) { + continue; // 跳过暂存 + } + $answerMap = isset($a['answer']) && is_array($a['answer']) ? $a['answer'] : []; + + // 姓名:优先关键词命中的题目 -> 全量扫描能匹配名单的答案 -> 登录用户名 + $name = ''; + foreach ($candidateIds as $qid) { + if (isset($answerMap[$qid])) { + $v = ny_flatten_value($answerMap[$qid]); + if ($v !== '') { + $name = $v; + break; + } + } + } + if ($name === '') { + foreach ($questions as $q) { + $qid = (string)$q['id']; + if (!array_key_exists($qid, $answerMap)) { + continue; + } + $v = ny_flatten_value($answerMap[$qid]); + if ($v !== '' && isset($nameMap[ny_norm_name($v)])) { + $name = $v; + break; + } + } + } + if ($name === '' && $questions === []) { + foreach ($answerMap as $v) { + $s = ny_flatten_value($v); + if ($s !== '' && isset($nameMap[ny_norm_name($s)])) { + $name = $s; + break; + } + } + } + if ($name === '') { + $name = ny_str($a['createByName'] ?? ''); + } + if ($name === '') { + $name = '(未填写姓名)'; + } + + // 成绩 + $score = null; + if (isset($a['examScore']) && is_numeric($a['examScore'])) { + $score = (float)$a['examScore']; + } + + // 提交时间 + $ts = ny_to_timestamp($a['createAt'] ?? null); + if ($ts === 0) { + $ts = ny_to_timestamp($a['updateAt'] ?? null); + } + + // 考试时长 + $ai = $a['metaInfo']['answerInfo'] ?? []; + $start = is_array($ai) ? (int)($ai['startTime'] ?? 0) : 0; + $end = is_array($ai) ? (int)($ai['endTime'] ?? 0) : 0; + $dur = null; + if ($start > 0 && $end > $start) { + $dur = (int)round(($end - $start) / 1000); + } + + $key = ny_norm_name($name); + $info = $studentInfo[$key] ?? null; + $sid = $info['sid'] ?? ''; + $cls = $info['cls'] ?? ''; + + $row = [ + 'sid' => $sid, + 'name' => $name, + 'cls' => $cls, + 'score' => $score, + 'submit_ts' => $ts, + 'submit_at' => $ts > 0 ? date('Y-m-d H:i:s', $ts) : '-', + 'duration' => $dur, + 'duration_txt'=> ny_format_duration($dur), + 'answer_id' => ny_str($a['id'] ?? ''), + 'matched' => $sid !== '', + 'temp_save' => $tempSave === 0, + ]; + + if ($sid === '') { + $unmatched[] = $row; + continue; + } + + if ($dedupe && isset($seenSid[$sid])) { + $idx = $seenSid[$sid]; + // 保留提交时间最新的一份 + if ($ts >= ($rows[$idx]['submit_ts'] ?? 0)) { + $rows[$idx] = $row; + $seenSid[$sid] = $idx; + } + continue; + } + $seenSid[$sid] = count($rows); + $rows[] = $row; + } + + // 成绩明细默认按提交时间降序(最新在前),学号作为次级排序 + usort($rows, static function (array $x, array $y): int { + $d = ($y['submit_ts'] ?? 0) <=> ($x['submit_ts'] ?? 0); + if ($d !== 0) { + return $d; + } + $a = (string)$x['sid']; + $b = (string)$y['sid']; + if (is_numeric($a) && is_numeric($b)) { + return $a <=> $b; + } + return strnatcmp($a, $b); + }); + + // 缺考名单 + $submittedSids = []; + foreach ($rows as $r) { + $submittedSids[(string)$r['sid']] = true; + } + $absent = []; + foreach ($students as $s) { + if (!isset($submittedSids[(string)$s['sid']])) { + $absent[] = [ + 'sid' => (string)$s['sid'], + 'name' => (string)$s['name'], + 'cls' => (string)($s['cls'] ?? ''), + ]; + } + } + usort($absent, static function (array $x, array $y): int { + $a = (string)$x['sid']; + $b = (string)$y['sid']; + if (is_numeric($a) && is_numeric($b)) { + return $a <=> $b; + } + return strnatcmp($a, $b); + }); + + // 统计 + $scores = array_values(array_filter(array_map(static fn($r) => $r['score'], $rows), static fn($v) => $v !== null)); + $durs = array_values(array_filter(array_map(static fn($r) => $r['duration'], $rows), static fn($v) => $v !== null)); + $stats = [ + 'roster_total' => count($students), + 'submitted' => count($rows), + 'absent' => count($absent), + 'unmatched' => count($unmatched), + 'submit_rate' => count($students) > 0 ? round(count($rows) / count($students) * 100, 1) : 0, + 'avg_score' => $scores !== [] ? round(array_sum($scores) / count($scores), 2) : null, + 'max_score' => $scores !== [] ? max($scores) : null, + 'min_score' => $scores !== [] ? min($scores) : null, + 'avg_duration' => $durs !== [] ? (int)round(array_sum($durs) / count($durs)) : null, + 'answer_total' => count($answers), + ]; + + return [ + 'project' => [ + 'id' => ny_str($project['id'] ?? $projectId), + 'name' => ny_str($project['name'] ?? ''), + 'mode' => ny_str($project['mode'] ?? ''), + ], + 'questions' => $questions, + 'name_qid' => $pickedQid, + 'name_candidates' => array_map(static fn($q) => ['id' => $q['id'], 'title' => $q['title']], $nameCandidates), + 'rows' => $rows, + 'absent' => $absent, + 'unmatched' => $unmatched, + 'stats' => $stats, + 'roster' => $students, + 'roster_count' => count($students), + 'updated_at' => date('Y-m-d H:i:s'), + ]; + } +} diff --git a/lib/Roster.php b/lib/Roster.php new file mode 100644 index 0000000..d7cd38f --- /dev/null +++ b/lib/Roster.php @@ -0,0 +1,229 @@ + {"students":[{"sid":"1","name":"张三","cls":"计算机2401"}], "updated_at":"..."} + * cls 为班级(可空),用于一份考试涉及多个班级时区分。 + */ +declare(strict_types=1); + +class Roster +{ + private static function file(): string + { + return NY_DATA . '/roster.json'; + } + + /** @return array */ + public static function all(): array + { + $d = ny_read_json(self::file(), null); + if (!is_array($d) || !isset($d['students']) || !is_array($d['students'])) { + return []; + } + $out = []; + foreach ($d['students'] as $s) { + if (!is_array($s)) { + continue; + } + $out[] = [ + 'sid' => trim((string)($s['sid'] ?? '')), + 'name' => trim((string)($s['name'] ?? '')), + 'cls' => trim((string)($s['cls'] ?? '')), + ]; + } + return $out; + } + + public static function meta(): array + { + $d = ny_read_json(self::file(), null); + return [ + 'count' => count(self::all()), + 'updated_at' => is_array($d) ? (string)($d['updated_at'] ?? '') : '', + ]; + } + + public static function save(array $students): bool + { + $clean = []; + foreach ($students as $s) { + $sid = trim((string)($s['sid'] ?? '')); + $name = trim((string)($s['name'] ?? '')); + if ($sid === '' && $name === '') { + continue; + } + $clean[] = [ + 'sid' => $sid, + 'name' => $name, + 'cls' => trim((string)($s['cls'] ?? '')), + ]; + } + return ny_write_json(self::file(), [ + 'students' => $clean, + 'updated_at' => date('Y-m-d H:i:s'), + ]); + } + + public static function clear(): bool + { + return ny_write_json(self::file(), ['students' => [], 'updated_at' => date('Y-m-d H:i:s')]); + } + + public static function count(): int + { + return count(self::all()); + } + + /** + * 首次使用时,若名单为空且存在 导入模板.xlsx,自动导入 + */ + public static function ensureSeeded(): bool + { + if (self::count() > 0) { + return false; + } + $candidates = [ + dirname(NY_ROOT) . '/导入模板.xlsx', + NY_ROOT . '/导入模板.xlsx', + NY_DATA . '/导入模板.xlsx', + ]; + foreach ($candidates as $f) { + if (is_file($f)) { + try { + $res = self::importFile($f, 'xlsx'); + return $res['count'] > 0; + } catch (Throwable $e) { + // 忽略 + } + } + } + return false; + } + + /** + * 解析上传文件 -> 学生数组 + * @return array{count:int,students:array} + */ + public static function importFile(string $file, string $ext = ''): array + { + if ($ext === '') { + $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); + } + $rows = []; + if ($ext === 'xlsx' || $ext === 'xlsm') { + $rows = XlsxReader::read($file); + } elseif ($ext === 'csv' || $ext === 'txt') { + $rows = self::parseCsv($file); + } else { + // 尝试按 xlsx 解析,失败再按 csv + try { + $rows = XlsxReader::read($file); + } catch (Throwable $e) { + $rows = self::parseCsv($file); + } + } + + if ($rows === []) { + throw new RuntimeException('文件为空或无法解析'); + } + return ['count' => count($rows), 'students' => self::rowsToStudents($rows)]; + } + + public static function parseCsv(string $file): array + { + $raw = (string)@file_get_contents($file); + $raw = preg_replace('/^\xEF\xBB\xBF/', '', $raw) ?? $raw; + $rows = []; + if (($fh = fopen('php://memory', 'r+')) === false) { + return []; + } + fwrite($fh, $raw); + rewind($fh); + while (($line = fgetcsv($fh, 0, ',')) !== false) { + if ($line === [null] || (count($line) === 1 && trim((string)$line[0]) === '')) { + continue; + } + $rows[] = array_map(static fn($v) => self::conv((string)$v), $line); + } + fclose($fh); + if ($rows === []) { + // 可能是 tab 分隔 + foreach (preg_split('/\r?\n/', $raw) ?: [] as $line) { + if (trim($line) === '') { + continue; + } + $rows[] = array_map([self::class, 'conv'], explode("\t", $line)); + } + } + return $rows; + } + + private static function conv(string $v): string + { + $v = trim($v); + $enc = mb_detect_encoding($v, ['UTF-8', 'GB18030', 'GBK', 'BIG5'], true); + if ($enc !== false && strtoupper($enc) !== 'UTF-8') { + $v = mb_convert_encoding($v, 'UTF-8', $enc); + } + return $v; + } + + /** + * 识别 学号/姓名/班级 列 + * @return array + */ + public static function rowsToStudents(array $rows): array + { + $sidCol = -1; + $nameCol = -1; + $clsCol = -1; + $headerIdx = -1; + + // 找表头 + foreach ($rows as $i => $row) { + $joined = implode('|', array_map('strval', $row)); + if (preg_match('/学\s*号|编\s*号|序\s*号|no\.?|id/i', $joined) + && preg_match('/姓\s*名|名\s*字|学生|成员/i', $joined)) { + $headerIdx = $i; + break; + } + } + $start = 0; + if ($headerIdx >= 0) { + $start = $headerIdx + 1; + foreach ($rows[$headerIdx] as $j => $cell) { + $c = (string)$cell; + if ($sidCol < 0 && preg_match('/学\s*号|编\s*号|序\s*号|^\s*no\.?\s*$|^\s*id\s*$/i', $c)) { + $sidCol = $j; + } + if ($nameCol < 0 && preg_match('/姓\s*名|名\s*字|学生姓名/i', $c)) { + $nameCol = $j; + } + if ($clsCol < 0 && preg_match('/班\s*级|班级|class/i', $c)) { + $clsCol = $j; + } + } + } + if ($sidCol < 0) { + $sidCol = 0; + } + if ($nameCol < 0) { + $nameCol = $sidCol === 0 ? 1 : 0; + } + + $out = []; + for ($i = $start; $i < count($rows); $i++) { + $row = $rows[$i]; + $sid = trim((string)($row[$sidCol] ?? '')); + $name = trim((string)($row[$nameCol] ?? '')); + if ($sid === '' && $name === '') { + continue; + } + // 学号去掉 .0 尾巴(Excel 数字读取) + $sid = preg_replace('/\.0+$/', '', $sid) ?? $sid; + $cls = $clsCol >= 0 ? trim((string)($row[$clsCol] ?? '')) : ''; + $out[] = ['sid' => $sid, 'name' => $name, 'cls' => $cls]; + } + return $out; + } +} diff --git a/lib/SurveyKingClient.php b/lib/SurveyKingClient.php new file mode 100644 index 0000000..feed323 --- /dev/null +++ b/lib/SurveyKingClient.php @@ -0,0 +1,527 @@ + data.publicKey(RSA 公钥,Base64/X.509) + * 2) 用公钥 RSA/ECB/PKCS1Padding 加密密码并 Base64 + * 3) POST {base}{prefix}/public/login -> 登录成功后在 Set-Cookie 里下发 sk-token(JWT) + * 注意:v1.13 服务端只从 Cookie 的 sk-token 取令牌,不读 Authorization 头 + * (响应头也会回显 Authorization,但被服务端忽略) + * 兼容旧版 / 企业版: + * POST {prefix}/system/auth/login -> data.accessToken + * POST /admin-api/oauth2/token -> data.access_token + */ +declare(strict_types=1); + +class SurveyKingClient +{ + /** 社区版会话 Cookie 名称(AppConsts.TOKEN_NAME) */ + public const TOKEN_COOKIE = 'sk-token'; + + private array $cfg; + private ?string $token = null; + private string $tokenFile; + private bool $retried = false; + /** Cookie 会话:社区版 v1.13 的服务端只认 Cookie 里的 sk-token,不读 Authorization 头 */ + private array $cookies = []; + private int $expireAt = 0; + private string $loginVia = ''; + /** @var array */ + public array $log = []; + + public function __construct(array $cfg) + { + $this->cfg = $cfg; + $this->tokenFile = NY_DATA . '/cache/token.json'; + } + + /** 会话信息(用于诊断) */ + public function sessionInfo(): array + { + return [ + 'has_token' => $this->token !== null && $this->token !== '', + 'token_head' => $this->token !== null ? substr($this->token, 0, 14) . '…' : '', + 'cookies' => array_keys($this->cookies), + 'login_via' => $this->loginVia, + 'expire_at' => $this->expireAt > 0 ? date('Y-m-d H:i:s', $this->expireAt) : '', + ]; + } + + public function setConfig(array $cfg): void + { + $this->cfg = $cfg; + } + + // ---------------- 地址 ---------------- + public function base(): string + { + return rtrim((string)$this->cfg['base_url'], '/'); + } + + public function apiBase(): string + { + return $this->base() . '/' . trim((string)$this->cfg['api_prefix'], '/'); + } + + private function timeout(): int + { + return max(3, (int)($this->cfg['timeout'] ?? 20)); + } + + private function cookieHeader(): string + { + $parts = []; + foreach ($this->cookies as $k => $v) { + $parts[] = $k . '=' . $v; + } + return implode('; ', $parts); + } + + private function persistSession(): void + { + if ($this->token === null || $this->token === '') { + return; + } + ny_write_json($this->tokenFile, [ + 'token' => $this->token, + 'expire_at' => $this->expireAt, + 'cookies' => $this->cookies, + 'login_via' => $this->loginVia, + ]); + } + + // ---------------- 底层 HTTP ---------------- + /** + * @return array{status:int,headers:array,data:mixed,raw:string,code:int,msg:string} + */ + private function raw(string $path, array $query = [], string $method = 'GET', mixed $body = null): array + { + if (!function_exists('curl_init')) { + throw new RuntimeException('PHP 未启用 curl 扩展,无法访问卷王接口'); + } + $url = $this->apiBase() . $path; + if ($query !== []) { + $url .= (str_contains($url, '?') ? '&' : '?') . http_build_query($query); + } + + $headers = ['Accept: application/json', 'Accept-Charset: utf-8']; + if ($method === 'POST') { + $headers[] = 'Content-Type: application/json; charset=utf-8'; + } + // 令牌两种都发:老版本读 Authorization 头,v1.13 只读 sk-token Cookie + if ($this->token !== null && $this->token !== '') { + $headers[] = 'Authorization: Bearer ' . $this->token; + } + if ($this->cookies !== []) { + $headers[] = 'Cookie: ' . $this->cookieHeader(); + } + $verify = !empty($this->cfg['verify_ssl']); + + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_RETURNTRANSFER => true, + CURLOPT_HEADER => true, + CURLOPT_HTTPHEADER => $headers, + CURLOPT_TIMEOUT => $this->timeout(), + CURLOPT_CONNECTTIMEOUT => min(10, $this->timeout()), + CURLOPT_SSL_VERIFYPEER => $verify, + CURLOPT_SSL_VERIFYHOST => $verify ? 2 : 0, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_ENCODING => '', + CURLOPT_PROXY => self::proxyFor($url), + ]); + if ($method === 'POST') { + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body, JSON_UNESCAPED_UNICODE)); + } + + $resp = curl_exec($ch); + $err = curl_error($ch); + $info = curl_getinfo($ch); + curl_close($ch); + + if ($resp === false) { + throw new RuntimeException('请求失败:' . $url . ' —— ' . $err); + } + + $headerSize = (int)($info['header_size'] ?? 0); + $rawHeader = substr((string)$resp, 0, $headerSize); + $rawBody = substr((string)$resp, $headerSize); + $status = (int)($info['http_code'] ?? 0); + + $h = []; + foreach (preg_split('/\r?\n/', $rawHeader) ?: [] as $line) { + if (str_contains($line, ':')) { + [$k, $v] = explode(':', $line, 2); + $h[strtolower(trim($k))] = trim($v); + } + } + + // 收集 Set-Cookie(可能有多个,上面的解析只保留最后一个) + if (preg_match_all('/^Set-Cookie:\s*(.+)$/mi', $rawHeader, $sc) > 0) { + foreach ($sc[1] as $one) { + $pair = trim(explode(';', trim($one))[0]); + $eq = strpos($pair, '='); + if ($pair === '' || $eq === false) { + continue; + } + $name = trim(substr($pair, 0, $eq)); + $val = trim(substr($pair, $eq + 1)); + if ($val === '' || strtolower($val) === 'deleted' || strtolower($val) === '""') { + unset($this->cookies[$name]); // 服务端主动清除 + continue; + } + $this->cookies[$name] = $val; + } + $this->persistSession(); + } + + $decoded = json_decode($rawBody, true); + $data = $decoded; + $code = 0; + $msg = ''; + if (is_array($decoded) && array_key_exists('code', $decoded)) { + $code = (int)$decoded['code']; + $data = $decoded['data'] ?? null; + $msg = (string)($decoded['msg'] ?? $decoded['message'] ?? ''); + } + + return ['status' => $status, 'headers' => $h, 'data' => $data, 'raw' => $rawBody, 'code' => $code, 'msg' => $msg]; + } + + /** + * 代理设置:本机/内网地址不走系统代理(否则同机部署时会连不上卷王) + */ + private static function proxyFor(string $url): string + { + $host = parse_url($url, PHP_URL_HOST); + if (!is_string($host) || $host === '') { + return ''; + } + $host = strtolower(trim($host, '[]')); + $isLoopback = in_array($host, ['localhost', '::1', '127.0.0.1'], true) + || str_starts_with($host, '127.') + || str_ends_with($host, '.localhost'); + return $isLoopback ? '' : (string)(getenv('http_proxy') ?: ''); + } + + /** + * 带鉴权与 401 自动重登的请求 + */ + public function request(string $path, array $query = [], string $method = 'GET', mixed $body = null): array + { + $this->getToken(); + + $r = $this->raw($path, $query, $method, $body); + + $needRelogin = in_array($r['status'], [401, 403], true) + || in_array($r['code'], [401, 403], true); + + if ($needRelogin && !$this->retried) { + $this->retried = true; + try { + $this->login(true); + $r = $this->raw($path, $query, $method, $body); + } finally { + $this->retried = false; + } + } + + if ($r['status'] >= 400 && $r['status'] !== 401 && $r['status'] !== 403) { + throw new RuntimeException('接口 ' . $path . ' 返回 HTTP ' . $r['status'] . ':' . mb_substr($r['raw'], 0, 300)); + } + if ($r['code'] !== 0 && $r['code'] !== 200) { + throw new RuntimeException('接口 ' . $path . ' 返回错误:' . ($r['msg'] !== '' ? $r['msg'] : 'code=' . $r['code'])); + } + return $r; + } + + // ---------------- 登录 ---------------- + public function getToken(bool $force = false): string + { + if (!$force && $this->token !== null && $this->token !== '') { + return $this->token; + } + if (!$force) { + $c = ny_read_json($this->tokenFile, null); + if (is_array($c) && !empty($c['token']) && (int)($c['expire_at'] ?? 0) > time() + 60) { + $this->token = (string)$c['token']; + $this->expireAt = (int)($c['expire_at'] ?? 0); + $this->cookies = is_array($c['cookies'] ?? null) ? $c['cookies'] : []; + $this->loginVia = (string)($c['login_via'] ?? ''); + return $this->token; + } + } + $this->login($force); + return (string)$this->token; + } + + public function login(bool $force = false): string + { + $this->token = null; + $this->cookies = []; + $this->expireAt = 0; + $this->loginVia = ''; + $username = (string)($this->cfg['username'] ?? ''); + $password = (string)($this->cfg['password'] ?? ''); + if ($username === '') { + throw new RuntimeException('未配置卷王登录账号'); + } + + $errors = []; + + // 1) 取 RSA 公钥 + $publicKey = ''; + try { + $r = $this->raw('/system'); + if (is_array($r['data']) && !empty($r['data']['publicKey'])) { + $publicKey = (string)$r['data']['publicKey']; + } + } catch (Throwable $e) { + $errors[] = '获取公钥失败:' . $e->getMessage(); + } + + // 2) 社区版 /public/login(令牌可能在 Authorization 头、响应体或 sk-token Cookie 中) + try { + $pwd = $this->encryptPassword($password, $publicKey); + $r = $this->raw('/public/login', [], 'POST', ['username' => $username, 'password' => $pwd]); + $tok = $r['headers']['authorization'] ?? ''; + $via = 'public/login · Authorization 头'; + if ($tok === '' && is_array($r['data'])) { + $tok = (string)($r['data']['accessToken'] ?? $r['data']['token'] ?? $r['data']['access_token'] ?? ''); + $via = 'public/login · 响应体'; + } + if ($tok === '' && isset($this->cookies[self::TOKEN_COOKIE])) { + // v1.13:令牌只放在 Cookie 里 + $tok = (string)$this->cookies[self::TOKEN_COOKIE]; + $via = 'public/login · Cookie ' . self::TOKEN_COOKIE; + } + if ($tok !== '' && $r['status'] < 400) { + $this->loginVia = $via; + return $this->saveToken($tok); + } + $errors[] = 'public/login:HTTP ' . $r['status'] . ' ' . ($r['msg'] !== '' ? $r['msg'] : mb_substr($r['raw'], 0, 160)); + } catch (Throwable $e) { + $errors[] = 'public/login:' . $e->getMessage(); + } + + // 3) 旧版 /system/auth/login + try { + $r = $this->raw('/system/auth/login', [], 'POST', ['username' => $username, 'password' => $password]); + $tok = ''; + if (is_array($r['data'])) { + $tok = (string)($r['data']['accessToken'] ?? $r['data']['token'] ?? $r['data']['access_token'] ?? ''); + } + if ($tok === '') { + $tok = $r['headers']['authorization'] ?? ''; + } + if ($tok === '' && isset($this->cookies[self::TOKEN_COOKIE])) { + $tok = (string)$this->cookies[self::TOKEN_COOKIE]; + } + if ($tok !== '') { + $this->loginVia = 'system/auth/login'; + return $this->saveToken($tok); + } + $errors[] = 'system/auth/login:HTTP ' . $r['status'] . ' ' . ($r['msg'] !== '' ? $r['msg'] : mb_substr($r['raw'], 0, 160)); + } catch (Throwable $e) { + $errors[] = 'system/auth/login:' . $e->getMessage(); + } + + // 4) 企业版 OAuth2 + try { + $url = $this->base() . '/admin-api/oauth2/token'; + $ch = curl_init($url); + curl_setopt_array($ch, [ + CURLOPT_RETURNTRANSFER => true, + CURLOPT_POST => true, + CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], + CURLOPT_POSTFIELDS => http_build_query([ + 'grant_type' => 'password', + 'username' => $username, + 'password' => $password, + ]), + CURLOPT_TIMEOUT => $this->timeout(), + CURLOPT_SSL_VERIFYPEER => !empty($this->cfg['verify_ssl']), + CURLOPT_SSL_VERIFYHOST => !empty($this->cfg['verify_ssl']) ? 2 : 0, + ]); + $body = curl_exec($ch); + curl_close($ch); + $j = json_decode((string)$body, true); + if (is_array($j) && !empty($j['data']['access_token'])) { + $this->loginVia = 'admin-api/oauth2/token'; + return $this->saveToken((string)$j['data']['access_token']); + } + $errors[] = 'oauth2/token:' . mb_substr((string)$body, 0, 160); + } catch (Throwable $e) { + $errors[] = 'oauth2/token:' . $e->getMessage(); + } + + throw new RuntimeException("登录卷王失败。请检查【设置】中的网址/账号/密码。\n" . implode("\n", $errors)); + } + + private function saveToken(string $token): string + { + $token = trim($token); + $token = preg_replace('/^Bearer\s+/i', '', $token) ?? $token; + $this->token = $token; + // JWT 过期时间兜底 8 小时 + $exp = time() + 8 * 3600; + $parts = explode('.', $token); + if (count($parts) === 3) { + $payload = json_decode((string)@base64_decode(strtr($parts[1], '-_', '+/')), true); + if (is_array($payload) && !empty($payload['exp'])) { + $exp = (int)$payload['exp']; + } + } + $this->expireAt = $exp; + $this->persistSession(); + return $token; + } + + /** + * 逐步诊断,定位连接/鉴权问题 + * @return array{steps:array} + */ + public function diagnose(): array + { + $steps = []; + + try { + $r = $this->raw('/system'); + $has = is_array($r['data']) && !empty($r['data']['publicKey']); + $steps[] = [ + 'step' => 'GET ' . $this->apiBase() . '/system', + 'ok' => $r['status'] < 400, + 'detail' => 'HTTP ' . $r['status'] . ' · RSA公钥=' . ($has ? '已获取' : '无') . ' · ' . mb_substr($r['raw'], 0, 150), + ]; + } catch (Throwable $e) { + $steps[] = ['step' => 'GET /system', 'ok' => false, 'detail' => $e->getMessage()]; + return ['steps' => $steps]; + } + + try { + $this->login(true); + $steps[] = [ + 'step' => '登录', + 'ok' => true, + 'detail' => '方式=' . $this->loginVia . ' · 令牌=' . substr((string)$this->token, 0, 16) + . '… · Cookie=[' . implode(', ', array_keys($this->cookies)) . ']', + ]; + } catch (Throwable $e) { + $steps[] = ['step' => '登录', 'ok' => false, 'detail' => $e->getMessage()]; + return ['steps' => $steps]; + } + + foreach (['/project/list', '/answer/list'] as $p) { + try { + $q = $p === '/answer/list' ? ['projectId' => '', 'current' => 1, 'pageSize' => 1] : ['current' => 1, 'pageSize' => 1]; + $r = $this->request($p, $q); + $cnt = is_array($r['data']) ? count($r['data']['list'] ?? []) : 0; + $steps[] = ['step' => 'GET ' . $p, 'ok' => true, 'detail' => 'HTTP ' . $r['status'] . ' · 本页 ' . $cnt . ' 条 · ' . mb_substr($r['raw'], 0, 150)]; + } catch (Throwable $e) { + $steps[] = ['step' => 'GET ' . $p, 'ok' => false, 'detail' => $e->getMessage()]; + } + } + return ['steps' => $steps]; + } + + /** RSA 公钥加密(无 openssl 时退回明文,兼容老版本) */ + private function encryptPassword(string $password, string $publicKey): string + { + if ($publicKey === '' || !function_exists('openssl_public_encrypt')) { + return $password; + } + $pem = "-----BEGIN PUBLIC KEY-----\n" . chunk_split(preg_replace('/\s+/', '', $publicKey), 64, "\n") . "-----END PUBLIC KEY-----\n"; + $key = openssl_pkey_get_public($pem); + if ($key === false) { + return $password; + } + $crypted = ''; + if (@openssl_public_encrypt($password, $crypted, $key, OPENSSL_PKCS1_PADDING)) { + return base64_encode($crypted); + } + return $password; + } + + // ---------------- 业务接口 ---------------- + /** 问卷 / 考试列表 */ + public function listProjects(): array + { + $size = max(20, (int)($this->cfg['page_size'] ?? 200)); + $all = []; + for ($page = 1; $page <= 50; $page++) { + $r = $this->request('/project/list', ['current' => $page, 'pageSize' => $size]); + $data = $r['data']; + $list = is_array($data) ? ($data['list'] ?? $data) : []; + if (!is_array($list) || $list === []) { + break; + } + foreach ($list as $item) { + if (is_array($item)) { + $all[] = $item; + } + } + $total = is_array($data) ? (int)($data['total'] ?? 0) : 0; + if ($total > 0 && count($all) >= $total) { + break; + } + if (count($list) < $size) { + break; + } + } + return $all; + } + + /** 问卷 / 考试详情(含题目结构) */ + public function getProject(string $id): array + { + $r = $this->request('/project', ['id' => $id]); + return is_array($r['data']) ? $r['data'] : []; + } + + /** 答卷列表(自动翻页取全量) */ + public function listAnswers(string $projectId): array + { + $size = max(20, (int)($this->cfg['page_size'] ?? 200)); + $all = []; + for ($page = 1; $page <= 100; $page++) { + $r = $this->request('/answer/list', [ + 'projectId' => $projectId, + 'current' => $page, + 'pageSize' => $size, + ]); + $data = $r['data']; + $list = is_array($data) ? ($data['list'] ?? $data) : []; + if (!is_array($list) || $list === []) { + break; + } + foreach ($list as $item) { + if (is_array($item)) { + $all[] = $item; + } + } + $total = is_array($data) ? (int)($data['total'] ?? 0) : 0; + if ($total > 0 && count($all) >= $total) { + break; + } + if (count($list) < $size) { + break; + } + } + return $all; + } + + /** 对外:测试连接 */ + public function ping(): array + { + $t0 = microtime(true); + $this->getToken(true); + $projects = $this->listProjects(); + return [ + 'ok' => true, + 'projects' => count($projects), + 'elapsed' => round((microtime(true) - $t0) * 1000), + ]; + } +} diff --git a/lib/XlsxReader.php b/lib/XlsxReader.php new file mode 100644 index 0000000..bfa2eee --- /dev/null +++ b/lib/XlsxReader.php @@ -0,0 +1,223 @@ +> 二维数组(行 => 列) + */ + public static function read(string $file): array + { + if (!is_file($file)) { + throw new RuntimeException('文件不存在:' . $file); + } + $entries = self::readZip($file); + + $shared = []; + if (isset($entries['xl/sharedStrings.xml'])) { + $shared = self::parseSharedStrings($entries['xl/sharedStrings.xml']); + } + + $sheet = self::firstSheetContent($entries); + if ($sheet === null) { + throw new RuntimeException('未找到工作表内容'); + } + return self::parseSheet($sheet, $shared); + } + + // ---------------- ZIP ---------------- + private static function readZip(string $file): array + { + if (class_exists('ZipArchive')) { + $out = []; + $za = new ZipArchive(); + if ($za->open($file) === true) { + for ($i = 0; $i < $za->numFiles; $i++) { + $name = $za->getNameIndex($i); + if ($name === false) { + continue; + } + $content = $za->getFromIndex($i); + $out[$name] = $content === false ? '' : $content; + } + $za->close(); + return $out; + } + } + return self::parseZipRaw($file); + } + + private static function parseZipRaw(string $file): array + { + $data = (string)@file_get_contents($file); + $len = strlen($data); + if ($len < 22) { + throw new RuntimeException('不是有效的 xlsx 文件'); + } + $eocd = -1; + for ($i = $len - 22; $i >= 0; $i--) { + if (substr($data, $i, 4) === "\x50\x4b\x05\x06") { + $eocd = $i; + break; + } + } + if ($eocd < 0) { + throw new RuntimeException('不是有效的 xlsx/zip 文件(未找到目录结束标记)'); + } + $count = self::u16($data, $eocd + 10); + $offset = self::u32($data, $eocd + 16); + + $out = []; + $p = $offset; + for ($i = 0; $i < $count; $i++) { + if (substr($data, $p, 4) !== "\x50\x4b\x01\x02") { + break; + } + $method = self::u16($data, $p + 10); + $compSize = self::u32($data, $p + 20); + $nameLen = self::u16($data, $p + 28); + $extraLen = self::u16($data, $p + 30); + $commentLen = self::u16($data, $p + 32); + $localOff = self::u32($data, $p + 42); + $name = substr($data, $p + 46, $nameLen); + + $lNameLen = self::u16($data, $localOff + 26); + $lExtraLen = self::u16($data, $localOff + 28); + $start = $localOff + 30 + $lNameLen + $lExtraLen; + $raw = substr($data, $start, $compSize); + + if ($method === 0) { + $content = $raw; + } else { + $content = @gzinflate($raw); + if ($content === false) { + $content = @gzinflate(substr($raw, 2)); + } + } + + $out[str_replace('\\', '/', $name)] = $content === false ? '' : $content; + $p += 46 + $nameLen + $extraLen + $commentLen; + } + return $out; + } + + private static function u16(string $d, int $off): int + { + $s = substr($d, $off, 2); + return $s === '' || strlen($s) < 2 ? 0 : unpack('v', $s)[1]; + } + + private static function u32(string $d, int $off): int + { + $s = substr($d, $off, 4); + return $s === '' || strlen($s) < 4 ? 0 : unpack('V', $s)[1]; + } + + // ---------------- XML ---------------- + private static function firstSheetContent(array $entries): ?string + { + if (isset($entries['xl/worksheets/sheet1.xml'])) { + return $entries['xl/worksheets/sheet1.xml']; + } + $found = []; + foreach (array_keys($entries) as $k) { + if (preg_match('#^xl/worksheets/sheet\d+\.xml$#', $k)) { + $found[] = $k; + } + } + if ($found === []) { + return null; + } + sort($found, SORT_NATURAL); + return $entries[$found[0]]; + } + + private static function parseSharedStrings(string $xml): array + { + $out = []; + if (preg_match_all('#(.*?)#s', $xml, $m) > 0) { + foreach ($m[1] as $si) { + if (preg_match_all('#]*>(.*?)#s', $si, $tm) > 0) { + $out[] = implode('', array_map( + static fn($x) => html_entity_decode($x, ENT_QUOTES | ENT_HTML5, 'UTF-8'), + $tm[1] + )); + } else { + $out[] = ''; + } + } + } + return $out; + } + + private static function parseSheet(string $xml, array $shared): array + { + $rows = []; + if (preg_match_all('#]*>(.*?)#s', $xml, $rm) === 0) { + return $rows; + } + foreach ($rm[1] as $rowXml) { + $cells = []; + if (preg_match_all('#]*?))?(?:/>|>(.*?))#s', $rowXml, $cm, PREG_SET_ORDER) > 0) { + $autoIdx = 0; + foreach ($cm as $c) { + $attrs = $c[1] ?? ''; + $inner = $c[2] ?? ''; + + $idx = $autoIdx; + if (preg_match('#\br="([A-Z]+)\d*"#', $attrs, $r)) { + $idx = self::colToIndex($r[1]); + } + $autoIdx = $idx + 1; + + $type = preg_match('#\bt="([^"]+)"#', $attrs, $tm) ? $tm[1] : ''; + + if ($type === 'inlineStr') { + $val = ''; + if (preg_match_all('#]*>(.*?)#s', $inner, $im) > 0) { + $val = implode('', array_map( + static fn($x) => html_entity_decode($x, ENT_QUOTES | ENT_HTML5, 'UTF-8'), + $im[1] + )); + } + } else { + $val = preg_match('#(.*?)#s', $inner, $vm) + ? html_entity_decode($vm[1], ENT_QUOTES | ENT_HTML5, 'UTF-8') + : ''; + if ($type === 's') { + $i = (int)$val; + $val = $shared[$i] ?? ''; + } elseif ($type === 'b') { + $val = ((int)$val) === 1 ? 'TRUE' : 'FALSE'; + } + } + $cells[$idx] = $val; + } + } + if ($cells === []) { + continue; + } + $max = max(array_keys($cells)); + $line = []; + for ($i = 0; $i <= $max; $i++) { + $line[] = $cells[$i] ?? ''; + } + $rows[] = $line; + } + return $rows; + } + + private static function colToIndex(string $letters): int + { + $n = 0; + $len = strlen($letters); + for ($i = 0; $i < $len; $i++) { + $n = $n * 26 + (ord($letters[$i]) - 64); + } + return $n - 1; + } +} diff --git a/tools/lint.js b/tools/lint.js new file mode 100644 index 0000000..a6014ea --- /dev/null +++ b/tools/lint.js @@ -0,0 +1,29 @@ +const fs = require('fs'); +const path = require('path'); +const engine = require('php-parser'); + +const parser = new engine({ + parser: { suppressErrors: true, version: 803 }, + ast: { withPositions: true }, +}); + +const files = process.argv.slice(2); +let bad = 0; +for (const f of files) { + const code = fs.readFileSync(f, 'utf8'); + try { + const ast = parser.parseCode(code, f); + const errs = (ast.errors || []).filter(e => e && e.message); + if (errs.length) { + bad++; + console.log('[SYNTAX] ' + f); + errs.slice(0, 5).forEach(e => console.log(' line ' + (e.line || '?') + ': ' + e.message)); + } else { + console.log('[OK] ' + path.basename(f)); + } + } catch (e) { + bad++; + console.log('[FAIL] ' + f + ' :: ' + e.message); + } +} +process.exit(bad ? 1 : 0); diff --git a/tools/mock-server.js b/tools/mock-server.js new file mode 100644 index 0000000..7c97da7 --- /dev/null +++ b/tools/mock-server.js @@ -0,0 +1,138 @@ +// 模拟卷王(SurveyKing)社区版 API,用于端到端测试 +const http = require('http'); +const crypto = require('crypto'); +const fs = require('fs'); + +const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 1024, + publicKeyEncoding: { type: 'spki', format: 'der' }, + privateKeyEncoding: { type: 'pkcs8', format: 'der' }, +}); +const PUB_B64 = Buffer.from(publicKey).toString('base64'); + +const PASSWORD = 'surveyking'; +let TOKEN = ''; + +const roster = JSON.parse(fs.readFileSync(require('path').join(__dirname, '..', 'data', 'roster.json'), 'utf8')).students; + +// 构造答卷:前 30 人提交,其中 2 人姓名有空格/错别字 +const answers = roster.slice(0, 30).map((s, i) => { + let name = s.name; + if (i === 3) name = ' ' + s.name + ' '; // 带空格 + if (i === 7) name = s.name; // 正常 + const start = Date.parse('2026-09-08T09:00:00+08:00') + i * 1000; + const end = start + (600 + i * 37) * 1000; + return { + id: 'a' + (i + 1), + projectId: 'p1', + answer: { q1: name, q2: '高一(1)班', q3: 'B' }, + examScore: [100, 92, 88, 76, 61, 59, 95, 83, 72, 68][i % 10] + (i % 3), + tempSave: i === 5 ? 0 : 1, + metaInfo: { answerInfo: { startTime: start, endTime: end }, clientInfo: { browser: 'Chrome' } }, + createAt: new Date(end).toISOString().replace('T', ' ').slice(0, 19), + createByName: '', + }; +}); +// 一个不在名单里的答卷 +answers.push({ + id: 'ax', projectId: 'p1', answer: { q1: '路过的同学', q2: '其他', q3: 'A' }, + examScore: 55, tempSave: 1, + metaInfo: { answerInfo: { startTime: Date.parse('2026-09-08T09:30:00+08:00'), endTime: Date.parse('2026-09-08T09:41:20+08:00') } }, + createAt: '2026-09-08 09:41:20', createByName: '', +}); + +const SURVEY = { + id: 'root', title: '高一数学月考', type: 'survey', + children: [ + { id: 'pg1', type: 'pagination', title: '基本信息', children: [ + { id: 'q1', type: 'text', title: '

姓名

' }, + { id: 'q2', type: 'text', title: '班级' }, + ]}, + { id: 'pg2', type: 'pagination', title: '试题', children: [ + { id: 'q3', type: 'radio', title: '1+1=?', children: [{ id: 'o1', title: 'A' }, { id: 'o2', title: 'B' }] }, + ]}, + ], +}; + +const PROJECTS = [ + { id: 'p1', name: '高一数学月考', mode: 'exam', status: 1, total: answers.length }, + { id: 'p2', name: '课后满意度调查', mode: 'survey', status: 1, total: 5 }, +]; + +function send(res, code, obj, headers) { + res.writeHead(code, Object.assign({ 'Content-Type': 'application/json; charset=utf-8' }, headers || {})); + res.end(JSON.stringify(obj)); +} + +const server = http.createServer((req, res) => { + const u = new URL(req.url, 'http://x'); + const p = u.pathname; + let body = ''; + req.on('data', c => body += c); + req.on('end', () => { + // 鉴权:模拟社区版 v1.13 —— 只读 sk-token Cookie,不读 Authorization 头 + if (p.startsWith('/api/') && !p.startsWith('/api/public/') && p !== '/api/system') { + const jar = {}; + (req.headers.cookie || '').split(';').forEach(kv => { + const i = kv.indexOf('='); + if (i > 0) jar[kv.slice(0, i).trim()] = kv.slice(i + 1).trim(); + }); + if (!jar['sk-token'] || jar['sk-token'] !== TOKEN) { + return send(res, 200, { + code: 401, data: null, + msg: 'Full authentication is required to access this resource' + }); + } + } + + if (p === '/api/system') { + return send(res, 200, { code: 0, data: { name: '卷王', version: '1.13.0', publicKey: PUB_B64 } }); + } + + if (p === '/api/public/login') { + let j = {}; + try { j = JSON.parse(body); } catch (e) {} + let pwd = j.password; + let plain = pwd; + try { + plain = crypto.privateDecrypt( + { key: privateKey, format: 'der', type: 'pkcs8', padding: crypto.constants.RSA_PKCS1_PADDING }, + Buffer.from(pwd, 'base64') + ).toString('utf8'); + } catch (e) { plain = '<<解密失败>>'; } + if (j.username !== 'admin' || plain !== PASSWORD) { + return send(res, 200, { code: 500, data: null, msg: '账号或密码错误(收到明文=' + plain + ')' }); + } + TOKEN = 'mock.jwt.token.' + Date.now(); + // 真实 v1.13:Authorization 头和 Set-Cookie 都下发,但服务端鉴权只读 Cookie + return send(res, 200, { code: 0, data: { userId: '1' } }, { + 'Set-Cookie': 'sk-token=' + TOKEN + '; Path=/; HttpOnly; SameSite=Lax', + Authorization: TOKEN, + }); + } + + if (p === '/api/project/list') { + return send(res, 200, { code: 0, data: { total: PROJECTS.length, list: PROJECTS } }); + } + if (p === '/api/project') { + const id = u.searchParams.get('id'); + const proj = PROJECTS.find(x => x.id === id); + if (!proj) return send(res, 200, { code: 404, data: null, msg: 'not found' }); + return send(res, 200, { code: 0, data: Object.assign({}, proj, { survey: id === 'p1' ? SURVEY : null }) }); + } + if (p === '/api/answer/list') { + const pid = u.searchParams.get('projectId'); + const cur = parseInt(u.searchParams.get('current') || '1', 10); + const size = parseInt(u.searchParams.get('pageSize') || '200', 10); + const all = pid === 'p1' ? answers : []; + const slice = all.slice((cur - 1) * size, cur * size); + return send(res, 200, { code: 0, data: { total: all.length, list: slice } }); + } + + return send(res, 200, { code: 404, data: null, msg: 'no route ' + p }); + }); +}); + +server.listen(19911, '127.0.0.1', () => { + console.log('mock 卷王已启动 http://127.0.0.1:19911 密码=' + PASSWORD); +}); diff --git a/tools/test-xlsx.js b/tools/test-xlsx.js new file mode 100644 index 0000000..09a58e3 --- /dev/null +++ b/tools/test-xlsx.js @@ -0,0 +1,114 @@ +// 用 JS 复现 XlsxReader 的 ZIP/XML 解析逻辑,验证对真实 导入模板.xlsx 的处理 +const fs = require('fs'); + +function u16(d, o) { const s = d.subarray(o, o + 2); return s.length < 2 ? 0 : s.readUInt16LE(0); } +function u32(d, o) { const s = d.subarray(o, o + 4); return s.length < 4 ? 0 : s.readUInt32LE(0); } + +function parseZipRaw(data) { + let eocd = -1; + for (let i = data.length - 22; i >= 0; i--) { + if (data[i] === 0x50 && data[i + 1] === 0x4b && data[i + 2] === 0x05 && data[i + 3] === 0x06) { eocd = i; break; } + } + if (eocd < 0) throw new Error('no EOCD'); + const count = u16(data, eocd + 10); + const offset = u32(data, eocd + 16); + const out = {}; + let p = offset; + for (let i = 0; i < count; i++) { + if (!(data[p] === 0x50 && data[p + 1] === 0x4b && data[p + 2] === 0x01 && data[p + 3] === 0x02)) break; + const method = u16(data, p + 10); + const compSize = u32(data, p + 20); + const nameLen = u16(data, p + 28); + const extraLen = u16(data, p + 30); + const commentLen = u16(data, p + 32); + const localOff = u32(data, p + 42); + const name = data.subarray(p + 46, p + 46 + nameLen).toString('binary'); + const lNameLen = u16(data, localOff + 26); + const lExtraLen = u16(data, localOff + 28); + const start = localOff + 30 + lNameLen + lExtraLen; + const raw = data.subarray(start, start + compSize); + let content; + if (method === 0) content = raw; + else content = require('zlib').inflateRawSync(raw); + out[name.replace(/\\/g, '/')] = content.toString('utf8'); + p += 46 + nameLen + extraLen + commentLen; + } + return out; +} + +function decodeEntities(s) { + return s.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"') + .replace(/'/g, "'").replace(/'/g, "'").replace(/&/g, '&'); +} + +function parseSharedStrings(xml) { + const out = []; + const re = /([\s\S]*?)<\/si>/g; + let m; + while ((m = re.exec(xml))) { + const si = m[1]; + const tre = /]*>([\s\S]*?)<\/t>/g; + let t, parts = []; + while ((t = tre.exec(si))) parts.push(decodeEntities(t[1])); + out.push(parts.join('')); + } + return out; +} + +function colToIndex(letters) { + let n = 0; + for (let i = 0; i < letters.length; i++) n = n * 26 + (letters.charCodeAt(i) - 64); + return n - 1; +} + +function parseSheet(xml, shared) { + const rows = []; + const rowRe = /]*>([\s\S]*?)<\/row>/g; + let rm; + while ((rm = rowRe.exec(xml))) { + const rowXml = rm[1]; + const cells = {}; + const cRe = /]*?))?(?:\/>|>([\s\S]*?)<\/c>)/g; + let cm, autoIdx = 0; + while ((cm = cRe.exec(rowXml))) { + const attrs = cm[1] || ''; + const inner = cm[2] || ''; + let idx = autoIdx; + const r = /\br="([A-Z]+)\d*"/.exec(attrs); + if (r) idx = colToIndex(r[1]); + autoIdx = idx + 1; + const tm = /\bt="([^"]+)"/.exec(attrs); + const type = tm ? tm[1] : ''; + let val = ''; + if (type === 'inlineStr') { + const tre = /]*>([\s\S]*?)<\/t>/g; + let t, parts = []; + while ((t = tre.exec(inner))) parts.push(decodeEntities(t[1])); + val = parts.join(''); + } else { + const vm = /([\s\S]*?)<\/v>/.exec(inner); + val = vm ? decodeEntities(vm[1]) : ''; + if (type === 's') val = shared[parseInt(val, 10)] || ''; + else if (type === 'b') val = parseInt(val, 10) === 1 ? 'TRUE' : 'FALSE'; + } + cells[idx] = val; + } + const keys = Object.keys(cells).map(Number); + if (!keys.length) continue; + const max = Math.max(...keys); + const line = []; + for (let i = 0; i <= max; i++) line.push(cells[i] || ''); + rows.push(line); + } + return rows; +} + +const file = process.argv[2]; +const entries = parseZipRaw(fs.readFileSync(file)); +console.log('entries:', Object.keys(entries).join(', ')); +const shared = entries['xl/sharedStrings.xml'] ? parseSharedStrings(entries['xl/sharedStrings.xml']) : []; +const sheet = entries['xl/worksheets/sheet1.xml'] || entries[Object.keys(entries).find(k => /^xl\/worksheets\/sheet\d+\.xml$/.test(k))]; +const rows = parseSheet(sheet, shared); +console.log('rows:', rows.length); +console.log('first 3:', JSON.stringify(rows.slice(0, 3), null, 0)); +console.log('last 2:', JSON.stringify(rows.slice(-2), null, 0)); diff --git a/启动平台.bat b/启动平台.bat new file mode 100644 index 0000000..e0f4951 --- /dev/null +++ b/启动平台.bat @@ -0,0 +1,24 @@ +@echo off +chcp 65001 >nul +title NY问卷考试系统数据平台 +cd /d "%~dp0" + +where php >nul 2>nul +if errorlevel 1 ( + echo. + echo [错误] 未检测到 PHP,请先安装 PHP 8 并加入环境变量 PATH, + echo 或把 php.exe 放到本目录后再运行。 + echo 下载地址: https://windows.php.net/download + echo. + pause + exit /b 1 +) + +echo. +echo NY问卷考试系统数据平台 启动中... +echo 浏览器访问: http://localhost:8080 +echo 停止服务请按 Ctrl + C +echo. +start "" http://localhost:8080 +php -S 0.0.0.0:8080 +pause