feat(数据看板): 将评论趋势统计从7天改为30天
修改前端展示、API文档和后端逻辑,将评论趋势统计的时间范围从7天扩展至30天,以提供更全面的数据分析视角
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3 class="card-title">最近 7 天评论数趋势</h3>
|
||||
<h3 class="card-title">最近 30 天评论数趋势</h3>
|
||||
<div v-if="statsLoading" class="page-hint">加载中...</div>
|
||||
<div v-else-if="statsError" class="page-error">{{ statsError }}</div>
|
||||
<div v-else class="chart-wrapper">
|
||||
|
||||
@@ -94,12 +94,12 @@ export const getStats = async (c: Context<{ Bindings: Bindings }>) => {
|
||||
.sort((a, b) => b.total - a.total);
|
||||
|
||||
const now = Date.now();
|
||||
const sevenDaysAgo = now - 6 * 24 * 60 * 60 * 1000;
|
||||
const thirtyDaysAgo = now - 29 * 24 * 60 * 60 * 1000;
|
||||
|
||||
const { results: dailyRows } = await c.env.CWD_DB.prepare(
|
||||
"SELECT date(created / 1000, 'unixepoch') as day, COUNT(*) as total FROM Comment WHERE created >= ? GROUP BY day ORDER BY day ASC"
|
||||
)
|
||||
.bind(sevenDaysAgo)
|
||||
.bind(thirtyDaysAgo)
|
||||
.all<{ day: string; total: number }>();
|
||||
|
||||
const dailyMap = new Map<string, number>();
|
||||
@@ -110,7 +110,7 @@ export const getStats = async (c: Context<{ Bindings: Bindings }>) => {
|
||||
}
|
||||
|
||||
const last7Days: { date: string; total: number }[] = [];
|
||||
for (let i = 6; i >= 0; i--) {
|
||||
for (let i = 29; i >= 0; i--) {
|
||||
const d = new Date(now - i * 24 * 60 * 60 * 1000);
|
||||
const year = d.getUTCFullYear();
|
||||
const month = String(d.getUTCMonth() + 1).padStart(2, '0');
|
||||
|
||||
@@ -1085,7 +1085,7 @@ POST /admin/settings/email-test
|
||||
GET /admin/stats/comments
|
||||
```
|
||||
|
||||
用于管理后台「数据看板」展示评论整体统计、按域名统计以及最近 7 天评论趋势。
|
||||
用于管理后台「数据看板」展示评论整体统计、按域名统计以及最近 30 天评论趋势。
|
||||
|
||||
- 方法:`GET`
|
||||
- 路径:`/admin/stats/comments`
|
||||
@@ -1147,7 +1147,7 @@ GET /admin/stats/comments
|
||||
| `domains[].approved` | number | 该域名下已通过评论数 |
|
||||
| `domains[].pending` | number | 该域名下待审核评论数 |
|
||||
| `domains[].rejected` | number | 该域名下已拒绝评论数 |
|
||||
| `last7Days` | Array\<DailyStat\> | 最近 7 天的每日评论数(按自然日聚合) |
|
||||
| `last7Days` | Array\<DailyStat\> | 最近 30 天的每日评论数(按自然日聚合) |
|
||||
| `last7Days[].date` | string (YYYY-MM-DD) | 日期,UTC 时间格式化后的自然日 |
|
||||
| `last7Days[].total` | number | 当日评论总数 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user