From 32d1501e6fe6338eb6dc51c26df7fe0808caac0d Mon Sep 17 00:00:00 2001 From: zuoxiao <lf_zuo@163.com> Date: 星期四, 26 六月 2025 15:05:28 +0800 Subject: [PATCH] feat(general): 优化写卡成功界面并添加开卡功能- 重新设计写卡成功界面布局,增加滚动视图以支持长文本显示 - 添加开卡功能相关的UI和逻辑,包括工本费和充值金额的展示- 增加用户姓名和卡片信息的显示 - 优化打印凭证的内容和格式 -调整NFC连接逻辑,提高连接成功率 --- generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt | 97 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 67 insertions(+), 30 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt index 94a11b3..fbe415c 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/NfcWreatActivity.kt @@ -13,6 +13,7 @@ import com.dayu.general.bean.card.ClearCard import com.dayu.general.bean.card.DebugCard import com.dayu.general.bean.card.UserCard +import com.dayu.general.bean.net.CardInfoResult import com.dayu.general.dao.BaseDaoSingleton import com.dayu.general.databinding.ActivityNfcWriteGeBinding import com.dayu.general.net.ApiManager @@ -98,6 +99,8 @@ /** 椤圭洰鍙凤紙1-255锛� */ private var projectNumber: String = "" + private var cardInfo: CardInfoResult? = null + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityNfcWriteGeBinding.inflate(layoutInflater) @@ -116,6 +119,7 @@ operationTypeCode = intent?.getIntExtra("operationTypeCode", -1) ?: -1 orderNumber = intent?.getStringExtra("orderNumber") ?: "" operationType = CardOperationType.fromCode(operationTypeCode) + cardInfo = intent?.getSerializableExtra("cardInfo") as? CardInfoResult // 鑾峰彇鍏呭�肩浉鍏抽噾棰� rechargeAmount = intent?.getDoubleExtra("rechargeAmount", 0.0) ?: 0.0 @@ -501,14 +505,14 @@ object : NFCCallBack { override fun isSusses(flag: Boolean, msg: String?) { // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢� - runOnUiThread { - if (flag) { - // 妫�鏌ュ崱鍐欏崱鎴愬姛锛屾洿鏂板啓鍗$姸鎬� - updateCardWrittenStatus(cardAddr) - } else { - ToastUtil.show("妫�鏌ュ崱鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}") + runOnUiThread { + if (flag) { + // 妫�鏌ュ崱鍐欏崱鎴愬姛锛屾洿鏂板啓鍗$姸鎬� + updateCardWrittenStatus(cardAddr) + } else { + ToastUtil.show("妫�鏌ュ崱鍐欏崱澶辫触: ${msg ?: "鏈煡閿欒"}") + } } - } } }) } @@ -525,14 +529,14 @@ object : NFCCallBack { override fun isSusses(flag: Boolean, msg: String?) { // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢� - runOnUiThread { - if (flag) { - // 鍖哄煙琛ㄥ彿鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵�� - updateCardWrittenStatus(cardAddr) - } else { - ToastUtil.show("鍖哄煙琛ㄥ彿鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}") + runOnUiThread { + if (flag) { + // 鍖哄煙琛ㄥ彿鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵�� + updateCardWrittenStatus(cardAddr) + } else { + ToastUtil.show("鍖哄煙琛ㄥ彿鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}") + } } - } } }) } @@ -548,14 +552,14 @@ object : NFCCallBack { override fun isSusses(flag: Boolean, msg: String?) { // 纭繚Toast鍦ㄤ富绾跨▼涓皟鐢� - runOnUiThread { - if (flag) { - // 璋冭瘯鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵�� - updateCardWrittenStatus(cardAddr) - } else { - ToastUtil.show("璋冭瘯鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}") + runOnUiThread { + if (flag) { + // 璋冭瘯鍗″啓鍗℃垚鍔燂紝鏇存柊鍐欏崱鐘舵�� + updateCardWrittenStatus(cardAddr) + } else { + ToastUtil.show("璋冭瘯鍗″啓鍗″け璐�: ${msg ?: "鏈煡閿欒"}") + } } - } } }) } @@ -605,17 +609,17 @@ lifecycleScope.launch { try { val baseDaoSingleton = BaseDaoSingleton.getInstance(this@NfcWreatActivity) - + // 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄鐞嗗崱杩樻槸鐢ㄦ埛鍗℃搷浣� val isManagerCardOperation = operationTypeCode in 100..108 - + var updateSuccess = false - + if (isManagerCardOperation) { // 绠$悊鍗″埗浣滄搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癕anagerCardBean val managerCardDao = baseDaoSingleton.managerCardDao() val managerCard = managerCardDao.getByOrderId(orderNumber) - + if (managerCard != null) { val updatedManagerCard = managerCard.copy(isCardWritten = true) managerCardDao.update(updatedManagerCard) @@ -625,7 +629,7 @@ // 鐢ㄦ埛鍗℃搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癈ardRegistrationBean val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao() val cardRegistration = cardRegistrationDao.getByOrderId(orderNumber) - + if (cardRegistration != null) { val updatedCardRegistration = cardRegistration.copy(isCardWritten = true) cardRegistrationDao.update(updatedCardRegistration) @@ -637,21 +641,54 @@ runOnUiThread { setResult(RESULT_OK) finish() - + // 璺宠浆鍒板啓鍗℃垚鍔熺晫闈� Intent(this@NfcWreatActivity, CardWriteSuccessActivity::class.java).apply { + + putExtra("cardNumber", cardNumber) + putExtra("cardAddr", cardAddr) + putExtra("operationTypeCode", operationTypeCode) + putExtra("orderNumber", orderNumber) + //寮�鍗$浉鍏冲弬鏁� + putExtra("cardFee", cardFee) + + // 浼犻�掑厖鍊肩浉鍏冲弬鏁� + putExtra("rechargeAmount", rechargeAmount) + putExtra("bonusAmount", bonusAmount) + + // 浼犻�掗攢鍗$浉鍏冲弬鏁� + putExtra("refundAmount", refundAmount) + putExtra("cardBalance", cardBalance) + + // 浼犻�掕繑杩樼浉鍏冲弬鏁� + putExtra("returnAmount", returnAmount) + + // 浼犻�掕ˉ鎵g浉鍏冲弬鏁� + putExtra("deductAmount", deductAmount) + + // 浼犻�掕ˉ鍗$浉鍏冲弬鏁� + putExtra("cardCost", cardCost) + putExtra("reissueAmount", reissueAmount) + + // 浼犻�掔敤鎴峰崱瀵硅薄 if (::userCard.isInitialized) { putExtra("userCard", userCard) } - putExtra("operationTypeCode", operationTypeCode) + + // 浼犻�掑崱鐗囦俊鎭璞� + cardInfo?.let { + putExtra("cardInfo", it) + } + + startActivity(this) } - + // 閫氱煡MainActivity璋冪敤postCardData notifyMainActivityToPostCardData(cardNumber) } - + } catch (e: Exception) { // 璁板綍寮傚父淇℃伅 CrashReport.postCatchedException(e) -- Gitblit v1.8.0