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