From 2a117297daf83b2e1a104603e9641226d5beeba3 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 04 三月 2025 10:41:38 +0800
Subject: [PATCH] fix: 按天统计相关逻辑

---
 app/src/main/java/com/example/firstapp/database/AppDatabase.kt |   90 ++++++++++++++++++++++++++++++++------------
 1 files changed, 65 insertions(+), 25 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/database/AppDatabase.kt b/app/src/main/java/com/example/firstapp/database/AppDatabase.kt
index 42a1399..626aae1 100644
--- a/app/src/main/java/com/example/firstapp/database/AppDatabase.kt
+++ b/app/src/main/java/com/example/firstapp/database/AppDatabase.kt
@@ -8,27 +8,42 @@
 import androidx.room.migration.Migration
 import androidx.sqlite.db.SupportSQLiteDatabase
 import com.example.firstapp.database.dao.CodeDao
+import com.example.firstapp.database.dao.KeywordDao
 import com.example.firstapp.database.dao.MsgDao
+import com.example.firstapp.database.dao.ReminderDao
 import com.example.firstapp.database.entity.Code
+import com.example.firstapp.database.entity.KeywordEntity
 import com.example.firstapp.database.entity.Msg
+import com.example.firstapp.database.entity.Reminder
 import com.example.firstapp.utils.DATABASE_NAME
 import com.example.firstapp.utils.SettingUtils
 import com.example.firstapp.utils.TAG_LIST
 
 import com.example.firstapp.database.ext.ConvertersDate
-
+import com.example.firstapp.model.CourierStat
+import com.example.firstapp.model.DailyStat
 
 
 @Database(
-    entities = [ Msg::class, Code::class],
-//    views = [LogsDetail::class],
-    version = 19,
+    entities = [
+        Msg::class, 
+        Code::class, 
+        KeywordEntity::class, 
+        Reminder::class
+    ],
+    views = [
+        CourierStat::class,
+        DailyStat::class
+    ],
+    version = 20,
     exportSchema = false
 )
 @TypeConverters(ConvertersDate::class)
 abstract class AppDatabase : RoomDatabase() {
     abstract fun msgDao(): MsgDao
     abstract fun codeDao(): CodeDao
+    abstract fun keywordDao(): KeywordDao
+    abstract fun reminderDao(): ReminderDao
 
     companion object {
         @Volatile
@@ -66,36 +81,61 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
         private val MIGRATION_MSG = object : Migration(19, 20) {
             override fun migrate(database: SupportSQLiteDatabase) {
                 //database.execSQL("Create table Msg as Select id,type,`from`,content,(case when sim_info like 'SIM1%' then '0' when sim_info like 'SIM2%' then '1' else '-1' end) as sim_slot,sim_info,sub_id,time from Logs where 1 = 1")
                 database.execSQL(
                     """
-CREATE TABLE "Msg" (
-  "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
-  "type" TEXT NOT NULL DEFAULT 'sms',
-  "from" TEXT NOT NULL DEFAULT '',
-  "content" TEXT NOT NULL DEFAULT '',
-  "sim_slot" INTEGER NOT NULL DEFAULT -1,
-  "sim_info" TEXT NOT NULL DEFAULT '',
-  "sub_id" INTEGER NOT NULL DEFAULT 0,
-  "time" INTEGER NOT NULL
-)
-""".trimIndent()
+                    CREATE TABLE "Msg" (
+                      "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+                      "type" TEXT NOT NULL DEFAULT 'sms',
+                      "from" TEXT NOT NULL DEFAULT '',
+                      "content" TEXT NOT NULL DEFAULT '',
+                      "sim_slot" INTEGER NOT NULL DEFAULT -1,
+                      "sim_info" TEXT NOT NULL DEFAULT '',
+                      "sub_id" INTEGER NOT NULL DEFAULT 0,
+                      "time" INTEGER NOT NULL
+                    )
+                """.trimIndent()
                 )
 
                 database.execSQL("CREATE UNIQUE INDEX \"index_Msg_id\" ON \"Msg\" ( \"id\" ASC)")
 
+                // 新增 KeywordEntity 表的创建逻辑
+                database.execSQL("""
+                    CREATE TABLE IF NOT EXISTS `keywords` (
+                        `id` INTEGER PRIMARY KEY AUTOINCREMENT, 
+                        `keyword` TEXT NOT NULL, 
+                        `type` TEXT NOT NULL, 
+                        `isEnabled` INTEGER NOT NULL
+                    )
+                """)
+
+                // 创建 CourierStat 视图
+                database.execSQL("""
+                    CREATE VIEW IF NOT EXISTS CourierStat AS
+                    SELECT courierName, COUNT(*) as count 
+                    FROM packages 
+                    GROUP BY courierName
+                """)
+
+                // 创建 DailyStat 视图
+                database.execSQL("""
+                    CREATE VIEW IF NOT EXISTS DailyStat AS
+                    SELECT date(receivedTime/1000, 'unixepoch', 'localtime') as date, 
+                           COUNT(*) as count 
+                    FROM packages 
+                    GROUP BY date(receivedTime/1000, 'unixepoch', 'localtime')
+                """)
+//                database.execSQL("""
+//                   CREATE TABLE   IF NOT EXISTS `reminders` (
+//                    id INTEGER PRIMARY KEY AUTOINCREMENT,
+//                    type TEXT NOT NULL,
+//                    nickname TEXT NOT NULL,
+//                    keywords TEXT NOT NULL,
+//                );
+//                """)
+
             }
         }
 

--
Gitblit v1.9.3