fix(widget): 修复页面访问量获取失败的问题
- 前端 trackVisit 现在传递 siteId 参数 - 后端 getPagePv 查询时处理 site_id 为空或 NULL 的情况
This commit is contained in:
@@ -12,11 +12,23 @@ export const getPagePv = async (c: Context<{ Bindings: Bindings }>) => {
|
||||
return c.json({ message: 'post_slug is required' }, 400);
|
||||
}
|
||||
|
||||
const row = await c.env.CWD_DB.prepare(
|
||||
'SELECT pv FROM page_stats WHERE post_slug = ? AND site_id = ?'
|
||||
)
|
||||
.bind(postSlug, siteId)
|
||||
.first<{ pv: number }>();
|
||||
let row: { pv: number } | null = null;
|
||||
|
||||
if (siteId) {
|
||||
// 有 siteId 时精确匹配
|
||||
row = await c.env.CWD_DB.prepare(
|
||||
'SELECT pv FROM page_stats WHERE post_slug = ? AND site_id = ?'
|
||||
)
|
||||
.bind(postSlug, siteId)
|
||||
.first<{ pv: number }>();
|
||||
} else {
|
||||
// 无 siteId 时,匹配空字符串或 NULL
|
||||
row = await c.env.CWD_DB.prepare(
|
||||
'SELECT pv FROM page_stats WHERE post_slug = ? AND (site_id = ? OR site_id IS NULL)'
|
||||
)
|
||||
.bind(postSlug, '')
|
||||
.first<{ pv: number }>();
|
||||
}
|
||||
|
||||
const pv = row?.pv || 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user