From 2fece6551faab0402e7ed53658a60d2256e7a5be Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期四, 12 六月 2025 14:58:56 +0800 Subject: [PATCH] feat(generallibrary): 新增挂失功能并优化相关界面- 新增 LossCardActivity 和 CardWriteSuccessActivity - 实现卡片挂失功能和写卡成功页面 - 优化充值界面布局- 调整卡片信息显示逻辑 - 修复部分 UI样式问题 --- generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt | 84 ++++++++++++++++++++--------------------- 1 files changed, 41 insertions(+), 43 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt b/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt index 28d6e50..79c9fbd 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt @@ -9,6 +9,7 @@ import com.dayu.baselibrary.net.subscribers.SubscriberListener import com.dayu.baselibrary.tools.nfc.NfcReadAdapter import com.dayu.baselibrary.utils.ToastUtil +import com.dayu.baselibrary.view.ConfirmDialog import com.dayu.general.bean.net.CardInfoResult import com.dayu.general.databinding.FragmentRechargeBinding import com.dayu.general.net.ApiManager @@ -18,7 +19,6 @@ class RechargeFragment : Fragment() { var binding: FragmentRechargeBinding? = null private var cardNumber: String? = null - private var cardInfo: CardInfoResult? = null override fun onCreateView( inflater: LayoutInflater, @@ -38,7 +38,6 @@ private fun initView() { // 鍒濆鍖栫晫闈㈡樉绀鸿鍗$姸鎬� binding?.rechargeReadLL?.visibility = View.VISIBLE - binding?.rechargeTextLL?.visibility = View.GONE } @@ -46,8 +45,6 @@ private fun resetView() { // 閲嶇疆鐣岄潰鏄剧ず璇诲崱鐘舵�� binding?.rechargeReadLL?.visibility = View.VISIBLE - binding?.rechargeTextLL?.visibility = View.GONE - cardInfo = null } /** @@ -71,10 +68,7 @@ ToastUtil.show("璇诲崱澶辫触锛岃閲嶆柊鍒峰崱") return } - - // 鏄剧ず璇诲埌鐨勫崱鍙� - binding?.redInitCode?.text = cardNumber - + // 鏍规嵁鍗″彿鑾峰彇鍗$墖璇︾粏淇℃伅 getCardInfo(cardNumber!!) } catch (e: Exception) { @@ -89,28 +83,29 @@ */ private fun getCardInfo(cardNumber: String) { activity?.let { activity -> + val map = mutableMapOf<String, Any>() + map["cardAddr"] = cardNumber ApiManager.getInstance().requestGetLoading( activity, - "card/getCardInfo/$cardNumber", // 鍋囪API璺緞 + "terminal/card/readCard", // 鍋囪API璺緞 CardInfoResult::class.java, - null, + map, object : SubscriberListener<BaseResponse<CardInfoResult>>() { override fun onNext(t: BaseResponse<CardInfoResult>) { if (t.success) { - // 淇濆瓨鍗$墖淇℃伅 - cardInfo = t.content - // 鏄剧ず鍗$墖淇℃伅 - displayCardInfo(t.content) + // 璺宠浆鍒板厖鍊艰鎯呴〉闈� + RechargeDetailActivity.start(activity, t.content, cardNumber) } else { // 澶勭悊鑾峰彇澶辫触鐨勬儏鍐� - ToastUtil.show(t.msg) - binding?.redStatu?.text = "鍗$姸鎬佸紓甯�" + handleCardInfoError(t.code, t.msg) } } override fun onError(e: Throwable?) { super.onError(e) - ToastUtil.show("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "鏈煡閿欒"}") + ToastUtil.show("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "缃戠粶寮傚父锛岃妫�鏌ョ綉缁滆繛鎺�"}") + // 閲嶇疆鐣岄潰鐘舵�� + resetView() } } ) @@ -118,35 +113,38 @@ } /** - * 鏄剧ず鍗$墖淇℃伅 + * 澶勭悊鍗′俊鎭幏鍙栭敊璇� */ - private fun displayCardInfo(cardInfo: CardInfoResult?) { - if (cardInfo == null) { - ToastUtil.show("鍗′俊鎭负绌�") - return + private fun handleCardInfoError(code: String?, msg: String?) { + val errorTitle: String + val errorMessage: String + + when (code) { + "1001" -> { + // 鏁版嵁涓嶅瓨鍦ㄧ殑鐗规畩澶勭悊 + errorTitle = "鍗$墖鏈敞鍐�" + errorMessage = "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣滃悗鍐嶅厖鍊笺��" + } + else -> { + // 鍏朵粬閿欒鐨勯�氱敤澶勭悊 + errorTitle = "鑾峰彇鍗′俊鎭け璐�" + errorMessage = when { + msg.isNullOrBlank() -> "鑾峰彇鍗′俊鎭け璐ワ紝璇烽噸鏂板埛鍗¢噸璇曘��" + msg.contains("鏁版嵁涓嶅瓨鍦�") -> "璇ュ崱鐗囨湭鍦ㄧ郴缁熶腑娉ㄥ唽锛岃鍏堣繘琛屽紑鍗℃搷浣滃悗鍐嶅厖鍊笺��" + msg.contains("缃戠粶") -> "缃戠粶杩炴帴寮傚父锛岃妫�鏌ョ綉缁滆繛鎺ュ悗閲嶆柊鍒峰崱銆�" + msg.contains("瓒呮椂") -> "缃戠粶璇锋眰瓒呮椂锛岃閲嶆柊鍒峰崱閲嶈瘯銆�" + else -> "鑾峰彇鍗′俊鎭け璐ワ細$msg\n\n璇烽噸鏂板埛鍗¢噸璇曘��" + } + } } - // 鍒囨崲鍒版樉绀轰俊鎭晫闈� - binding?.rechargeReadLL?.visibility = View.GONE - binding?.rechargeTextLL?.visibility = View.VISIBLE - - // 璁剧疆鍗$墖淇℃伅 - binding?.userName?.text = cardInfo.userName ?: "" - binding?.redUserCode?.text = cardInfo.userCode ?: "" - binding?.redRemainderBlance?.text = "${cardInfo.balance ?: 0} 鍏�" - - // 璁剧疆鍗$姸鎬� - val cardStatus = when(cardInfo.status) { - 1 -> "姝e父" - 2 -> "鎸傚け" - 3 -> "閿佸畾" - else -> "鏈煡" + // 鏄剧ず纭瀵硅瘽妗� + activity?.let { activity -> + val confirmDialog = ConfirmDialog(activity, errorTitle, errorMessage) { + // 鐐瑰嚮纭鎸夐挳鍚庡叧闂璇濇骞堕噸缃晫闈� + resetView() + } + confirmDialog.show() } - binding?.redStatu?.text = cardStatus - - } - - - } \ No newline at end of file -- Gitblit v1.8.0