流量统计
流量统计用来查看主站的访问数据、资源表现和下载情况,供运营分析使用。入口在侧边栏「统计数据」下的「流量统计」,路径 /4_ts。
仅工坊主管可访问。
整体布局
页面自上而下分五部分。

顶部是页头,显示数据最后更新时间和「导出 CSV」按钮。
接下来是折叠面板「防刷参数配置」,默认收起,点击标题展开。
再往下是六个概览卡片,横向排列。
然后是资源类型趋势对比图表。
最后是资源排行榜、资源健康度、资源对比分析三块内容卡片,纵向排列。
概览卡片
六个卡片分别显示总访问量、今日活跃用户、总下载量、总互动数、今日下载请求和数据最后更新时间。
总访问量是主站历史以来的全部页面访问次数。
今日活跃用户由两部分相加:今日有登录记录的账号数,加上今日有访问记录的未登录 IP 去重数。
总下载量是所有资源文件的下载计数之和,直接从资源文件元数据里累加。
总互动数是所有资源的点赞、投币、收藏之和。
今日下载请求统计今日的下载请求次数。完整下载和部分下载分别计算,部分下载按 IP 加路径去重,避免断点续传重复计数。
数据最后更新时间是本次查询的执行时间,不是数据的实际变更时间。
防刷参数配置
这一块用来调节访问统计的防刷策略。展开后分两组,分别对全站和资源详情页生效。
全站防刷的两个参数如下。
Session 软拦截是指同一浏览器会话内,若最近一次访问时间在设定值以内,本次访问不计入 PV,直接跳过数据库查询。这个参数主要减少数据库压力。
数据库窗口期是指两个不同会话对同一路径的访问,若间隔小于设定值,第二次不计入 PV。这个参数是真正意义上的防刷。
资源详情页防刷的参数含义相同,只是作用范围限定在资源详情页。详情页的防刷窗口通常比全站更长,因为详情页是重点观察对象。
默认值如下。全站的 Session 拦截为 1 分钟,窗口期为 10 分钟。详情页的 Session 拦截为 5 分钟,窗口期为 60 分钟。
修改后点「保存配置」立即生效,无需重启服务。点「恢复默认」把四个参数重置为默认值并自动保存。
参数取值为整数,单位是分钟,范围 0 到 1440。
资源类型趋势对比
图表显示资源包、光影包、地图三类资源在一段时间内的指标变化。
图表上方有三个控制项。
指标切换下拉可选 PV、互动、下载。切换后图表重新加载对应的数据。
天数切换下拉可选近 7 天、近 30 天、近 60 天、近 90 天。
刷新按钮重新拉取当前条件下的数据。
图表的横轴是日期,纵轴是指标数值。三条曲线分别对应三类资源,颜色与侧边栏及各模块的主题色一致。
鼠标悬停在曲线上会显示该日期对应的三类资源的数值。
资源排行榜
排行榜按设定的排序方式列出资源的表现数据。
筛选条件包含类型、排序方式、状态、搜索。
类型可选全部、资源包、光影包、地图。
排序可选今日 PV、总 PV、总下载、总互动。
状态可选全部、活跃、半弃坑、停更。状态来自资源内容里作者填写的 status 字段。
搜索按资源名模糊匹配。
表格每行显示排名、资源名和 ID、类型、作者、今日 PV、总 PV、下载、互动和状态。前三名的排名数字有特殊颜色。
表格底部分页,每页 20 条。
点资源名会打开主站对应资源页。
资源健康度
健康度按资源当前的 status 字段分类,反映资源的活跃情况。
四个分类是活跃、半弃坑、停更、未知。活跃表示作者在持续维护;半弃坑表示更新频率明显下降;停更表示作者已停止更新;未知表示未填写。
页面以四张横向卡片显示各分类的数量和占比,卡片底部有横向进度条表示占比。
卡片下方按资源类型分列,显示每类资源在四个状态上的分布。
健康度用于分析站内资源的整体质量。若停更类资源占比过高,可能需要联系作者更新或标记状态。
资源对比分析
对比分析用来把多个资源放在同一张图上观察趋势。
输入框填写资源 ID,多个 ID 用逗号分隔。
类型下拉选择资源 ID 所属的类型。所有参与对比的资源必须是同一类型。
起止日期选择对比的时间范围。
点「对比」按钮生成图表。
图表的横轴是日期,纵轴是 PV。每个资源一条曲线,颜色自动分配。
资源数量超过一定数量后,图例可能过于拥挤。建议单次对比不超过 8 个资源。
未输入 ID 或只输入一个 ID 时,图表区显示提示文字,不生成曲线。
导出 CSV
点页头右侧的「导出 CSV」按钮导出当前时间范围的数据。
导出内容包括统计范围、导出时间、概览统计、每日趋势、页面明细排行、属地排行、下载统计六部分。
下载统计按日期列出完整下载和去重后部分下载的数量,以及二者的合计。
导出文件的编码为 UTF-8,带 BOM,在 Excel 里直接打开不乱码。
若在对比分析里选了时间范围,导出会使用该范围;否则使用最近 30 天。
操作日志
操作日志用来审计后台的所有操作,包括管理中心的页面访问、选料模块的操作、茶室模块的操作,以及主站用户的关键操作。定位问题时,操作日志是第一手资料。
入口在侧边栏「统计数据」下的「操作日志」,路径 /4_alog。
仅工坊主管可访问。
整体布局

