From 040f1aba13b179ff318366680a6346af7fd97795 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 11 四月 2025 16:11:23 +0800 Subject: [PATCH] feat(generallibrary): 新增补卡功能并优化底部导航栏 --- generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt | 126 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 1 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 d1c6a49..703ab3f 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/RechargeFragment.kt @@ -1,14 +1,23 @@ package com.dayu.general.activity +import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.dayu.baselibrary.net.subscribers.SubscriberListener +import com.dayu.baselibrary.tools.nfc.NfcReadAdapter +import com.dayu.baselibrary.utils.ToastUtil +import com.dayu.general.bean.net.CardInfoResult import com.dayu.general.databinding.FragmentRechargeBinding +import com.dayu.general.net.ApiManager +import com.dayu.general.net.BaseResponse class RechargeFragment : Fragment() { var binding: FragmentRechargeBinding? = null + private var cardNumber: String? = null + private var cardInfo: CardInfoResult? = null override fun onCreateView( inflater: LayoutInflater, @@ -16,6 +25,121 @@ savedInstanceState: Bundle? ): View? { binding = FragmentRechargeBinding.inflate(inflater, container, false) - return binding?.root; + return binding?.root } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initView() + + } + + private fun initView() { + // 鍒濆鍖栫晫闈㈡樉绀鸿鍗$姸鎬� + binding?.rechargeReadLL?.visibility = View.VISIBLE + binding?.rechargeTextLL?.visibility = View.GONE + } + + + + private fun resetView() { + // 閲嶇疆鐣岄潰鏄剧ず璇诲崱鐘舵�� + binding?.rechargeReadLL?.visibility = View.VISIBLE + binding?.rechargeTextLL?.visibility = View.GONE + cardInfo = null + } + + /** + * 澶勭悊NFC鍒峰崱淇℃伅 + * 璇ユ柟娉曠敱MainActivity璋冪敤 + */ + fun handleNfcIntent(intent: Intent) { + activity?.let { activity -> + try { + // 浣跨敤NfcReadAdapter璇诲彇鍗″彿 + val nfcAdapter = NfcReadAdapter(intent, activity) + cardNumber = nfcAdapter.cardNumber + + if (cardNumber.isNullOrEmpty()) { + ToastUtil.show("璇诲崱澶辫触锛岃閲嶆柊鍒峰崱") + return + } + + // 鏄剧ず璇诲埌鐨勫崱鍙� + binding?.redInitCode?.text = cardNumber + + // 鏍规嵁鍗″彿鑾峰彇鍗$墖璇︾粏淇℃伅 + getCardInfo(cardNumber!!) + } catch (e: Exception) { + ToastUtil.show("璇诲崱寮傚父锛�${e.message}") + e.printStackTrace() + } + } + } + + /** + * 鑾峰彇鍗$墖璇︾粏淇℃伅 + */ + private fun getCardInfo(cardNumber: String) { + activity?.let { activity -> + ApiManager.getInstance().requestGetLoading( + activity, + "card/getCardInfo/$cardNumber", // 鍋囪API璺緞 + CardInfoResult::class.java, + null, + object : SubscriberListener<BaseResponse<CardInfoResult>>() { + override fun onNext(t: BaseResponse<CardInfoResult>) { + if (t.success) { + // 淇濆瓨鍗$墖淇℃伅 + cardInfo = t.content + // 鏄剧ず鍗$墖淇℃伅 + displayCardInfo(t.content) + } else { + // 澶勭悊鑾峰彇澶辫触鐨勬儏鍐� + ToastUtil.show(t.msg) + binding?.redStatu?.text = "鍗$姸鎬佸紓甯�" + } + } + + override fun onError(e: Throwable?) { + super.onError(e) + ToastUtil.show("鑾峰彇鍗′俊鎭け璐�: ${e?.message ?: "鏈煡閿欒"}") + } + } + ) + } + } + + /** + * 鏄剧ず鍗$墖淇℃伅 + */ + private fun displayCardInfo(cardInfo: CardInfoResult?) { + if (cardInfo == null) { + ToastUtil.show("鍗′俊鎭负绌�") + return + } + + // 鍒囨崲鍒版樉绀轰俊鎭晫闈� + 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 -> "鏈煡" + } + binding?.redStatu?.text = cardStatus + + + } + + + } \ No newline at end of file -- Gitblit v1.8.0