chore(sync): 同步当前工作区全部变更(学员学号可编辑并留空自动生成等)

This commit is contained in:
buliping committed 2026-11-10 13:34:14 +08:00
1 parent 01e949093a
commit ee629f2f3e
534 files changed
+72978 -2720

No files matched your search

@@ -0,0 +1,90 @@
-- ============================================================
-- 阅读机/听书机 7 张业务表 - 测试数据
-- 来源:阅读机数据表+接口设计-v1.md
-- ============================================================
-- 前置说明:
-- 1) 本文件仅包含 INSERT 测试数据;建表 DDL 请按设计文档执行
-- (其中 train_book_download_record 的 DDL 见 patch/014_train_book_download_record.sql,其余 6 张表按文档“一、数据库表设计”创建)。
-- 2) 逻辑外键依赖:train_user_session / 各阅读进度 / 上报日志 / 下载回执 中的 user_id=10001
-- 需先在 sys_user 中存在该学员账号(RuoYi 内置用户体系,本文件不含 sys_user 数据)。
-- 3) 设备 device_id、图书 book_id/book_version、会话 session_id、上报 record_id 均保持自洽,
-- 可直接用于验证“登录 / 阅读上报 / 进度冲突 / 下架过滤 / 下载回执”等接口。
-- 4) device_secret_digest 为 SHA256 十六进制占位值(64 位),真实环境请替换为对应设备密钥的 SHA256 摘要。
-- ============================================================
-- ----------------------------------------------------------
-- 1) train_iot_device 读书机设备档案表
-- ----------------------------------------------------------
INSERT INTO `train_iot_device`
(`device_id`, `device_secret_digest`, `device_status`, `firmware_version`, `app_version`, `bind_org_id`, `bind_class_id`, `heartbeat_interval`, `last_login_time`, `last_heartbeat_time`)
VALUES
('READER-LIB-01', '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08', 1, '1.4.2', '2.1.0', 'ORG-001', 'CLASS-01,CLASS-02', 60, '2026-10-20 09:00:00', '2026-10-20 09:30:00'),
('READER-LIB-02', '60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752', 1, '1.4.0', '2.0.5', 'ORG-001', 'CLASS-03', 60, '2026-10-19 08:00:00', '2026-10-20 08:50:00'),
('READER-LIB-03', '688787d8ff144c502c7f5cffaafe2cc588d86079f9de88304c26b0cb99ce91c6', 2, '1.3.1', '1.9.0', 'ORG-002', 'CLASS-05', 120, NULL, '2026-10-15 10:00:00');
-- ----------------------------------------------------------
-- 2) train_book_snapshot 图书快照表
-- is_on_shelf: 1 上架 / 0 下架(下架仅禁止新下载,仍可上报阅读)
-- ----------------------------------------------------------
INSERT INTO `train_book_snapshot`
(`book_id`, `book_title`, `book_category`, `book_summary`, `book_version`, `file_size`, `file_md5`, `download_url`, `is_on_shelf`, `publish_time`)
VALUES
('BK-00012', '铁路房建施工安全手册', 'SAFETY', '房建施工安全作业规范与事故案例', 'BV-3', 2048000, 'c4ca4238a0b923820dcc509a6f75849b', '/books/BK-00012/BV-3.pdf', 1, '2025-10-18 00:00:00'),
('BK-00012', '铁路房建施工安全手册', 'SAFETY', '房建施工安全作业规范与事故案例(旧版)', 'BV-2', 1980000, 'b6d8a532a0f1c2e3d4f5a6b7c8d9e0f10', '/books/BK-00012/BV-2.pdf', 0, '2025-06-01 00:00:00'),
('BK-00013', '铁路电力安全工作规程', 'REGULATION', '电气化铁路安全工作规程要点', 'BV-2', 3072000, 'a1b2c3d4e5f60718293a4b5c6d7e8f90a', '/books/BK-00013/BV-2.pdf', 1, '2025-09-10 00:00:00'),
('BK-00014', '高铁客运服务英语', 'LANGUAGE', '高铁乘务日常英语会话', 'BV-1', 1536000, 'f0e1d2c3b4a5968778695a4b3c2d1e0f1', '/books/BK-00014/BV-1.pdf', 1, '2025-08-20 00:00:00'),
('BK-00015', '铁路线路维修规则', 'REGULATION', '普速铁路线路维修规则', 'BV-1', 4096000, '112233445566778899aabbccddeeff00', '/books/BK-00015/BV-1.pdf', 0, '2025-05-15 00:00:00');
-- ----------------------------------------------------------
-- 3) train_user_session 学员业务会话表
-- session_status: 1 ACTIVE正常在线 / 2 REPLACED被替换仅补交 / 3 LOGOUT已退出
-- 下面第 2 条模拟“被新登录顶替”的旧会话,用于验证冲突进度(CONFLICT_SAVED)
-- ----------------------------------------------------------
INSERT INTO `train_user_session`
(`user_id`, `session_id`, `device_id`, `session_status`, `login_time`, `replace_time`, `logout_time`, `ruoyi_token_key`)
VALUES
(10001, 'SES-20261020-0001', 'READER-LIB-01', 1, '2026-10-20 09:00:00', NULL, NULL, 'login_tokens:token-active-001'),
(10001, 'SES-20261019-0001', 'READER-LIB-02', 2, '2026-10-19 08:00:00', '2026-10-20 09:00:05', NULL, 'login_tokens:token-replaced-001');
-- ----------------------------------------------------------
-- 4) train_reading_current_progress 学员主续读进度
-- (user_id, book_id, mode) 唯一;mode: read 阅读 / audio 听书
-- ----------------------------------------------------------
INSERT INTO `train_reading_current_progress`
(`user_id`, `book_id`, `mode`, `book_version`, `page_no`, `sentence_index`, `progress`, `source_record_id`, `source_session_id`)
VALUES
(10001, 'BK-00012', 'read', 'BV-3', 46, NULL, 0.35, 'RD-20261020-0001', 'SES-20261020-0001'),
(10001, 'BK-00012', 'audio', 'BV-3', 120, 88, 0.50, 'RD-20261020-0002', 'SES-20261020-0001'),
(10001, 'BK-00013', 'read', 'BV-2', 30, NULL, 0.20, 'RD-20261020-0003', 'SES-20261020-0001');
-- ----------------------------------------------------------
-- 5) train_reading_alternate_progress 备选冲突续读进度
-- 来自被 REPLACED 的旧设备会话提交,不覆盖主进度,供学员手动选择跳转
-- ----------------------------------------------------------
INSERT INTO `train_reading_alternate_progress`
(`user_id`, `book_id`, `mode`, `book_version`, `page_no`, `sentence_index`, `progress`, `source_record_id`, `source_session_id`)
VALUES
(10001, 'BK-00012', 'read', 'BV-2', 22, NULL, 0.18, 'RD-20261019-0001', 'SES-20261019-0001');
-- ----------------------------------------------------------
-- 6) train_reading_duration_log 阅读上报幂等日志
-- result_code: ACCEPTED / DUPLICATE / CONFLICT_SAVED / REJECTED
-- (user_id, record_id) 唯一,record_id 重复将返回 DUPLICATE
-- ----------------------------------------------------------
INSERT INTO `train_reading_duration_log`
(`device_id`, `user_id`, `session_id`, `record_id`, `book_id`, `book_version`, `mode`, `record_type`, `duration_sec`, `page_from`, `page_to`, `progress`, `start_time`, `end_time`, `receive_time`, `result_code`, `remark`)
VALUES
('READER-LIB-01', 10001, 'SES-20261020-0001', 'RD-20261020-0001', 'BK-00012', 'BV-3', 'read', 'END', 1420, 12, 46, 0.35, '2026-10-20 08:30:00', '2026-10-20 09:00:00', '2026-10-20 09:00:01', 'ACCEPTED', NULL),
('READER-LIB-01', 10001, 'SES-20261020-0001', 'RD-20261020-0002', 'BK-00012', 'BV-3', 'audio', 'PROGRESS', 600, 100, 120, 0.50, '2026-10-20 09:00:00', '2026-10-20 09:10:00', '2026-10-20 09:10:01', 'ACCEPTED', NULL),
('READER-LIB-02', 10001, 'SES-20261019-0001', 'RD-20261019-0001', 'BK-00012', 'BV-2', 'read', 'END', 980, 5, 22, 0.18, '2026-10-19 19:45:00', '2026-10-19 20:00:00', '2026-10-19 20:00:01', 'CONFLICT_SAVED', 'REPLACED会话补交,已存备选进度');
-- ----------------------------------------------------------
-- 7) train_book_download_record 图书下载回执记录表
-- result: SUCCESS / FAIL
-- ----------------------------------------------------------
INSERT INTO `train_book_download_record`
(`user_id`, `device_id`, `book_id`, `book_version`, `file_md5`, `result`, `err_msg`, `download_time`)
VALUES
(10001, 'READER-LIB-01', 'BK-00012', 'BV-3', 'c4ca4238a0b923820dcc509a6f75849b', 'SUCCESS', NULL, '2026-10-20 08:00:00'),
(10001, 'READER-LIB-01', 'BK-00013', 'BV-2', 'a1b2c3d4e5f60718293a4b5c6d7e8f90a', 'SUCCESS', NULL, '2026-10-20 08:05:00'),
(10001, 'READER-LIB-03', 'BK-00014', 'BV-1', 'f0e1d2c3b4a5968778695a4b3c2d1e0f1', 'FAIL', '存储空间不足', '2026-10-15 09:00:00');