当前位置:首页>Excel>[开源] 月底绩效核算改了十几版Excel,为什么事后复盘总是找不到第一处断链?基于追加式事件链与见证包独立验真的回放机制

[开源] 月底绩效核算改了十几版Excel,为什么事后复盘总是找不到第一处断链?基于追加式事件链与见证包独立验真的回放机制

  • 2026-08-21 19:25:34
[开源] 月底绩效核算改了十几版Excel,为什么事后复盘总是找不到第一处断链?基于追加式事件链与见证包独立验真的回放机制

本项目面向医院绩效办、运营与财务复核、临床科主任以及内审人员的月频对账场景。过去,绩效核算的调整过程往往散落在多个版本的表格文件、邮件和聊天记录中,一旦数据出现争议,人工拼凑调整过程极其耗时且容易出错。我们把这种找文件、翻记录、问经办的混乱过程,压缩为选月份、选科室、回放并验真的标准化动作。系统只读接收HIS、财务与绩效系统导出的脱敏文件,不直写生产核算结果。所有调整以追加式事件入链,最终封账版本可下载见证包,在独立进程内重算根并定位首个断链事件。底层采用Go语言开发,结合SQLite作为追加式存储,前端使用React与TypeScript构建单页应用,支持本地裸跑与Docker容器化部署。

适用场景与目标岗位

我们在设计之初,梳理了医院内部参与绩效核算的各个角色。每个角色在月末对账时面临的痛点不同,我们针对这些具体时刻提供了对应的能力支撑。

岗位
触发时刻
本工具给出
绩效办经办
月初导入、调整提交、月末封账
类型化事件、来源清单、四类根与可重算的封账版本
运营办与财务复核
口径调整或封账前复核
指标前后值、源行定位、附件摘要与理由码
临床科主任
月结答疑或绩效争议
版本链回放、四类根状态、确认或提出异议的留痕入口
内审与纪检
抽查或专项复盘
离线审计包与独立验真命令,首断链事件与期望根对比
信息科
部署、备份、恢复测试
容器化部署说明、健康与指标端点、持久卷配置

通过这种角色视角的拆解,我们确保系统不仅是一个数据记录器,而是能够融入医院现有管理流程的对账基础设施。

核心能力与链式账本设计

绩效核算最核心的诉求在于可追溯与防篡改。为了实现这一点,我们摒弃了传统的关系型数据库直接覆盖更新的做法,转而采用链式账本的设计思路。

所有调整以追加式事件入链,旧事件不可原地覆盖。如果发现之前的调整有误,纠错必须走更正事件。这种设计保证了历史操作的完整性,任何一次修改都会在账本上留下清晰的痕迹。

在数据投影方面,我们实现了确定性投影。相同的基线与事件序列,在任意进程内均能重算到相同的事件根、状态根、来源根与审批回执根。这四类根分别代表了操作序列的哈希、最终数值的哈希、原始文件指纹的哈希以及签字状态的哈希。将它们分开计算,可以让我们在验真时快速定位到底是数据算错了、源文件被改了,还是审批流程出了问题。

独立验真是我们非常看重的一项能力。导出冻结版本的见证包后,内审人员可以在另一台电脑的独立进程内重算四根。如果数据被篡改,系统能够精准定位首个断链事件,并输出期望根与实际根的对比。这种机制不依赖中心化的信任,而是通过密码学哈希来保证数据的自洽性。

在双人确认与异议留痕方面,封账需要经办与独立复核人共同确认。科主任如果对某项绩效有异议,可以将其作为事件留痕,但这不会直接修改当前的绩效值。经办人收到提示后,可以通过追加更正事件来进行修订,旧版本依然可以完整重现。

典型业务场景回放

为了让大家更直观地理解系统是如何运作的,我们列举了三个最典型的业务场景。

场景一是月初导入与两次调整。绩效办经办把本月HIS与财务脱敏数据上传到导入接口,系统生成来源清单与基线快照。随后,经办提交两次调整,每次提交时系统都会自动校验前序哈希、序号、字段映射版本与附件摘要。月末经办发起封账请求,系统检查四根一致且隔离区为空。经办与复核人各自确认后,封账生效并写入签名检查点。

场景二是科主任月结答疑与异议。科主任在列表中点选本月本室,进入版本时间线,可以清晰看到从初始版本到最新版本的源行、前后值、调整理由与四根状态。如果主任对某次调整有异议,点击提出异议并填写理由码。这个异议会作为事件留痕,不会改变当前数值。经办人后续可以通过更正事件追加修订,整个过程公开透明。

