From 93775e1f3d79a1e11b839abbf24201dafcd9e646 Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期五, 25 四月 2025 13:45:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt | 142 +++++++++++++++++------------------------------ 1 files changed, 52 insertions(+), 90 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt b/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt index f0e2073..fc12fec 100644 --- a/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt +++ b/app/src/main/java/com/example/firstapp/receiver/SmsReceiver.kt @@ -22,6 +22,7 @@ import java.time.ZoneId import java.util.Date import java.util.Locale +import com.example.firstapp.utils.CodeUtils class SmsReceiver : BroadcastReceiver() { @@ -38,9 +39,15 @@ val messages = arrayOfNulls<SmsMessage>(pdus.size) val messageBody = StringBuilder() + // 获取短信时间戳(使用第一条短信的时间戳) + var timestamp: Long = 0 + for (i in pdus.indices) { messages[i] = SmsMessage.createFromPdu(pdus[i] as ByteArray) messageBody.append(messages[i]?.messageBody) + if (i == 0) { + timestamp = messages[i]?.timestampMillis ?: System.currentTimeMillis() + } } // 保存原始短信 @@ -72,121 +79,76 @@ // 根据不同类型处理数据 when (response.data.category) { "快递" -> { - val code = Code( - id = 0, - category = response.data.category, - categoryId = 1, // 1-快递类型 - typeId = 1, //暂时没有根据type分类 - ruleId = 1, //1-快递类型 + val code = CodeUtils.createExpressCode( msgId = msgId, createTime = createtime, - oneLevel = response.data.details.post ?: "", - secondLevel = response.data.details.company ?: "", - code = response.data.details.pickupCode ?: "", - pickup = 0, // 0-未取件,1-已取件 - pickupTime = "", // 取件时间为空 - overTime = "", // 超时时间为空,暂时没有这块处理逻辑 - address = response.data.details.address ?: "", - remarks = response.data.details.time ?: "", + post = response.data.details.post, + company = response.data.details.company, + pickupCode = response.data.details.pickupCode, + address = response.data.details.address, + time = response.data.details.time, + smsTimestamp = timestamp // 添加短信时间戳 ) - if(code.oneLevel!="" && code.secondLevel!="" && code.code!="") { - Core.code.insert(code) - } + CodeUtils.saveCode(code) } "还款" -> { - val code = Code( - id = 0, - category = response.data.category, - categoryId = 2, // 2-还款类型 - typeId = 1, //暂时没有根据type分类 - ruleId = 2, //1-还款类型 + val code = CodeUtils.createRepaymentCode( msgId = msgId, createTime = createtime, - oneLevel = response.data.details.type ?: "", - secondLevel = response.data.details.bank ?: "", - code = response.data.details.amount ?: "", - pickup = 0, // 0-未取件,1-已取件 - pickupTime = "", // 取件时间为空 - overTime = response.data.details.date - ?: "", // 超时时间为空,暂时没有这块处理逻辑 - address = response.data.details.address ?: "", - remarks = "最小还款金额" + response.data.details.min_amount + "还款卡号" + response.data.details.number - ?: "", + type = response.data.details.type, + bank = response.data.details.bank, + amount = response.data.details.amount, + date = response.data.details.date, + address = response.data.details.address, + minAmount = response.data.details.min_amount, + number = response.data.details.number, + smsTimestamp = timestamp // 添加短信时间戳 ) - if(code.oneLevel!="" && code.secondLevel!="" && code.code!="") { - Core.code.insert(code) - } + CodeUtils.saveCode(code) } "收入" -> { - val code = Code( - id = 0, - category = response.data.category, - categoryId = 3, // 3-收入类型 - typeId = 1, //暂时没有根据type分类 - ruleId = 2, //1-还款类型 + val code = CodeUtils.createIncomeCode( msgId = msgId, createTime = createtime, - oneLevel = response.data.details.bank ?: "", - secondLevel = response.data.details.bank ?: "", - code = response.data.details.amount ?: "", - pickup = 0, // 0-未取件,1-已取件 - pickupTime = "", // 取件时间为空 - overTime = response.data.details.datetime - ?: "", // 超时时间为空,暂时没有这块处理逻辑 - address = response.data.details.address ?: "", - remarks = "余额" + response.data.details.balance ?: "", + bank = response.data.details.bank, + amount = response.data.details.amount, + datetime = response.data.details.datetime, + address = response.data.details.address, + balance = response.data.details.balance, + smsTimestamp = timestamp // 添加短信时间戳 ) - if(code.oneLevel!="" && code.secondLevel!="" && code.code!="") { - Core.code.insert(code) - } + CodeUtils.saveCode(code) } + "航班" -> { - val code = Code( - id = 0, - category = response.data.category, - categoryId = 4, // 4-航班类型 - typeId = 1, //暂时没有根据type分类 - ruleId = 2, //1-还款类型 + val code = CodeUtils.createFlightCode( msgId = msgId, createTime = createtime, - oneLevel = response.data.details.company ?: "", - secondLevel = response.data.details.start +response.data.details.end?: "", - code = response.data.details.seat ?: "", - pickup = 0, // 0-未取件,1-已取件 - pickupTime = "", // 取件时间为空 - overTime = response.data.details.time - ?: "", // 超时时间为空,暂时没有这块处理逻辑 - address = response.data.details.address ?: "", - remarks = response.data.details.seat ?: "", + company = response.data.details.company, + start = response.data.details.start, + end = response.data.details.end, + seat = response.data.details.seat, + time = response.data.details.time, + address = response.data.details.address, + smsTimestamp = timestamp // 添加短信时间戳 ) - if(code.oneLevel!="" && code.secondLevel!="" && code.code!="") { - Core.code.insert(code) - } + CodeUtils.saveCode(code) } + "火车票" -> { - val code = Code( - id = 0, - category = response.data.category, - categoryId = 5, // 5-火车票类型 - typeId = 1, //暂时没有根据type分类 - ruleId = 2, //1-还款类型 + val code = CodeUtils.createTrainTicketCode( msgId = msgId, createTime = createtime, - oneLevel = response.data.details.company ?: "", - secondLevel = response.data.details.company ?: "", - code = response.data.details.seat ?: "", - pickup = 0, // 0-未取件,1-已取件 - pickupTime = "", // 取件时间为空 - overTime = response.data.details.time - ?: "", // 超时时间为空,暂时没有这块处理逻辑 - address = response.data.details.address ?: "", - remarks = response.data.details.trips ?: "", + company = response.data.details.company, + seat = response.data.details.seat, + time = response.data.details.time, + address = response.data.details.address, + trips = response.data.details.trips, + smsTimestamp = timestamp // 添加短信时间戳 ) - if(code.oneLevel!="" && code.secondLevel!="" && code.code!="") { - Core.code.insert(code) - } + CodeUtils.saveCode(code) } } -- Gitblit v1.9.3