| | |
| | | |
| | | 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 |
| | |
| | | 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() { |
| | |
| | | } |
| | | |
| | | 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()) |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | 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("当前卡密码错误,不是本公司卡") |
| | |
| | | |
| | | |
| | | /** |
| | | * 提交数据 |
| | | * 提交数据 - 不带区域号的版本 |
| | | */ |
| | | 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>() |
| | | |
| | |
| | | if (remark.isNotEmpty()) { |
| | | map["remarks"] = remark |
| | | } |
| | | |
| | | // 如果是区域表号卡并且有区域号,添加到请求参数中 |
| | | if (cardType == CardCommon.REGION_CARD && !regionNumber.isNullOrEmpty()) { |
| | | map["regionNumber"] = regionNumber |
| | | } |
| | | |
| | | // 使用正确的类型参数 |
| | | ApiManager.getInstance().requestPostLoading( |
| | | this, |
| | |
| | | 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) |