From dd2562d8dc2b01bcdfca3152f82f09efbbd09259 Mon Sep 17 00:00:00 2001 From: zuoxiao <lf_zuo@163.com> Date: 星期三, 25 六月 2025 19:49:48 +0800 Subject: [PATCH] fix(generallibrary): 优化卡片处理和支付方式获取逻辑- 修复地区卡处理逻辑,增加对"00"类型卡的特殊处理 - 优化用户卡数据解析和显示逻辑,提高容错性 - 改进支付方式获取方法,增加错误处理和日志记录 -调整充值接口调用参数,确保正确传递当前余额等信息- 修复 AreaCard 中 areaNumber 类型,改为字符串处理 --- generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt | 92 ++++++++++++++++++++++++++++++++------------- 1 files changed, 65 insertions(+), 27 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 7edd95d..cb56c7a 100644 --- a/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt +++ b/generallibrary/src/main/java/com/dayu/general/dao/BaseDaoSingleton.kt @@ -3,45 +3,83 @@ import android.content.Context import android.os.Environment import androidx.room.Room -import com.dayu.general.activity.BaseActivity +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase import java.io.File class BaseDaoSingleton { companion object { + var baseDao: AppDataBase? = null + var AsynchBaseDao: AppDataBase? = null @JvmField val SqlitePath: String = Environment.getExternalStorageDirectory().absolutePath + File.separator + ".dayu" + File.separator + "data" + File.separator - } - var baseDao: AppDataBase? = null - - var AsynchBaseDao: AppDataBase? = null - - - - //MyFileUtil.SqlitePath + - fun getInstance(context: Context?): AppDataBase? { - if (baseDao == null) { - baseDao = Room.databaseBuilder<AppDataBase>( - context!!, - AppDataBase::class.java, - SqlitePath + "ConfigurationData_generalV1" - ).allowMainThreadQueries().build() + // 鏁版嵁搴撹縼绉荤瓥鐣ワ細浠庣増鏈�3杩佺Щ鍒扮増鏈�4 + private val MIGRATION_3_4 = object : Migration(3, 4) { + override fun migrate(database: SupportSQLiteDatabase) { + // 杩欓噷涓嶉渶瑕佸疄闄呯殑鏁版嵁搴撶粨鏋勪慨鏀癸紝鍥犱负鎴戜滑鍙槸鏇存柊浜哛oom鐗堟湰 + // 濡傛灉闇�瑕佷慨鏀规暟鎹簱缁撴瀯锛屽彲浠ュ湪杩欓噷娣诲姞 ALTER TABLE 璇彞 + } } - return baseDao + + // 鏁版嵁搴撹縼绉荤瓥鐣ワ細浠庣増鏈�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() + .addMigrations(MIGRATION_3_4, MIGRATION_4_5) // 娣诲姞杩佺Щ绛栫暐 + .build() + } + return baseDao as AppDataBase + } + fun getAsynchInstance(context: Context): AppDataBase { + if (AsynchBaseDao == null) { + synchronized(this) { + if (AsynchBaseDao == null) { + AsynchBaseDao = Room.databaseBuilder( + context.applicationContext, + AppDataBase::class.java, + "GeneralLibrary.db" + ) + .addMigrations(MIGRATION_3_4, MIGRATION_4_5) // 娣诲姞杩佺Щ绛栫暐 + .build() + } + } + } + return AsynchBaseDao as AppDataBase + } + + // 閿�姣佹暟鎹簱瀹炰緥 + fun destroyInstance() { + AsynchBaseDao = null + } } - fun getAsynchInstance(context: Context?): AppDataBase? { - if (AsynchBaseDao == null) { - AsynchBaseDao = Room.databaseBuilder<AppDataBase>( - context!!, - AppDataBase::class.java, - SqlitePath + "ConfigurationData_generalV1" - ).build() - } - return AsynchBaseDao - } + + + // companion object { // fun getAsynchInstance(baseActivity: BaseActivity): AppDataBase? { -- Gitblit v1.8.0