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/NewCard2Activity.kt | 144 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 120 insertions(+), 24 deletions(-) diff --git a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt index 045f203..1be8768 100644 --- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt +++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt @@ -24,6 +24,7 @@ import com.dayu.general.databinding.ActivityNewCardGeBinding import com.dayu.general.net.ApiManager import com.dayu.general.net.BaseResponse +import com.dayu.general.tool.BaseCommon.Companion.protocol import com.dayu.general.tool.CardCommon.Companion.USER_CARD_TYPE_1 import com.dayu.general.tool.CardOperationType import com.dayu.general.tool.NfcReadHelper @@ -46,7 +47,7 @@ private var paymentMethod: String = "鐜伴噾" // 鏀粯鏂瑰紡ID - private var paymentId: Long = 0 + private var paymentId: String = "" // 鏀粯鏂瑰紡鍒楄〃 private var paymentMethodList: List<PaymentMethod> = listOf() @@ -60,12 +61,12 @@ // 瀹㈡埛ID private var clientId: String = "" - private lateinit var clientInfo : ClientInfo + private lateinit var clientInfo: ClientInfo // 鏄惁宸茶鍗� private var isReadCard: Boolean = false - private var orderId:String="" + private var orderId: String = "" companion object { private const val TAG = "NewCard2Activity" @@ -170,18 +171,49 @@ private fun getPaymentMethods() { ApiManager.getInstance().requestGetLoading( this, - "sell/paymentmethod/get", - PaymentMethodResponse::class.java, + "terminal/paymentmethod/get", + Any::class.java, null, - object : SubscriberListener<BaseResponse<PaymentMethodResponse>>() { - override fun onNext(response: BaseResponse<PaymentMethodResponse>) { + object : SubscriberListener<BaseResponse<Any>>() { + override fun onNext(response: BaseResponse<Any>) { if (response.success) { - // 鑾峰彇鏀粯鏂瑰紡鍒楄〃 - val paymentMethods = response.content?.obj ?: listOf() - if (paymentMethods.isNotEmpty()) { - paymentMethodList = paymentMethods - // 鏇存柊鏀粯鏂瑰紡鏄剧ず - updatePaymentMethodRadioGroup() + try { + // 瀹夊叏鍦板鐞嗚繑鍥炵殑content锛屾湇鍔″櫒杩斿洖鐨勬槸ArrayList<LinkedHashMap> + val paymentMethods = mutableListOf<PaymentMethod>() + val content = response.content + + if (content is List<*>) { + content.forEach { item -> + if (item is Map<*, *>) { + val id = item["id"]?.toString() ?: "" + val name = item["name"]?.toString() ?: "" + if (id.isNotEmpty() && name.isNotEmpty()) { + paymentMethods.add(PaymentMethod(id, name)) + } + } + } + } + + if (paymentMethods.isNotEmpty()) { + paymentMethodList = paymentMethods + // 鏇存柊鏀粯鏂瑰紡鏄剧ず + updatePaymentMethodRadioGroup() + } else { + Toast.makeText( + this@NewCard2Activity, + "鑾峰彇鏀粯鏂瑰紡澶辫触锛氳繑鍥炴暟鎹负绌�", + Toast.LENGTH_SHORT + ).show() + } + } catch (e: Exception) { + android.util.Log.e("NewCard2Activity", "瑙f瀽鏀粯鏂瑰紡鏁版嵁澶辫触", e) + android.util.Log.e("NewCard2Activity", "鍘熷鏁版嵁绫诲瀷: ${response.content?.javaClass?.name}") + android.util.Log.e("NewCard2Activity", "鍘熷鏁版嵁鍐呭: ${response.content}") + Toast.makeText( + this@NewCard2Activity, + "瑙f瀽鏀粯鏂瑰紡鏁版嵁澶辫触: ${e.message}", + Toast.LENGTH_SHORT + ).show() } } else { Toast.makeText( @@ -194,6 +226,7 @@ override fun onError(e: Throwable?) { super.onError(e) + android.util.Log.e("NewCard2Activity", "缃戠粶璇锋眰澶辫触", e) Toast.makeText( this@NewCard2Activity, "鑾峰彇鏀粯鏂瑰紡澶辫触: ${e?.message ?: "缃戠粶寮傚父"}", @@ -323,7 +356,7 @@ params["amount"] = rechargeAmount // 鍏呭�奸噾棰�(鍏�) params["paymentId"] = paymentId // 鏀粯鏂瑰紡ID params["remarks"] = remark // 澶囨敞 - params["protocol"] = "p206V1_0_1" // 鍗忚 + params["protocol"] = protocol // 鍗忚 params["operator"] = BaseApplication.userId // 鎿嶄綔浜篒D // 鎵ц鍗$墖婵�娲籄PI璇锋眰 @@ -335,7 +368,7 @@ object : SubscriberListener<BaseResponse<NewCardDataResult>>() { override fun onNext(response: BaseResponse<NewCardDataResult>) { if (response.success) { - orderId=response.content?.orderNo.toString() + orderId = response.content?.orderNo.toString() // 淇濆瓨寮�鍗′俊鎭埌鏁版嵁搴� val cardRegistration = CardRegistrationBean( cardNumber = cardPhysicalId, @@ -344,7 +377,7 @@ clientId = clientId, cardFee = cardFee, remark = binding.newCardRemark.text.toString(), - paymentMethod = paymentId.toInt(), + paymentMethod = paymentId.toLongOrNull()?.toInt() ?: 0, isReported = true, isCardWritten = false, // 鍒濆璁剧疆涓篺alse锛屽啓鍗℃垚鍔熷悗鍐嶆洿鏂颁负true operatorId = orderId, @@ -362,19 +395,82 @@ putExtra("orderNumber", orderId) putExtra("cardAddr", cardPhysicalId) var userCard = UserCard() - userCard.areaNumber = response.content?.cardNum?.substring(0, 12).toString() - userCard.userCode =clientInfo.clientNum - userCard.phoneNumber =clientInfo.phone - userCard.userCodeNumber = response.content?.cardNum?.substring(12)?.toInt()!! + userCard.areaNumber = + response.content?.cardNum?.substring(0, 12).toString() + userCard.userCode = clientInfo.clientNum + userCard.phoneNumber = clientInfo.phone + userCard.userCodeNumber = + response.content?.cardNum?.substring(12)?.toInt()!! userCard.projectCode = response.content?.projectNo!! - userCard.balance = MornyUtil.changeY2F(response.content?.balance) + userCard.balance = + MornyUtil.changeY2F(response.content?.balance) // userCard.surplusWater = response.content?.surplusWater?.toInt()!! - userCard.waterPrice = response.content?.waterPrice?.toFloat()!! -// userCard.electricPrice = response.content?.electricPrice?.toFloat()!! - userCard.rechargeDate = DateUtils.parseStringToCalendar(response.content?.time) + userCard.waterPrice = + MornyUtil.changeY2F(response.content?.waterPrice) + userCard.electricPrice = + MornyUtil.changeY2F(response.content?.waterPrice) + userCard.rechargeDate = + DateUtils.parseStringToCalendar(response.content?.time) + + // 杈撳嚭userCard鐨勬墍鏈変俊鎭埌鏃ュ織 + android.util.Log.d( + "NewCard2Activity", + "=== 寮�鍗serCard淇℃伅 ===" + ) + android.util.Log.d( + "NewCard2Activity", + "鍗$墖绫诲瀷: ${userCard.cardType}" + ) + android.util.Log.d( + "NewCard2Activity", + "鍥藉琛屾斂鍖哄煙鍙�: ${userCard.areaNumber}" + ) + android.util.Log.d( + "NewCard2Activity", + "鐢ㄦ埛缂栧彿: ${userCard.userCode}" + ) + android.util.Log.d( + "NewCard2Activity", + "鐢ㄦ埛鍗$紪鍙�: ${userCard.userCodeNumber}" + ) + android.util.Log.d( + "NewCard2Activity", + "瀹屾暣鐢ㄦ埛缂栧彿: ${userCard.getMyUserCode()}" + ) + android.util.Log.d( + "NewCard2Activity", + "鎵嬫満鍙�: ${userCard.phoneNumber}" + ) + android.util.Log.d( + "NewCard2Activity", + "椤圭洰缂栫爜: ${userCard.projectCode}" + ) + android.util.Log.d( + "NewCard2Activity", + "鍗″唴浣欓: ${userCard.balance}" + ) + android.util.Log.d( + "NewCard2Activity", + "鍓╀綑姘撮噺: ${userCard.surplusWater}" + ) + android.util.Log.d( + "NewCard2Activity", + "姘撮噺鍗曚环: ${userCard.waterPrice}" + ) + android.util.Log.d( + "NewCard2Activity", + "鐢甸噺鍗曚环: ${userCard.electricPrice}" + ) + android.util.Log.d( + "NewCard2Activity", + "鍏呭�兼椂闂�: ${userCard.rechargeDate}" + ) + android.util.Log.d("NewCard2Activity", "==================") + putExtra("userCard", userCard) putExtra("operationTypeCode", CardOperationType.OpenCard.code) putExtra("cardFee", cardFee) + startActivityForResult(this, REQUEST_CODE_NFC_WRITE) } } catch (e: Exception) { -- Gitblit v1.8.0