页面顶部是页头,显示日志来源切换按钮组和记录总数。
页头下方是筛选面板,默认展开,可折叠。
再往下是日志表格和分页。
日志来源
操作日志汇总了四张表的数据,通过页头右上角的按钮组切换来源。
管理中心记录后台页面的访问和操作,来源为 admin_action_log 表。
主站记录主站用户的关键操作,来源为 action_log 表。
选料记录选料模块的操作,来源为 sel_action_log 表。
茶室记录茶室模块的操作,来源为 tea_action_log 表。
四个来源的字段结构基本一致,但部分字段在不同表里可能为空。例如主站的日志不记录 IP 属地,展示时这一列显示为「未知」。
切换来源后,筛选条件和分页重置,重新加载。
筛选面板
筛选面板默认展开,包含六项。
开始日期和结束日期限定查询的时间范围。
级别过滤日志级别,可选全部、DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL。日常审计主要关注 WARNING 及以上。
用户 ID 或昵称按操作者过滤。输入数字时按用户 ID 精确匹配,输入文字时按昵称模糊匹配。
IP 地址按客户端 IP 模糊匹配,用于追查某个来源的访问。
路径按请求路径模糊匹配,用于定位某个接口或页面。
筛选条件生效后,页面右上角的总数会更新为符合条件的结果数。
日志表格
表格每行是一条日志,包含以下列。
ID 是日志的主键。
用户显示操作者的昵称和用户 ID。
级别用不同颜色区分。INFO 绿、NOTICE 蓝、WARNING 黄、ERROR 红、DEBUG 紫、CRITICAL 深红。
操作是日志记录的行为标识,例如 page_view、review_submit、user_ban 等。
目标类型和目标 ID 是本次操作的对象。例如审核操作的目标类型是 review,目标 ID 是被审记录 ID。
方法显示 HTTP 请求方法,GET 绿、POST 橙、PUT 蓝、DELETE 红、PATCH 紫。
路径显示请求路径。路径较长时截断显示,鼠标悬停可看完整内容。
请求参数和请求体分别显示 GET 参数和 POST 请求体。为保护隐私,密码、验证码、token 等敏感字段在记录时已被过滤。
状态显示 HTTP 状态码。2xx 绿、3xx 黄、4xx 和 5xx 红。
耗时显示请求处理时间,单位毫秒。
IP 和属地显示客户端 IP 和解析出的地理区域。属地由国家或省份组成。
User-Agent 显示客户端的浏览器标识。
时间显示日志的创建时间。
列设置
表头右上角有「列设置」按钮,点开一个下拉面板,列出所有列并带多选框。
取消勾选某列后,该列从表格中隐藏。设置保存在浏览器本地,下次打开自动恢复。
下拉面板底部有三个按钮。「全选」打开所有列。「取消全选」隐藏所有列。「恢复默认」回到初始的列显示配置。
默认隐藏的列是目标类型、目标 ID、耗时和 User-Agent。需要时手动打开。
分页
表格底部的分页控件包含每页条数下拉、页码按钮、总数提示和跳转输入框。
每页可选 20、30、50、100 条。
跳转输入框输入页码后点「跳转」或按回车。
导出
导出功能在筛选面板里,点「导出 CSV」按钮。
导出遵循当前筛选条件,不受分页限制,即导出所有符合条件的结果。
导出内容包括 ID、用户 ID、用户昵称、操作、级别、目标类型、目标 ID、方法、路径、状态码、耗时、IP、属地、User-Agent、请求参数、请求体、创建时间。
文件名带来源标识和导出时间,例如 操作日志_管理中心_20260918_142530.csv。
导出文件的编码为 UTF-8,带 BOM。
日志的生成来源
操作日志的记录分自动和手动两类。
自动记录发生在请求处理层,由中间件统一拦截。后台每次页面访问,无论是列表加载、详情查看还是操作提交,都会在响应返回前写入一条日志。这些日志的操作类型统一为 page_view,级别根据响应状态码判定。
手动记录发生在具体业务逻辑里。审核通过、封禁用户、修改角色、调整规则这类关键操作,业务代码会主动调用日志记录函数,写入更具体的操作类型和上下文信息。
两类记录并存,因此同一个页面上可能既有 page_view 的自动记录,也有 review_submit 这类手动记录。
敏感字段过滤
写入请求参数或请求体时,系统会自动过滤敏感字段。
被过滤的字段包括密码、旧密码、新密码、确认密码、验证码、邮箱验证码、重置验证码、token、access_token、refresh_token、secret、api_key 等。
被过滤的字段不出现在日志的请求参数和请求体里,即使操作者填写了这些值也不会记录。
日志的保存周期
操作日志的保存周期由数据库策略决定,暂无自动清理机制。因此早期的日志会长期保留,查询历史操作时可以直接指定日期范围。