| | |
| | | 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 |
| | | } |
| | | } |
| | | |
| | |
| | | company: String?, |
| | | pickupCode: String?, |
| | | address: String?, |
| | | time: String?, |
| | | smsTimestamp: Long = 0 |
| | | time: String? |
| | | ): Code { |
| | | // val secondLevel = if (company.isNullOrEmpty()) "未知" else company |
| | | return Code( |
| | |
| | | pickupTime = "", |
| | | overTime = "", |
| | | address = address ?: "", |
| | | remarks = time ?: "", |
| | | smsTimestamp = smsTimestamp |
| | | remarks = time ?: "" |
| | | ) |
| | | } |
| | | |
| | |
| | | date: String?, |
| | | address: String?, |
| | | minAmount: String?, |
| | | number: String?, |
| | | smsTimestamp: Long = 0 |
| | | number: String? |
| | | ): Code { |
| | | return Code( |
| | | id = 0, |
| | |
| | | pickupTime = "", |
| | | overTime = date ?: "", |
| | | address = address ?: "", |
| | | remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}", |
| | | smsTimestamp = smsTimestamp |
| | | remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}" |
| | | ) |
| | | } |
| | | |
| | |
| | | amount: String?, |
| | | datetime: String?, |
| | | address: String?, |
| | | balance: String?, |
| | | smsTimestamp: Long = 0 |
| | | balance: String? |
| | | ): Code { |
| | | return Code( |
| | | id = 0, |
| | |
| | | pickupTime = "", |
| | | overTime = datetime ?: "", |
| | | address = address ?: "", |
| | | remarks = "余额${balance ?: ""}", |
| | | smsTimestamp = smsTimestamp |
| | | remarks = "余额${balance ?: ""}" |
| | | ) |
| | | } |
| | | |
| | |
| | | end: String?, |
| | | seat: String?, |
| | | time: String?, |
| | | address: String?, |
| | | smsTimestamp: Long = 0 |
| | | address: String? |
| | | ): Code { |
| | | return Code( |
| | | id = 0, |
| | |
| | | pickupTime = "", |
| | | overTime = time ?: "", |
| | | address = address ?: "", |
| | | remarks = seat ?: "", |
| | | smsTimestamp = smsTimestamp |
| | | remarks = seat ?: "" |
| | | ) |
| | | } |
| | | |
| | |
| | | seat: String?, |
| | | time: String?, |
| | | address: String?, |
| | | trips: String?, |
| | | smsTimestamp: Long = 0 |
| | | trips: String? |
| | | ): Code { |
| | | return Code( |
| | | id = 0, |
| | |
| | | pickupTime = "", |
| | | overTime = time ?: "", |
| | | address = address ?: "", |
| | | remarks = trips ?: "", |
| | | smsTimestamp = smsTimestamp |
| | | remarks = trips ?: "" |
| | | ) |
| | | } |
| | | } |
| | | } |