场景三是内审抽查与独立验真。内审人员下载某月封账版本的见证包,在一台只读、可离线、无生产凭据的电脑上运行验真命令。如果数据完好,输出验证通过与四根摘要。如果有人改动了任意附件摘要或调整事件,再次运行会直接输出首个断链事件ID、期望根与实际根,并给出具体的诊断信息。

$ perfverify witness-202508-002.zipverified         : trueperiod_id        : 202508version          : 002event_root       : 5f8c...b9d2state_root       : a01e...7c44source_manifest  : 1b62...d8e0approval_receipt : 4d77...3fa1checkpoint       : signed (local_consistent)first_bad_event  : -stable_exit_code : 0

被篡改后再次运行,输出结果会发生明显变化:

$ perfverify witness-202508-002-tampered.zipverified         : falseperiod_id        : 202508version          : 002first_bad_event  : evt-014 (sequence=14, reason_code=metric_update)expected_root    : 5f8c...b9d2actual_root      : 71ab...09cfdiagnostics      : [error] event_hash_mismatch @ event[14].changes[2].value_scaledstable_exit_code : 2

部署与运行方式

我们提供了多种部署方式,以适应医院内部不同的网络环境和运维习惯。

方式一是本地裸跑,适合开发与冒烟测试。你需要准备Go 1.23以上、Node 18以上、Python 3.10以上以及sqlite3命令行工具。拉取依赖后,复制环境变量样例,启动REST服务。服务默认监听本地回环地址的8080端口。你可以运行健康检查接口,并执行端到端演示脚本来验证基线导入、调整、封账到见证导出的完整流程。

# 1. 准备环境go versionnode --versionsqlite3 -version# 2. 拉取依赖go mod tidy( cd web && npm install )# 3. 复制环境变量样例cp .env.example .env# 4. 启动 REST 服务go run ./cmd/server &SERVER_PID=$!sleep 1# 5. 验证健康检查curl -fsS http://127.0.0.1:8080/healthcurl -fsS http://127.0.0.1:8080/readycurl -fsS http://127.0.0.1:8080/metrics | head -5# 6. 运行单元测试与回归go test ./...( cd web && npm test )( cd web && npm run build )# 7. 端到端演示bash scripts/demo.sh# 8. 关停服务kill "$SERVER_PID"

方式二是Docker Compose部署,这是院内服务器推荐的方式。你需要在主机上准备持久卷,并将目录所有者对齐到非root用户。首次启动前,需要生成API Key文件,确保明文密钥不进入代码仓库。构建并启动容器后,可以通过浏览器访问前端界面。请注意,公网环境禁止直连,必须经过反向代理并配置TLS。

# 1. 准备主机持久卷sudo mkdir -p /opt/perf-ledger/{data,imports,keys,mappings}sudo chown -R 65532:65532 /opt/perf-ledgersudo chmod 750 /opt/perf-ledger/keys# 2. 进入工程目录cd /opt/perf-ledger/app# 3. 生成 API Key 文件docker run --rm -v /opt/perf-ledger:/out perf-ledger-replay:0.1.0 \  perfctl keygen --out /out/keys/checkpoint.ed25519# 4. 首次构建并启动docker compose builddocker compose up -d# 5. 验证服务状态sleep 5curl -fsS http://127.0.0.1:8080/healthcurl -fsS http://127.0.0.1:8080/ready# 6. 停止与查看日志docker compose logs -f --tail=100 perf-ledgerdocker compose down

方式三是无外网环境部署。考虑到很多院内服务器无法访问公网镜像仓库,你可以在能上网的跳板机上拉取基础镜像并保存为归档文件,然后在院内服务器上加载该归档文件,再按照方式二的步骤进行部署。

命令行与接口设计

为了方便运维人员与外部系统集成,我们设计了完善的命令行工具与REST接口。

命令行工具 perfctl 涵盖了从数据导入到独立验真的全生命周期操作。

子命令
作用
perfctl import
从表格文件导入基线,写入来源清单
perfctl event append
追加类型化调整事件,校验前序哈希与序号
perfctl timeline
回放月份与科室从初始版本到最新版本的事件链与四类根
perfctl seal
双人确认后封账并生成签名检查点
perfctl witness export
导出冻结版本的见证包
perfctl verify
在独立进程对见证包重算根并定位首断链事件
perfctl archive verify
批量核验历史月份与累计根
perfctl inspect
层级查看见证包、事件、变更项与根

