From 87e5604ad04c0b7aaacf3d52bae85e62d308cb6d Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 16:41:02 +0800
Subject: [PATCH] refactor(generallibrary):重构开卡成功界面并移除未使用的开卡界面
---
generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt | 131 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 131 insertions(+), 0 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
index 81b20a0..9c52341 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
@@ -9,6 +9,7 @@
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
+import androidx.lifecycle.lifecycleScope
import com.dayu.baselibrary.net.subscribers.SubscriberListener
import com.dayu.baselibrary.utils.ToastUtil
import com.dayu.general.BaseApplication
@@ -16,9 +17,13 @@
import com.dayu.general.adapter.TabAdapter
import com.dayu.general.bean.net.UserInfoResult
import com.dayu.general.bean.net.WaterPriceResult
+import com.dayu.general.dao.BaseDaoSingleton
import com.dayu.general.databinding.ActivityMainBinding
import com.dayu.general.net.ApiManager
import com.dayu.general.net.BaseResponse
+import com.dayu.general.tool.CardOperationType
+import com.tencent.bugly.crashreport.CrashReport
+import kotlinx.coroutines.launch
class MainActivity : BaseNfcActivity() {
@@ -232,4 +237,130 @@
}
return super.onKeyDown(keyCode, event)
}
+
+ /**
+ * 鍚戞湇鍔″櫒涓婃姤鍐欏崱鎿嶄綔缁撴灉
+ * 鍐欏崱鎴愬姛鍚庤皟鐢ㄦ鏂规硶閫氱煡鏈嶅姟鍣ㄦ搷浣滃畬鎴愶紝鎴愬姛鍚庢洿鏂版湰鍦版暟鎹簱isReported涓簍rue
+ *
+ * @param cardAddr 鍗″湴鍧�/鍗″彿
+ * @param operationTypeCode 鎿嶄綔绫诲瀷浠g爜
+ * @param orderNumber 璁㈠崟鍙�
+ * @param regionNumber 鍖哄煙鍙�
+ * @param projectNumber 椤圭洰鍙�
+ */
+ fun postCardData(
+ cardAddr: String,
+ operationTypeCode: Int,
+ orderNumber: String = "",
+ regionNumber: String = "",
+ projectNumber: String = ""
+ ) {
+ val map = mutableMapOf<String, Any>()
+
+ // 娣诲姞鍗″湴鍧�鍙傛暟
+ if (cardAddr.isNotEmpty()) {
+ map["cardAddr"] = cardAddr
+ }
+
+ // 娣诲姞鎿嶄綔绫诲瀷鍙傛暟
+ // 鍒ゆ柇鏄惁涓虹鐞嗗崱鍒朵綔鎿嶄綔绫诲瀷锛�100-108锛夛紝濡傛灉鏄垯浼犻�扢ANAGEMENT_CARD_WRITE鐨勫�硷紙7锛�
+ val operateTypeToSend = if (operationTypeCode in 100..108) {
+ CardOperationType.MANAGEMENT_CARD_WRITE.code
+ } else {
+ operationTypeCode
+ }
+ map["operateType"] = operateTypeToSend
+
+ // 娣诲姞璁㈠崟鍙峰弬鏁帮紙濡傛灉瀛樺湪锛�
+ if (orderNumber.isNotEmpty()) {
+ map["orderNumber"] = orderNumber
+ }
+
+ // 娣诲姞鍖哄煙鍙峰拰椤圭洰鍙峰弬鏁�
+ if (regionNumber.isNotEmpty()) {
+ map["regionNumber"] = regionNumber
+ }
+ if (projectNumber.isNotEmpty()) {
+ map["projectNumber"] = projectNumber
+ }
+
+ // 璋冪敤鏈嶅姟鍣ㄦ帴鍙d笂鎶ユ搷浣滅粨鏋�
+ ApiManager.getInstance().requestPostHideLoading(
+ this,
+ "terminal/card/termCallBack", // 缁堢鍐欏崱鍥炶皟鎺ュ彛
+ String::class.java,
+ map,
+ object : SubscriberListener<BaseResponse<String>>() {
+ override fun onNext(t: BaseResponse<String>) {
+ if (t.success) {
+ // 涓婃姤鎴愬姛锛屾洿鏂版湰鍦版暟鎹簱isReported涓簍rue
+ updateCardReportedStatus(cardAddr, orderNumber, operationTypeCode)
+ } else {
+ // 涓婃姤澶辫触锛岃褰曢敊璇絾涓嶅奖鍝嶇敤鎴锋搷浣�
+ CrashReport.postCatchedException(Exception("涓婃姤鍐欏崱缁撴灉澶辫触: ${t.msg}"))
+ }
+ }
+
+ override fun onError(e: Throwable?) {
+ super.onError(e)
+ // 缃戠粶閿欒锛岃褰曢敊璇絾涓嶅奖鍝嶇敤鎴锋搷浣�
+ CrashReport.postCatchedException(e ?: Exception("涓婃姤鍐欏崱缁撴灉缃戠粶閿欒"))
+ }
+ }
+ )
+ }
+
+ /**
+ * 鏇存柊鏈湴鏁版嵁搴撲腑鐨勪笂鎶ョ姸鎬�
+ * 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄洿鏂癕anagerCardBean杩樻槸CardRegistrationBean鐨刬sReported鐘舵�佷负true
+ *
+ * @param cardNumber 鍗″彿
+ * @param orderNumber 璁㈠崟鍙�
+ * @param operationTypeCode 鎿嶄綔绫诲瀷浠g爜
+ */
+ private fun updateCardReportedStatus(cardNumber: String, orderNumber: String = "", operationTypeCode: Int = -1) {
+ lifecycleScope.launch {
+ try {
+ val baseDaoSingleton = BaseDaoSingleton.getInstance(this@MainActivity)
+
+ // 鏍规嵁鎿嶄綔绫诲瀷鍒ゆ柇鏄鐞嗗崱杩樻槸鐢ㄦ埛鍗℃搷浣�
+ val isManagerCardOperation = operationTypeCode in 100..108
+
+ if (isManagerCardOperation) {
+ // 绠$悊鍗″埗浣滄搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癕anagerCardBean
+ val managerCardDao = baseDaoSingleton.managerCardDao()
+ val managerCard = if (orderNumber.isNotEmpty()) {
+ managerCardDao.getByOrderId(orderNumber)
+ } else {
+ managerCardDao.getByCardAddress(cardNumber)
+ }
+
+ if (managerCard != null) {
+ val updatedManagerCard = managerCard.copy(isReported = true)
+ managerCardDao.update(updatedManagerCard)
+ }
+ } else {
+ // 鐢ㄦ埛鍗℃搷浣滅被鍨嬶紝鏌ヨ鍜屾洿鏂癈ardRegistrationBean
+ val cardRegistrationDao = baseDaoSingleton.cardRegistrationDao()
+ val cardRegistration = if (orderNumber.isNotEmpty()) {
+ cardRegistrationDao.getByOrderId(orderNumber)
+ } else {
+ // 濡傛灉娌℃湁璁㈠崟鍙凤紝鍒欓�氳繃鍗″彿鏌ユ壘
+ cardRegistrationDao.getByCardNumber(cardNumber)
+ }
+
+ if (cardRegistration != null) {
+ // 鍒涘缓鏇存柊鍚庣殑CardRegistrationBean瀵硅薄锛屽皢isReported璁剧疆涓簍rue
+ val updatedCardRegistration = cardRegistration.copy(isReported = true)
+ // 鏇存柊鏁版嵁搴撹褰�
+ cardRegistrationDao.update(updatedCardRegistration)
+ }
+ }
+ } catch (e: Exception) {
+ // 璁板綍寮傚父淇℃伅锛屼絾涓嶅奖鍝嶇敤鎴锋搷浣�
+ CrashReport.postCatchedException(e)
+ e.printStackTrace()
+ }
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0