cloudroam
2 天以前 9755d9eefb12f95fa45c785e526038e10c9c7115
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 ?: ""
        )
    }
}
}