From 04b138d3836e03c9adbcbd367fd71d92905c5206 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 17 四月 2025 13:17:45 +0800
Subject: [PATCH] add: 重复登录处理
---
app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt | 73 ++++++++++++++++++++++++++++++++++--
1 files changed, 69 insertions(+), 4 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 7572a45..c3b0d52 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
@@ -29,6 +29,9 @@
@Query("DELETE FROM Code where id=:id")
fun delete(id: Long)
+ @Query("DELETE FROM Code")
+ fun deleteAll(): Completable
+
@Query("SELECT * FROM Code WHERE id = :id LIMIT 1")
fun getCodeById(id: Long): Code?
@@ -75,16 +78,24 @@
@Query("""
SELECT * FROM code
WHERE substr(createTime, 1, 10) =
- date(:date/1000, 'unixepoch', 'localtime')
+ date(:date/1000, 'unixepoch', 'localtime')
ORDER BY createTime DESC
""")
fun getPackagesByDay(date: Long): Flow<List<Code>>
@Query("""
+ SELECT * FROM code
+ WHERE substr(createTime, 1, 10) =
+ date(:date/1000, 'unixepoch', 'localtime') and pickup = 1 and category='快递'
+ ORDER BY createTime DESC
+ """)
+ fun getPackagesByDayReaded(date: Long): Flow<List<Code>>
+
+ @Query("""
SELECT oneLevel as courierName, COUNT(*) as count
FROM code
WHERE strftime('%Y-%W', substr(createTime, 1, 10)) =
- strftime('%Y-%W', datetime(:date/1000, 'unixepoch', 'localtime'))
+ strftime('%Y-%W', datetime(:date/1000, 'unixepoch', 'localtime')) and category='快递'
GROUP BY oneLevel
ORDER BY count DESC
""")
@@ -124,7 +135,7 @@
SELECT oneLevel as courierName, COUNT(*) as count
FROM code
WHERE strftime('%Y-%m', substr(createTime, 1, 10)) =
- strftime('%Y-%m', datetime(:date/1000, 'unixepoch', 'localtime'))
+ strftime('%Y-%m', datetime(:date/1000, 'unixepoch', 'localtime')) and category='快递'
GROUP BY oneLevel
ORDER BY count DESC
""")
@@ -134,7 +145,7 @@
SELECT oneLevel as courierName, COUNT(*) as count
FROM code
WHERE strftime('%Y', substr(createTime, 1, 10)) =
- strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime'))
+ strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime')) and category='快递'
GROUP BY oneLevel
ORDER BY count DESC
""")
@@ -283,4 +294,58 @@
ORDER BY createTime DESC
""")
fun getPackagesByTypeAndStation(type: String, stationName: String): List<Code>
+
+
+ @Query("""
+ SELECT COUNT(1)
+ FROM code
+ WHERE date(createTime) BETWEEN date(:startDateCur) AND date(:endDateCur)
+ """)
+ fun getCurrentWeekStats2(startDateCur: String, endDateCur: String): Flow<Long>
+
+// @Query("""
+// WITH RECURSIVE dates(date_value) AS (
+// SELECT date('now', 'weekday 1', '-7 days')
+// UNION ALL
+// SELECT date(date_value, '+1 day')
+// FROM dates
+// WHERE date_value < date('now', 'weekday 1', '-7 days', '+6 days')
+// )
+// SELECT
+// strftime('%d', date_value) AS date,
+// COUNT(c.id) AS count,
+// '' as weekStart
+// FROM dates d
+// LEFT JOIN code c ON date(c.createTime) = d.date_value
+// GROUP BY d.date_value
+// ORDER BY d.date_value ASC
+//
+// """)
+
+ @Query("""
+ WITH RECURSIVE dates(date_value) AS (
+ SELECT date(:startDateCur)
+ UNION ALL
+ SELECT date(date_value, '+1 day')
+ FROM dates
+ WHERE date_value < date(:endDateCur)
+ )
+ SELECT
+ strftime('%d', date_value) AS date,
+ COUNT(c.id) AS count,
+ '' AS weekStart
+ FROM dates d
+ LEFT JOIN code c ON date(c.createTime) = d.date_value
+ GROUP BY d.date_value
+ ORDER BY d.date_value ASC
+""")
+ fun getWeeklyStatsChart(startDateCur: String, endDateCur: String): Flow<List<DailyStat>>
+
+
+ @Query("""
+ SELECT COUNT(1)
+ FROM code
+ WHERE date(createTime) BETWEEN date(:startDateCur) AND date(:endDateCur) and category =:type
+ """)
+ fun getDateStatsByType(startDateCur: String, endDateCur: String,type: String): Flow<Long>
}
--
Gitblit v1.9.3