From 66c61a1451a177bbe465f763afdffa3bcfe2ce56 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 06 三月 2025 13:18:43 +0800 Subject: [PATCH] fix: 5 --- app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt b/app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt index 39d54e2..e7dc073 100644 --- a/app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt +++ b/app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt @@ -229,4 +229,36 @@ ORDER BY months.month_start ASC """) fun getYearMonthlyStats(date: Long): Flow<List<DailyStat>> + + + // 新增当前周统计方法 + @Query(""" + WITH RECURSIVE days(date) AS ( + SELECT date(datetime(:date/1000, 'unixepoch', 'localtime'), 'weekday 0') as date + UNION ALL + SELECT date(date, '+1 day') + FROM days + WHERE date < date(datetime(:date/1000, 'unixepoch', 'localtime'), 'weekday 6') + ) + SELECT + strftime('%Y-%m-%d', days.date) as date, + COUNT(code.id) as count, + days.date as weekStart + FROM days + LEFT JOIN code ON date(code.createtime) = days.date + GROUP BY days.date + ORDER BY days.date ASC +""") + fun getCurrentWeekStats(date: Long): Flow<List<DailyStat>> + + // 新增当前年统计方法 + @Query(""" + SELECT + strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime')) as date, + COUNT(id) as count, + datetime(:date/1000, 'unixepoch', 'localtime') as weekStart + FROM code + WHERE strftime('%Y', createtime) = strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime')) +""") + fun getCurrentYearStats(date: Long): Flow<List<DailyStat>> } -- Gitblit v1.9.3