From 6403ddc78af1190995fa4f6335b57b3820fa2fc6 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 22 四月 2025 14:20:10 +0800 Subject: [PATCH] add: 消息提醒图片,code工具类 --- app/src/main/res/drawable/reminder_png.png | 0 app/src/main/res/layout/activity_reminder_settings.xml | 2 app/src/main/java/com/example/firstapp/utils/CodeUtils.kt | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 203 insertions(+), 1 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 new file mode 100644 index 0000000..7ac26fe --- /dev/null +++ b/app/src/main/java/com/example/firstapp/utils/CodeUtils.kt @@ -0,0 +1,202 @@ +package com.example.firstapp.utils + +import com.example.firstapp.core.Core +import com.example.firstapp.database.entity.Code +import android.util.Log + +object CodeUtils { + private const val TAG = "CodeUtils" + + /** + * 保存code到数据库,如果已存在则跳过 + * @param code 要保存的code对象 + * @return Boolean 是否成功保存 + */ + fun saveCode(code: Code): Boolean { + // 检查必要字段是否为空 + if (code.oneLevel.isEmpty() || code.code.isEmpty()) { + Log.d(TAG, "保存失败:必要字段为空") + return false + } + + // 检查是否已存在相同记录 + 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}") + false + } + } else { + Log.d(TAG, "发现重复${code.category}记录,跳过保存: ${code.code}") + false + } + } + + /** + * 创建快递类型的Code对象 + */ + fun createExpressCode( + msgId: Long, + createTime: String, + post: String?, + company: String?, + pickupCode: String?, + address: String?, + time: String? + ): Code { +// val secondLevel = if (company.isNullOrEmpty()) "未知" else company + return Code( + id = 0, + category = "快递", + categoryId = 1, + typeId = 1, + ruleId = 1, + msgId = msgId, + createTime = createTime, + oneLevel = post ?: "", + secondLevel = if (company.isNullOrEmpty()) "未知" else company, + code = pickupCode ?: "", + pickup = 0, + pickupTime = "", + overTime = "", + address = address ?: "", + remarks = time ?: "" + ) + } + + /** + * 创建还款类型的Code对象 + */ + fun createRepaymentCode( + msgId: Long, + createTime: String, + type: String?, + bank: String?, + amount: String?, + date: String?, + address: String?, + minAmount: String?, + number: String? + ): Code { + return Code( + id = 0, + category = "还款", + categoryId = 2, + typeId = 1, + ruleId = 2, + msgId = msgId, + createTime = createTime, + oneLevel = type ?: "还款", + secondLevel = if (bank.isNullOrEmpty()) "未知" else bank , + code = amount ?: "", + pickup = 0, + pickupTime = "", + overTime = date ?: "", + address = address ?: "", + remarks = "最小还款金额${minAmount ?: ""}还款卡号${number ?: ""}" + ) + } + + /** + * 创建收入类型的Code对象 + */ + fun createIncomeCode( + msgId: Long, + createTime: String, + bank: String?, + amount: String?, + datetime: String?, + address: String?, + balance: String? + ): Code { + return Code( + id = 0, + category = "收入", + categoryId = 3, + typeId = 1, + ruleId = 2, + msgId = msgId, + createTime = createTime, + oneLevel = bank ?: "", + secondLevel = if (bank.isNullOrEmpty()) "未知" else bank, + code = amount ?: "", + pickup = 0, + pickupTime = "", + overTime = datetime ?: "", + address = address ?: "", + remarks = "余额${balance ?: ""}" + ) + } + + /** + * 创建航班类型的Code对象 + */ + fun createFlightCode( + msgId: Long, + createTime: String, + company: String?, + start: String?, + end: String?, + seat: String?, + time: String?, + address: String? + ): Code { + return Code( + id = 0, + category = "航班", + categoryId = 4, + typeId = 1, + ruleId = 2, + msgId = msgId, + createTime = createTime, + oneLevel = company ?: "", + secondLevel = "${start ?: ""}${end ?: ""}", + code = seat ?: "", + pickup = 0, + pickupTime = "", + overTime = time ?: "", + address = address ?: "", + remarks = seat ?: "" + ) + } + + /** + * 创建火车票类型的Code对象 + */ + fun createTrainTicketCode( + msgId: Long, + createTime: String, + company: String?, + seat: String?, + time: String?, + address: String?, + trips: String? + ): Code { + return Code( + id = 0, + category = "火车票", + categoryId = 5, + typeId = 1, + ruleId = 2, + msgId = msgId, + createTime = createTime, + oneLevel = company ?: "", + secondLevel = company ?: "未知", + code = seat ?: "", + pickup = 0, + pickupTime = "", + overTime = time ?: "", + address = address ?: "", + remarks = trips ?: "" + ) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/reminder_png.png b/app/src/main/res/drawable/reminder_png.png new file mode 100644 index 0000000..085c1f6 --- /dev/null +++ b/app/src/main/res/drawable/reminder_png.png Binary files differ diff --git a/app/src/main/res/layout/activity_reminder_settings.xml b/app/src/main/res/layout/activity_reminder_settings.xml index 53b1571..5675196 100644 --- a/app/src/main/res/layout/activity_reminder_settings.xml +++ b/app/src/main/res/layout/activity_reminder_settings.xml @@ -228,7 +228,7 @@ android:background="#F8F8F8" android:contentDescription="通知示例" android:padding="8dp" - android:src="@drawable/up" /> + android:src="@drawable/reminder_png" /> </LinearLayout> </androidx.cardview.widget.CardView> -- Gitblit v1.9.3