REST接口则主要服务于前端单页应用与自动化脚本,提供了标准的HTTP方法调用。

路径
方法
作用
/health
GET
进程存活检查
/ready
GET
配置、数据库迁移与必需目录检查
/metrics
GET
监控指标文本输出
/imports
POST
上传基线并生成来源清单
/periods/{id}/events
POST
追加类型化事件
/periods
GET
获取月份列表,支持分页与筛选
/periods/{id}/timeline
GET
获取版本链回放数据
/seals
POST
执行双人确认封账
/witness/{id}
GET
下载见证包

配置入口主要集中在环境变量与YAML配置文件中。环境变量用于覆盖本地开发配置,YAML文件则用于定义路径、上传限制、字段映射、角色权限与检查点目录等核心参数。

架构设计与数据流向

系统的整体架构分为数据接入、核心处理与前端展示三个层次。外部系统导出的脱敏数据通过受控接口进入核心服务,服务内部完成事件的追加、根的計算与见证包的生成。前端单页应用通过REST接口与核心服务交互,提供可视化的版本回放与操作界面。

+-------------------+        +-------------------+        +-------------------+|  HIS / 财务 / 绩效 |  --->  |  核心回放服务      |  --->  | 前端单页应用       || (脱敏数据文件)     |  受控  |  (Go, SQLite)      |  REST  | (院内浏览器)       |+-------------------+  接入  +-------------------+        +-------------------+                                |        |        |                                v        v        v                          +-------+ +-------+ +-------+                          | 类型化| | 四类  | | 见证包|                          | 事件  | | 根    | | 导出  |                          +-------+ +-------+ +-------+                                ^                                |                          +-----+-----+        +-------------------+                          | 独立验真器 |  <---  | 内审独立电脑       |                          | (独立 CLI) |        +-------------------+                          +-----------+

在数据流设计上,基线与调整事件以规范化编码写入SQLite追加日志,前序哈希与序号在校验后落盘。投影器只依赖基线与有序事件,不读取系统时钟或随机值,确保跨进程输出同根。见证包导出前,系统会在事务内冻结周期、版本、头部与根信息,再收集基线、事件、来源清单与审批回执。独立验真器只读取见证包内的清单与数据,重算四根并比对签名,整个过程完全离线且可重复。

安全合规与边界说明

在医疗信息化领域,安全与合规是不可逾越的红线。我们在设计系统时,明确了多项边界与原则。

首先,本工具不输出诊断结论,不自动签字,更不自动回写生产系统。所有的封账与异议操作,均需由授权人员人工确认并留痕。我们提供的是辅助核对能力,而非替代人工决策。

其次,我们不宣称单机数据库绝对不可篡改。当外部检查点不可用时,前端界面会明确显示仅本机一致,未完成独立锚定。这种坦诚的设计有助于内审人员准确评估数据的可信度。

第三,我们不建立公链、代币或跨院共识。这里提到的链式账本,仅指相对独立检查点的篡改可发现与可独立验真。我们利用密码学哈希来保证数据的自洽性,而不是引入复杂的分布式共识机制。

在数据隐私方面,员工标识、姓名与联系方式一律以脱敏引用入链。通知通道默认走模拟提供者,不外发原始明细。上传路径、附件类型与大小受白名单严格约束,任何路径穿越或异常写入都会产生可观测的诊断日志。

最后,我们不会向终端用户暴露上游参考仓库名或内部开发过程材料。所有的溯源信息仅保留在开发文档中,确保生产环境的纯粹与安全。

项目地址: https://github.com/nexorin9/perf-ledger-replay

往期热门文章

院长们相信AI,不是因为AI

有多少人工,就有多少智能

医生的一天,都在给系统打工

几百万,买了个SQL

系统瘫痪,信息科祭天

互联网医院,最后变成了一张线上处方单

自主知识产权,终于可以下载了

医疗数据开始值钱以后

医院买了两个AI:一个写病历,一个查病历

医院信息化最稳定的能力叫迎检

医疗AI:95%的准确率,意味着总有人会成为那5%

医院信息化最成熟的系统:丧事喜办

AI进了医院,但责任还停留在HIS时代

HIS维护费,买不到产品的未来

AI还没成熟,认证先成熟了

代码越便宜,HIS厂商越危险

