吃瓜热点在源码中的领域名是 chigua。它不是普通文章列表,而是包含内容运营、用户行为、阅读进度和付费解锁的内容产品。租户后台负责编辑、上下架和订单统计,用户端负责浏览、购买、阅读与收藏。
代码与入口
| 层次 | 源码位置 | 主要职责 |
|---|---|---|
| PC 用户端 | pc/pages/chigua、pc/api/chigua.ts |
热点列表、详情、解锁和阅读 |
| 移动用户端 | uniapp/src/packages/pages/chigua |
H5、小程序和 App 内容页面 |
| 租户后台 | tenant/src/views/chigua |
文章、阅读记录、订单和运营统计 |
| 用户 API | server/app/api/*/chigua |
列表、详情、阅读、进度、点赞收藏与下单 |
| 租户 API | server/app/tenantapi/*/chigua |
内容增删改、上下架、历史与订单处理 |
核心领域对象
| 对象 | 作用 | 关键约束 |
|---|---|---|
ChiguaArticle |
保存标题、摘要、作者、正文、价格、标签和发布状态 | 未发布或已下架内容不能从用户 API 读取 |
ChiguaHistory |
保存一次阅读会话、场景、时长和完成状态 | read_code 关联同一次阅读进度上报 |
ChiguaUserArticle |
汇总用户对文章的购买、点赞、收藏和浏览状态 | 用户与文章组合保持唯一,作为权益查询入口 |
ChiguaOrder |
保存文章解锁订单及支付状态 | 已解锁文章不重复付费,待支付订单可以复用 |
内容与阅读流程
flowchart LR
Editor[租户运营] --> Draft[编辑文章与媒体]
Draft --> Publish[审核并发布]
Publish --> List[用户浏览列表 / 搜索]
List --> Detail[打开详情]
Detail --> Unlock{是否需要解锁}
Unlock -- 否 --> Read[创建阅读记录]
Unlock -- 是 --> Order[创建文章订单]
Order --> Pay[统一支付]
Pay --> Entitlement[写入用户文章权益]
Entitlement --> Read
Read --> Progress[时长 / 完读进度]
Read --> Behavior[点赞 / 收藏]
列表支持推荐、最新、热门、历史、点赞、收藏和已购等不同视图。详情接口先计算当前用户状态;需要解锁且尚未购买时不返回正文。支付成功后,服务端把权益写入 ChiguaUserArticle,以后即使文章价格变化,用户仍根据购买事实读取内容。
开始阅读时生成 read_code 并写入 ChiguaHistory,后续进度上报只允许更新当前用户自己的记录。点赞和收藏也保存到用户文章汇总中,文章总点赞数作为展示投影,不能反过来替代用户行为事实。
内容资产与合规边界
- 外部内容进入系统时应保存来源、原始地址、抓取时间和内容指纹,再经过清洗、去重和人工审核;
- 标题、正文、媒体、会员权益和订单是不同事实,域名或分享链接不能决定访问权限;
- 来源媒体缺失时可以展示明确提示,但不能伪造原图片或继续销售无法交付的内容;
- 删除或下架内容前需要处理已购用户访问、退款和审计记录,不能直接物理删除全部事实;
- 阅读、点赞和收藏可以异步统计,订单确认和权益写入必须幂等;
- 涉及个人隐私、侵权或未经证实的信息时,需要投诉、审核、下架和证据留存流程。
后续完善
当前代码已经覆盖文章运营、用户状态、阅读进度和付费解锁。后续适合补充来源表与采集任务、审核流、专题聚合、版权状态、投诉处理、内容修订历史,以及订单与内容下架之间的补偿策略。