From 5edfd12deb166302708857515a833d1471a0f208 Mon Sep 17 00:00:00 2001 From: zuoxiao <lf_zuo@163.com> Date: 星期三, 25 六月 2025 16:15:23 +0800 Subject: [PATCH] feat(database): 增加管理卡相关功能并优化数据库结构- 新增 ManagerCardBean 数据类用于管理卡信息 - 在 AppDataBase 中添加 ManagerCardDao 接口 - 实现管理卡的数据库迁移策略 - 优化支付方式 ID 类型,从 Long改为 String - 重构更新写卡和上报状态的逻辑,支持管理卡和用户卡 --- generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt index a58d63f..cb56c7a 100644 --- a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt +++ b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt @@ -24,13 +24,33 @@ } } + // 鏁版嵁搴撹縼绉荤瓥鐣ワ細浠庣増鏈�4杩佺Щ鍒扮増鏈�5 + private val MIGRATION_4_5 = object : Migration(4, 5) { + override fun migrate(database: SupportSQLiteDatabase) { + // 鍒涘缓绠$悊鍗¤〃 + database.execSQL(""" + CREATE TABLE IF NOT EXISTS `manager_card` ( + `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + `cardAddress` TEXT NOT NULL, + `orderId` TEXT NOT NULL, + `isReported` INTEGER NOT NULL DEFAULT 0, + `isCardWritten` INTEGER NOT NULL DEFAULT 0, + `operatorId` TEXT NOT NULL DEFAULT '', + `createTime` INTEGER NOT NULL + ) + """.trimIndent()) + } + } + fun getInstance(context: Context): AppDataBase { if (baseDao == null) { baseDao = Room.databaseBuilder<AppDataBase>( context, AppDataBase::class.java, SqlitePath + "ConfigurationData_generalV1" - ).allowMainThreadQueries().build() + ).allowMainThreadQueries() + .addMigrations(MIGRATION_3_4, MIGRATION_4_5) // 娣诲姞杩佺Щ绛栫暐 + .build() } return baseDao as AppDataBase } @@ -43,7 +63,7 @@ AppDataBase::class.java, "GeneralLibrary.db" ) - .addMigrations(MIGRATION_3_4) // 娣诲姞杩佺Щ绛栫暐 + .addMigrations(MIGRATION_3_4, MIGRATION_4_5) // 娣诲姞杩佺Щ绛栫暐 .build() } } -- Gitblit v1.8.0