数据源:百度百科开放接口 BaikeLemmaCardApi(无反爬,返回结构化 JSON) 与「历史上的今天」(维基)完全解耦,维基代码原样保留可随时恢复: 服务端: - WikiEntry 增加 image(配图)和 extra(结构化字段 JSON)字段 - 新建 BaikeTermSyncLog 独立日志表(不污染维基 WikiSyncLog) - 新建 BaikeTermSyncService 独立同步服务(24 节气,间隔 1.2s) - 启动时缺详情自动补齐,之后按配置间隔定时增量刷新 - 管理 API:GET/POST /admin/api/wiki/term-sync* 管理后台: - 百科条目 Tab 顶部加节气同步卡片(X/24 + 状态 + 同步按钮) - 条目编辑器加配图 URL(含预览)和节气扩展字段编辑 小程序: - 百科页展开详情图文展示:配图 + 简介 + 物候/习俗/养生等分块 本地验证:24/24 节气抓取成功,image/extra 全部填充,维基数据不受影响
19 lines
846 B
Go
19 lines
846 B
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
)
|
||
|
||
// BaikeTermSyncLog 节气详情同步日志(独立于维基 WikiSyncLog,互不影响)
|
||
type BaikeTermSyncLog struct {
|
||
ID uint `gorm:"primaryKey" json:"id"`
|
||
Trigger string `gorm:"size:20" json:"trigger"` // startup:启动自动 cron:定时任务 admin:手动
|
||
Status string `gorm:"size:20" json:"status"` // running:进行中 success:成功 partial:部分失败 failed:失败
|
||
Pages int `json:"pages"` // 总节气数(24)
|
||
Success int `json:"success"` // 成功数
|
||
Failed int `json:"failed"` // 失败数
|
||
Error string `gorm:"size:500" json:"error"`
|
||
StartedAt time.Time `json:"startedAt"`
|
||
FinishedAt *time.Time `json:"finishedAt"` // 同步完成时间,进行中为 NULL
|
||
}
|