From d773ab0295feba24ae4fc14f61e8aa310e40f4ba Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期五, 06 六月 2025 16:55:57 +0800
Subject: [PATCH] refactor(nfc): 优化写卡流程和状态更新
---
generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt | 88 +++++++++++++++++++++++---------------------
1 files changed, 46 insertions(+), 42 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 57e331a..9b7c268 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/NewCard2Activity.kt
@@ -13,15 +13,23 @@
import com.dayu.baselibrary.view.TitleBar.ClickType_LEFT_IMAGE
import com.dayu.general.BaseApplication
import com.dayu.general.R
+import com.dayu.general.bean.card.UserCard
import com.dayu.general.bean.db.CardRegistrationBean
+import com.dayu.general.bean.net.ClientInfo
+import com.dayu.general.bean.net.NewCardDataResult
+import com.dayu.general.bean.net.PaymentMethod
+import com.dayu.general.bean.net.PaymentMethodResponse
import com.dayu.general.dao.BaseDaoSingleton
import com.dayu.general.databinding.ActivityNewCardGeBinding
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
+import com.dayu.general.tool.CardCommon.Companion.USER_CARD_TYPE_1
import com.dayu.general.tool.NfcReadHelper
import com.dayu.general.tool.NfcWreatHelper
+import com.dayu.general.utils.DateUtils
import com.tencent.bugly.crashreport.CrashReport
import kotlinx.coroutines.launch
+import java.util.Calendar
/**
* Description: 鐢ㄦ埛寮�鍗$晫闈�(鍚屾淇敼鐧藉崱瀵嗙爜)
@@ -50,43 +58,17 @@
// 瀹㈡埛ID
private var clientId: String = ""
+ private lateinit var clientInfo : ClientInfo
+
// 鏄惁宸茶鍗�
private var isReadCard: Boolean = false
+
+ private var orderId:String=""
companion object {
private const val TAG = "NewCard2Activity"
}
- // 鏀粯鏂瑰紡鏁版嵁绫�
- data class PaymentMethod(
- val id: Long,
- val name: String,
- val remarks: String,
- val deleted: Int
- )
-
- // 鏀粯鏂瑰紡鎺ュ彛杩斿洖鏁版嵁绫�
- data class PaymentMethodResponse(
- val itemTotal: Any?,
- val obj: List<PaymentMethod>,
- val pageCurr: Any?,
- val pageSize: Any?,
- val pageTotal: Any?
- )
-
- // 鐢ㄦ埛淇℃伅鏁版嵁绫�
- data class ClientInfo(
- val clientId: String,
- val clientNum: String,
- val name: String,
- val districtNum: String,
- val phone: String,
- val idCard: String,
- val villageName: String,
- val address: String,
- val cardCount: Int,
- val operateDt: String
- )
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -134,7 +116,7 @@
object : SubscriberListener<BaseResponse<ClientInfo>>() {
override fun onNext(response: BaseResponse<ClientInfo>) {
if (response.success) {
- val clientInfo = response.content
+ clientInfo = response.content!!
if (clientInfo != null) {
// 鏄剧ず瀹㈡埛淇℃伅鍒扮晫闈�
displayClientInfo(clientInfo)
@@ -337,47 +319,69 @@
// 鏋勫缓璇锋眰鍙傛暟
val params = HashMap<String, Any>()
params["cardAddr"] = cardPhysicalId // 姘村崱鍦板潃锛堢墿鐞咺D锛�
- params["clientNum"] = binding.newCardFarmerCode.text.toString() // 鍐滄埛缂栧彿
- params["cardCost"] = (cardFee * 100).toInt() // 璐崱閲戦锛堝伐鏈垂锛夎浆涓哄垎
- params["amount"] = (rechargeAmount * 100).toInt() // 鍏呭�奸噾棰濊浆涓哄垎
+ params["clientId"] = clientId // 鍐滄埛ID
+ params["cardCost"] = cardFee // 璐崱閲戦锛堝伐鏈垂锛�(鍏�)
+ params["amount"] = rechargeAmount // 鍏呭�奸噾棰�(鍏�)
params["paymentId"] = paymentId // 鏀粯鏂瑰紡ID
params["remarks"] = remark // 澶囨敞
+ params["protocol"] = "p206V1_0_1" // 鍗忚
params["operator"] = BaseApplication.userId // 鎿嶄綔浜篒D
// 鎵ц鍗$墖婵�娲籄PI璇锋眰
ApiManager.getInstance().requestPostLoading(
this,
- "sell/card/active",
- String::class.java,
+ "terminal/card/termActiveCard",
+ NewCardDataResult::class.java,
params,
- object : SubscriberListener<BaseResponse<String>>() {
- override fun onNext(response: BaseResponse<String>) {
+ object : SubscriberListener<BaseResponse<NewCardDataResult>>() {
+ override fun onNext(response: BaseResponse<NewCardDataResult>) {
if (response.success) {
+ orderId=response.content?.orderNo.toString()
// 淇濆瓨寮�鍗′俊鎭埌鏁版嵁搴�
val cardRegistration = CardRegistrationBean(
cardNumber = cardPhysicalId,
userName = binding.newCardUserName.text.toString(),
idCard = binding.newCardIdCard.text.toString(),
- farmerCode = binding.newCardFarmerCode.text.toString(),
+ clientId = clientId,
cardFee = cardFee,
remark = binding.newCardRemark.text.toString(),
paymentMethod = paymentId.toInt(),
isReported = true,
- isCardWritten = true
- )
+ isCardWritten = false, // 鍒濆璁剧疆涓篺alse锛屽啓鍗℃垚鍔熷悗鍐嶆洿鏂颁负true
+ operatorId = orderId,
+
+ )
// 浣跨敤鍗忕▼鍦ㄥ悗鍙扮嚎绋嬩腑淇濆瓨鏁版嵁
lifecycleScope.launch {
try {
BaseDaoSingleton.getInstance(this@NewCard2Activity)
.cardRegistrationDao().insert(cardRegistration)
+
Toast.makeText(
this@NewCard2Activity,
"寮�鍗℃垚鍔�",
Toast.LENGTH_SHORT
).show()
setResult(RESULT_OK)
- finish()
+ Intent(this@NewCard2Activity, NfcWreatActivity::class.java).apply {
+ putExtra("cardType", USER_CARD_TYPE_1)
+ putExtra("orderId", orderId)
+ putExtra("cardAddr", cardPhysicalId)
+ var userCard = UserCard()
+ userCard.areaNumber =clientInfo.districtNum
+ userCard.userCode =clientInfo.clientNum
+ userCard.phoneNumber =clientInfo.phone
+ userCard.userCodeNumber = response.content?.cardNum?.toInt()!!
+ userCard.projectCode = response.content?.projectNo?.toInt()!!
+ userCard.balance = response.content?.balance?.toInt()!!
+// 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)
+ putExtra("userCard", userCard)
+ startActivity(this)
+ }
} catch (e: Exception) {
CrashReport.postCatchedException(e)
Toast.makeText(
--
Gitblit v1.8.0