From dd2562d8dc2b01bcdfca3152f82f09efbbd09259 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期三, 25 六月 2025 19:49:48 +0800
Subject: [PATCH] fix(generallibrary): 优化卡片处理和支付方式获取逻辑- 修复地区卡处理逻辑,增加对"00"类型卡的特殊处理 - 优化用户卡数据解析和显示逻辑,提高容错性 - 改进支付方式获取方法,增加错误处理和日志记录 -调整充值接口调用参数,确保正确传递当前余额等信息- 修复 AreaCard 中 areaNumber 类型,改为字符串处理
---
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 143 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 119 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..3f6fcb8 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,16 +395,78 @@
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)
--
Gitblit v1.8.0