From fe04012057d024770e0180543483d393281a542f Mon Sep 17 00:00:00 2001
From: zhujie <leon.zhu@cloudroam.com.cn>
Date: 星期四, 03 四月 2025 09:18:16 +0800
Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/FirstApp2

---
 app/src/main/java/com/example/firstapp/database/dao/CodeDao.kt |   76 +++++++++++++++++++++++++-------------
 1 files changed, 50 insertions(+), 26 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 e7dc073..58bcc20 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
@@ -10,6 +10,7 @@
 import com.example.firstapp.model.CourierStat
 import com.example.firstapp.model.DailyStat
 import com.example.firstapp.model.HeatmapStat
+import com.example.firstapp.model.StationGroup
 import io.reactivex.Completable
 import kotlinx.coroutines.flow.Flow
 
@@ -35,7 +36,7 @@
     @Query("SELECT * FROM Code")
      fun getAllCodes(): List<Code>
 
-    @Query("SELECT * FROM Code WHERE type = :type")
+    @Query("SELECT * FROM Code WHERE oneLevel = :type")
      fun getCodesByType(type: String): List<Code>
 
 
@@ -48,37 +49,43 @@
 
     @Query("""
         SELECT * FROM Code 
-        WHERE type LIKE '%' || :keyword || '%' 
+        WHERE oneLevel LIKE '%' || :keyword || '%' 
         AND pickup = '0'
         ORDER BY time DESC
     """)
     fun getByKeyword(keyword: String): List<Code>
 
-    @Query("SELECT * FROM Code WHERE type = :content and code= :code and createtime = :dateString LIMIT 1")
-    fun queryByTypeAndCodeAndDate(content: String, code: String, dateString: String): Code
+    @Query("""
+        SELECT * FROM Code 
+        WHERE category = :category 
+        AND code = :code 
+        AND substr(createTime, 1, 10) = substr(:dateString, 1, 10)
+        LIMIT 1
+    """)
+    fun queryByTypeAndCodeAndDate(category: String, code: String, dateString: String): Code?
 
 
     @Query("update  Code set pickup = '1' ,  pickuptime = CURRENT_TIMESTAMP  where id=:id")
     fun pickup(id: Long)
 
     //查询当天包裹信息
-    @Query("SELECT * FROM code WHERE date(createtime) = date(:date/1000, 'unixepoch', 'localtime') ORDER BY createtime DESC")
+    @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 substr(createtime, 1, 10) = 
+        WHERE substr(createTime, 1, 10) = 
               date(:date/1000, 'unixepoch', 'localtime')
-        ORDER BY createtime DESC
+        ORDER BY createTime DESC
     """)
     fun getPackagesByDay(date: Long): Flow<List<Code>>
 
     @Query("""
-        SELECT type as courierName, COUNT(*) as count 
+        SELECT oneLevel as courierName, COUNT(*) as count 
         FROM code 
-        WHERE strftime('%Y-%W', substr(createtime, 1, 10)) = 
+        WHERE strftime('%Y-%W', substr(createTime, 1, 10)) = 
               strftime('%Y-%W', datetime(:date/1000, 'unixepoch', 'localtime'))
-        GROUP BY type
+        GROUP BY oneLevel
         ORDER BY count DESC
     """)
     fun getCourierStatsByWeek(date: Long): Flow<List<CourierStat>>
@@ -98,7 +105,7 @@
         COUNT(c.id) as count,
         date_value as weekStart
     FROM dates d
-    LEFT JOIN code c ON strftime('%Y-%m-%d', c.createtime) BETWEEN 
+    LEFT JOIN code c ON strftime('%Y-%m-%d', c.createTime) BETWEEN 
         strftime('%Y-%m-%d', d.date_value) 
         AND strftime('%Y-%m-%d', date(d.date_value, '+6 days'))
     GROUP BY d.date_value
@@ -109,28 +116,28 @@
 
     @Query("""
         SELECT * FROM code 
-        WHERE substr(createtime, 1, 10) = 
+        WHERE substr(createTime, 1, 10) = 
               date(:date/1000, 'unixepoch', 'localtime')
-        ORDER BY createtime DESC
+        ORDER BY createTime DESC
     """)
      fun getPackagesByWeek(date: Long): Flow<List<Code>>
 
     @Query("""
-        SELECT type as courierName, COUNT(*) as count 
+        SELECT oneLevel as courierName, COUNT(*) as count 
         FROM code 
