From 897ffe5e29ab022d75ad948ecf894e0a3ed3b2f5 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 04 三月 2025 18:01:41 +0800 Subject: [PATCH] fix: 1 --- app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt | 52 ++++++++++++++++++++++++++++------------------------ 1 files changed, 28 insertions(+), 24 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 d86d5c1..00e535f 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 @@ -64,36 +64,40 @@ @Query("SELECT * FROM code WHERE date(createtime) = date(:date/1000, 'unixepoch', 'localtime') ORDER BY createtime DESC") fun getNewPackagesByDay(date: Long): List<Code> - @Query("SELECT * FROM code WHERE date(createtime/1000, 'unixepoch', 'localtime') = date(:date/1000, 'unixepoch', 'localtime') ORDER BY createtime DESC") + @Query(""" + SELECT * FROM code + WHERE substr(createtime, 1, 10) = + date(:date/1000, 'unixepoch', 'localtime') + ORDER BY createtime DESC + """) fun getPackagesByDay(date: Long): Flow<List<Code>> @Query(""" - SELECT * FROM code - WHERE strftime('%Y-%W', createtime/1000, 'unixepoch', 'localtime') = - strftime('%Y-%W', :date/1000, 'unixepoch', 'localtime') - ORDER BY createtime DESC - """) - fun getPackagesByWeek(date: Long): Flow<List<Code>> - - @Query(""" - SELECT * FROM CourierStat - WHERE EXISTS ( - SELECT 1 FROM code p - WHERE p.category = CourierStat.category - AND strftime('%Y-%W', p.createtime/1000, 'unixepoch', 'localtime') = - strftime('%Y-%W', :date/1000, 'unixepoch', 'localtime') - ) + SELECT type as courierName, COUNT(*) as count + FROM code + WHERE strftime('%Y-%W', substr(createtime, 1, 10)) = + strftime('%Y-%W', datetime(:date/1000, 'unixepoch', 'localtime')) + GROUP BY type + ORDER BY count DESC """) fun getCourierStatsByWeek(date: Long): Flow<List<CourierStat>> @Query(""" - SELECT * FROM DailyStat - WHERE EXISTS ( - SELECT 1 FROM code p - WHERE date(p.createtime/1000, 'unixepoch', 'localtime') = DailyStat.date - AND strftime('%Y-%W', p.createtime/1000, 'unixepoch', 'localtime') = - strftime('%Y-%W', :date/1000, 'unixepoch', 'localtime') - ) + SELECT strftime('%W', createtime) as date, + COUNT(*) as count, + MIN(createtime) as week_start + FROM code + WHERE strftime('%Y', createtime) = strftime('%Y', 'now') + GROUP BY strftime('%W', createtime) + ORDER BY week_start ASC """) - fun getDailyStatsByWeek(date: Long): Flow<List<DailyStat>> + fun getDailyStatsByWeek(): Flow<List<DailyStat>> + + @Query(""" + SELECT * FROM code + WHERE substr(createtime, 1, 10) = + date(:date/1000, 'unixepoch', 'localtime') + ORDER BY createtime DESC + """) + fun getPackagesByWeek(date: Long): Flow<List<Code>> } -- Gitblit v1.9.3