医院第一次拥有了无限加班系统

医院HIS最大的成功,就是活成了物业

院长大会上,HIS厂商没有名字

院长们正在把AI当许愿池

医院信息科AI Coding:上线一时爽,运维修罗场

牛马造嚼子:当医院信息科开始用AI自我驯化

AI正在帮医院证明:信息科不需要预算

当医院开始自己写系统,HIS厂商的黄金时代结束了

医疗AI做出来了,但没人付钱

医院的“功能无限责任制”逼死了HIS和乙方

HIS厂商最赚钱的产品,是恐惧

医疗AI,连幻觉都谈不上

医疗AI正在被医院HIS“降维打击”

医院数据全进中台了,然后呢?

当整个行业默认HIS不会变好

排队两小时,看病三分钟:医院HIS系统正在改变诊疗

HIS厂商的"架构收敛":当所有系统长得一模一样,你凭什么收费?

十万字病历,AI只配读懂噪音

一群鼓吹AI Coding的专家,正在制造医疗信息化的新技术债

当AI开始学习自己编造的病历

不是AI不行,是HIS系统把门焊死了

医院AI培训:台上教你投喂,台下让你背锅

当AI开始操作医院HIS系统,医疗AI的问题就变了

医院信息网络安全大赛:表演给谁看?

CHIMA年年开,问题年年在

CHIMA2026:AI挤满展厅,但医院已经不买单了

医院的数据不属于医院

医院信息科不会消失,但正在被掏空

谁解释数据,谁就定义医院

一线崩了!医院信息科正在拖垮整个医疗信息化

医疗信息化将进入无人实施时代

当医院信息科主任用AI下场写代码,交付链第一次被打穿

当代码不再是“技术”:HIS厂商的“辜鸿铭时刻”

我用一个Agent,把实施链路压缩到一轮循环

AI狂欢背后:HIS厂商正在成为第一批受害者

离职程序员被炼成AI!但我发现真正该慌的是医生

HIS厂商还没倒,但已经不值钱了!

HIS厂商真正的危机:医院不再必须买系统了

代码不再稀缺,医院HIS厂商还怎么定价?

买国产不会被问责,买进口不会被原谅

把HIS系统的Loading改成Thinking,它就是AI了吗?

Seedance2证明了一件事:医疗AI可能只是另一种幻觉

软件已死:医院未来不需要买系统,只需要买“技能包”

我用OpenClaw干了一件HIS厂商最怕的事

Epic的“美国HIS神话”,为何在中国公立医院无法复制?

中国公立医院的内外网隔离,究竟在保护什么?

Oracle的撤退信号:医疗信息化,正在被资本重新定价

别做梦了,绝大多数公立医院,根本玩不转HIS自研

互联网大厂做不好HIS?因为这不是软件业,是保姆业

为什么开源HIS系统在中国几乎绝迹?

这套HIS系统完美运行,所以:医生全责

当HIS系统真正好用时,病人已经出事了

比“大厂救不了”更残酷的真相,当全国医院共用一套HIS系统

中国式 RWD 祛魅:所谓真实世界数据,其实是 AWD?

都在说医疗数据是金矿,但没人敢提那个尴尬的真相

中国医院信息化正在经历一场反向演化:越评级,越难用

为什么互联网大厂的“降维打击”,救不了中国医院的HIS?

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-26 08:10:13 HTTP/2.0 GET : https://h.sjds.net/a/549579.html
  2. 运行时间 : 0.215528s [ 吞吐率:4.64req/s ] 内存消耗:4,555.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=103dd0644f928936a82a1fec66e58e6e
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000887s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001344s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000640s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000643s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001329s ]
  6. SELECT * FROM `set` [ RunTime:0.000541s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001426s ]
  8. SELECT * FROM `article` WHERE `id` = 549579 LIMIT 1 [ RunTime:0.017958s ]
  9. UPDATE `article` SET `lasttime` = 1787703013 WHERE `id` = 549579 [ RunTime:0.003643s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000610s ]
  11. SELECT * FROM `article` WHERE `id` < 549579 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.005462s ]
  12. SELECT * FROM `article` WHERE `id` > 549579 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002750s ]
  13. SELECT * FROM `article` WHERE `id` < 549579 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003962s ]
  14. SELECT * FROM `article` WHERE `id` < 549579 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003427s ]
  15. SELECT * FROM `article` WHERE `id` < 549579 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008968s ]
0.219158s