From 899cb6ce779b24a659ec3515dd3fb1cd1afef7d2 Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期二, 24 六月 2025 14:02:46 +0800
Subject: [PATCH] feat(card): 增加区域表号卡制作功能

---
 generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt |   76 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 72 insertions(+), 4 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt
index 1c218d7..a90feb8 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/ManagerReadActivity.kt
@@ -2,6 +2,8 @@
 
 import android.content.Intent
 import android.os.Bundle
+import android.text.Editable
+import android.text.TextWatcher
 import android.view.View
 import androidx.databinding.DataBindingUtil
 import com.dayu.baselibrary.net.subscribers.SubscriberListener
@@ -13,6 +15,7 @@
 import com.dayu.general.model.CardInfoModel
 import com.dayu.general.net.ApiManager
 import com.dayu.general.net.BaseResponse
+import com.dayu.general.tool.CardCommon
 import com.dayu.general.tool.NfcReadHelper
 
 class ManagerReadActivity : BaseNfcActivity() {
@@ -37,15 +40,64 @@
     }
 
     private fun initView() {
-        binding.titleBar.setCenterText("璇诲崱")
+        // 鏍规嵁鍗$被鍨嬭缃爣棰�
+        when (cardType) {
+            CardCommon.REGION_CARD -> binding.titleBar.setCenterText("鍒朵綔鍖哄煙琛ㄥ彿鍗�")
+            CardCommon.CHECK_CARD -> binding.titleBar.setCenterText("鍒朵綔妫�鏌ュ崱")
+            CardCommon.DEBUG_CARD -> binding.titleBar.setCenterText("鍒朵綔璋冭瘯鍗�")
+            CardCommon.CLEAN_CARD_TYPE -> binding.titleBar.setCenterText("鍒朵綔娓呴浂鍗�")
+            else -> binding.titleBar.setCenterText("璇诲崱")
+        }
+        
         binding.titleBar.setOnItemclickListner(ClickType_LEFT_IMAGE) { this.finish() }
+        
+        // 鏍规嵁鍗$被鍨嬭缃緭鍏ユ鍙鎬�
+        when (cardType) {
+            CardCommon.REGION_CARD -> {
+                // 鍖哄煙琛ㄥ彿鍗★細鏄剧ず鍖哄煙鍙疯緭鍏ユ
+                binding.regionNumberLayout.visibility = View.VISIBLE
+                // 涓哄尯鍩熷彿杈撳叆妗嗘坊鍔犺緭鍏ラ獙璇�
+                binding.regionNumberEt.addTextChangedListener(object : TextWatcher {
+                    override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
+                    override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
+                    override fun afterTextChanged(s: Editable?) {
+                        val text = s.toString()
+                        if (text.length > 12) {
+                            binding.regionNumberEt.setText(text.substring(0, 12))
+                            binding.regionNumberEt.setSelection(12)
+                        }
+                    }
+                })
+            }
+            CardCommon.CHECK_CARD,
+            CardCommon.DEBUG_CARD,
+            CardCommon.CLEAN_CARD_TYPE -> {
+                // 妫�鏌ュ崱銆佽皟璇曞崱銆佹竻闆跺崱锛氶殣钘忓尯鍩熷彿杈撳叆妗嗭紝鍙樉绀哄崱鍦板潃鍜屽娉�
+                binding.regionNumberLayout.visibility = View.GONE
+            }
+            else -> {
+                // 鍏朵粬鍗$被鍨嬶細闅愯棌鍖哄煙鍙疯緭鍏ユ
+                binding.regionNumberLayout.visibility = View.GONE
+            }
+        }
+        
         binding.btnNext.setOnClickListener {
             if (viewModel.cardNumber.value.isNullOrEmpty()) {
                 ToastUtil.show("璇峰厛璇诲彇鍗″彿")
+            } else if (cardType == CardCommon.REGION_CARD) {
+                // 鍖哄煙琛ㄥ彿鍗¢渶瑕侀獙璇佸尯鍩熷彿
+                val regionNumber = viewModel.regionNumber.value
+                if (regionNumber.isNullOrEmpty()) {
+                    ToastUtil.show("璇疯緭鍏ュ尯鍩熷彿")
+                } else if (regionNumber.length != 12) {
+                    ToastUtil.show("鍖哄煙鍙峰繀椤讳负12浣嶆暟瀛�")
+                } else {
+                    postCardData(cardType, viewModel.cardNumber.value!!, getRemark(), regionNumber)
+                }
             } else {
+                // 鍏朵粬鍗$被鍨嬶紙鍖呮嫭璋冭瘯鍗°�佹鏌ュ崱銆佹竻闆跺崱锛変笉闇�瑕佸尯鍩熷彿
                 postCardData(cardType, viewModel.cardNumber.value!!, getRemark())
             }
-
         }
     }
 
@@ -71,7 +123,7 @@
             if (cardNumber.isNotEmpty() && !cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) {
                 binding.btnNext.visibility = View.VISIBLE
                 binding.dataLayout.visibility = View.VISIBLE
-                binding.rechargeReadLL.visibility = View.GONE
+                binding.scrollReadCard.visibility = View.GONE
                 setCardNumber(cardNumber)
             } else if (cardNumber.contains(BaseCommon.CARD_TYPE_ERROR2)) {
                 ToastUtil.show("褰撳墠鍗″瘑鐮侀敊璇紝涓嶆槸鏈叕鍙稿崱")
@@ -91,9 +143,16 @@
 
 
 /**
- * 鎻愪氦鏁版嵁
+ * 鎻愪氦鏁版嵁 - 涓嶅甫鍖哄煙鍙风殑鐗堟湰
  */
 fun postCardData(cardType: String, cardAddr: String, remark: String) {
+    postCardData(cardType, cardAddr, remark, null)
+}
+
+/**
+ * 鎻愪氦鏁版嵁 - 甯﹀尯鍩熷彿鐨勭増鏈�
+ */
+fun postCardData(cardType: String, cardAddr: String, remark: String, regionNumber: String?) {
 
     val map = mutableMapOf<String, Any>()
 
@@ -108,6 +167,12 @@
     if (remark.isNotEmpty()) {
         map["remarks"] = remark
     }
+    
+    // 濡傛灉鏄尯鍩熻〃鍙峰崱骞朵笖鏈夊尯鍩熷彿锛屾坊鍔犲埌璇锋眰鍙傛暟涓�
+    if (cardType == CardCommon.REGION_CARD && !regionNumber.isNullOrEmpty()) {
+        map["regionNumber"] = regionNumber
+    }
+    
     // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�
     ApiManager.getInstance().requestPostLoading(
         this,
@@ -121,6 +186,9 @@
                         putExtra("cardAddr", cardAddr)
                         putExtra("orderId", t.content)
                         putExtra("cardType", cardType)
+                        if (cardType == CardCommon.REGION_CARD && !regionNumber.isNullOrEmpty()) {
+                            putExtra("regionNumber", regionNumber)
+                        }
                     }
                     this@ManagerReadActivity.finish()
                     startActivity(intent)

--
Gitblit v1.8.0