cloudroam
2025-03-06 66c61a1451a177bbe465f763afdffa3bcfe2ce56
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>>
}