-        WHERE strftime('%Y-%m', substr(createtime, 1, 10)) = 
+        WHERE strftime('%Y-%m', substr(createTime, 1, 10)) = 
               strftime('%Y-%m', datetime(:date/1000, 'unixepoch', 'localtime'))
-        GROUP BY type
+        GROUP BY oneLevel
         ORDER BY count DESC
     """)
     fun getCourierStatsByMonth(date: Long): Flow<List<CourierStat>>
 
     @Query("""
-        SELECT type as courierName, COUNT(*) as count 
+        SELECT oneLevel as courierName, COUNT(*) as count 
         FROM code 
-        WHERE strftime('%Y', substr(createtime, 1, 10)) = 
+        WHERE strftime('%Y', substr(createTime, 1, 10)) = 
               strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime'))
-        GROUP BY type
+        GROUP BY oneLevel
         ORDER BY count DESC
     """)
     fun getCourierStatsByYear(date: Long): Flow<List<CourierStat>>
@@ -148,7 +155,7 @@
 //            COUNT(code.id) as count,
 //            month_start as week_start
 //        FROM months
-//        LEFT JOIN code ON strftime('%Y-%m', code.createtime) = strftime('%Y-%m', months.month_start)
+//        LEFT JOIN code ON strftime('%Y-%m', code.createTime) = strftime('%Y-%m', months.month_start)
 //        GROUP BY months.month_start
 //        ORDER BY months.month_start ASC
 //    """)
@@ -167,7 +174,7 @@
             COUNT(code.id) as count,
             year_start as week_start
         FROM years 
-        LEFT JOIN code ON strftime('%Y', code.createtime) = strftime('%Y', years.year_start)
+        LEFT JOIN code ON strftime('%Y', code.createTime) = strftime('%Y', years.year_start)
         GROUP BY years.year_start
         ORDER BY years.year_start ASC
     """)
@@ -186,7 +193,7 @@
             CAST(strftime('%W', dates.date) AS INTEGER) as weekOfYear,
             COUNT(code.id) as count
         FROM dates 
-        LEFT JOIN code ON date(code.createtime) = dates.date
+        LEFT JOIN code ON date(code.createTime) = dates.date
         GROUP BY dates.date
         ORDER BY dates.date
     """)
@@ -205,7 +212,7 @@
             COUNT(code.id) as count,
             days.date as week_start
         FROM days 
-        LEFT JOIN code ON date(code.createtime) = days.date
+        LEFT JOIN code ON date(code.createTime) = days.date
         GROUP BY days.date
         ORDER BY days.date ASC
     """)
@@ -224,7 +231,7 @@
             COUNT(code.id) as count,
             month_start as weekStart
         FROM months 
-        LEFT JOIN code ON strftime('%Y-%m', code.createtime) = strftime('%Y-%m', months.month_start)
+        LEFT JOIN code ON strftime('%Y-%m', code.createTime) = strftime('%Y-%m', months.month_start)
         GROUP BY months.month_start
         ORDER BY months.month_start ASC
     """)
@@ -245,7 +252,7 @@
         COUNT(code.id) as count,
         days.date as weekStart
     FROM days 
-    LEFT JOIN code ON date(code.createtime) = days.date
+    LEFT JOIN code ON date(code.createTime) = days.date
     GROUP BY days.date
     ORDER BY days.date ASC
 """)
@@ -258,7 +265,24 @@
         COUNT(id) as count,
         datetime(:date/1000, 'unixepoch', 'localtime') as weekStart
     FROM code 
-    WHERE strftime('%Y', createtime) = strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime'))
+    WHERE strftime('%Y', createTime) = strftime('%Y', datetime(:date/1000, 'unixepoch', 'localtime'))
 """)
     fun getCurrentYearStats(date: Long): Flow<List<DailyStat>>
+
+    @Query("""
+        SELECT oneLevel as stationName, COUNT(*) as count
+        FROM Code 
+        WHERE category = :type AND pickup = '0'
+        GROUP BY oneLevel
+        ORDER BY createTime DESC
+    """)
+    fun getStationsByType(type: String): List<StationGroup>
+
+    @Query("""
+        SELECT * FROM Code 
+        WHERE category = :type AND pickup = '0'
+        AND oneLevel = :stationName
+        ORDER BY createTime DESC
+    """)
+    fun getPackagesByTypeAndStation(type: String, stationName: String): List<Code>
 }

--
Gitblit v1.9.3