| | |
| | | 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>> |
| | | } |