From 9755d9eefb12f95fa45c785e526038e10c9c7115 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 25 四月 2025 18:15:51 +0800 Subject: [PATCH] 短信fix --- app/src/main/java/com/example/firstapp/utils/CodeUtils.kt | 78 ++++++++++++++++++--------------------- 1 files changed, 36 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt b/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt index bc7cbda..21e7762 100644 --- a/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt +++ b/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt @@ -7,37 +7,41 @@ object CodeUtils { private const val TAG = "CodeUtils" + private val lock = Any() + /** * 保存code到数据库,如果已存在则跳过 * @param code 要保存的code对象 * @return Boolean 是否成功保存 */ fun saveCode(code: Code): Boolean { - // 检查必要字段是否为空 - if (code.oneLevel.isEmpty() || code.code.isEmpty()) { - Log.d(TAG, "保存失败:必要字段为空") - return false - } + synchronized(lock) { + // 检查必要字段是否为空 + if (code.oneLevel.isEmpty() || code.code.isEmpty()) { + Log.d(TAG, "保存失败:必要字段为空") + return false + } - // 检查是否已存在相同记录 - val existingCode = Core.code.queryByTypeAndCodeAndDate( - code.category, - code.code, - code.smsTimestamp - ) + // 检查是否已存在相同记录 + val existingCode = Core.code.queryByTypeAndCodeAndDate( + code.category, + code.code, + code.createTime + ) - return if (existingCode == null) { - try { - Core.code.insert(code) - Log.d(TAG, "成功保存${code.category}记录: ${code.code}") - true - } catch (e: Exception) { - Log.e(TAG, "保存${code.category}记录失败: ${e.message}") + return if (existingCode == null) { + try { + Core.code.insert(code) + Log.d(TAG, "成功保存${code.category}记录: ${code.code}") + true + } catch (e: Exception) { + Log.e(TAG, "保存${code.category}记录失败: ${e.message}") + false + } + } else { + Log.d(TAG, "发现重复${code.category}记录,跳过保存: ${code.code}") false } - } else { - Log.d(TAG, "发现重复${code.category}记录,跳过保存: ${code.code}") - false } } @@ -51,8 +55,7 @@ company: String?, pickupCode: String?, address: String?, - time: String?, - smsTimestamp: Long = 0 + time: String? ): Code { // val secondLevel = if (company.isNullOrEmpty()) "未知" else company return Code( @@ -70,8 +73,7 @@ pickupTime = "", overTime = "", address = address ?: "", - remarks = time ?: "", - smsTimestamp = smsTimestamp + remarks = time ?: "" ) } @@ -87,8 +89,7 @@ date: String?, address: String?, minAmount: String?, - number: String?, - smsTimestamp: Long = 0 + number: String? ): Code { return Code( id = 0, @@ -105,8 +106,7 @@ pickupTime = "", overTime = date ?: "", address = address ?: "", - remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}", - smsTimestamp = smsTimestamp + remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}" ) } @@ -120,8 +120,7 @@ amount: String?, datetime: String?, address: String?, - balance: String?, - smsTimestamp: Long = 0 + balance: String? ): Code { return Code( id = 0, @@ -138,8 +137,7 @@ pickupTime = "", overTime = datetime ?: "", address = address ?: "", - remarks = "余额${balance ?: ""}", - smsTimestamp = smsTimestamp + remarks = "余额${balance ?: ""}" ) } @@ -154,8 +152,7 @@ end: String?, seat: String?, time: String?, - address: String?, - smsTimestamp: Long = 0 + address: String? ): Code { return Code( id = 0, @@ -172,8 +169,7 @@ pickupTime = "", overTime = time ?: "", address = address ?: "", - remarks = seat ?: "", - smsTimestamp = smsTimestamp + remarks = seat ?: "" ) } @@ -187,8 +183,7 @@ seat: String?, time: String?, address: String?, - trips: String?, - smsTimestamp: Long = 0 + trips: String? ): Code { return Code( id = 0, @@ -205,8 +200,7 @@ pickupTime = "", overTime = time ?: "", address = address ?: "", - remarks = trips ?: "", - smsTimestamp = smsTimestamp + remarks = trips ?: "" ) } -} \ No newline at end of file +} \ No newline at end of file -- Gitblit v1.9.3