From d0a0e8e242e293ad35dfbee1217f1103302818cd Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期四, 03 四月 2025 10:22:48 +0800
Subject: [PATCH] refactor(generallibrary):重构卡片和用户搜索功能
---
qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 265 insertions(+), 0 deletions(-)
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
new file mode 100644
index 0000000..e057c18
--- /dev/null
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/RechargeActivityQHAlone.java
@@ -0,0 +1,265 @@
+package com.dayu.qihealonelibrary.activity;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+
+import com.dayu.baselibrary.tools.HexUtil;
+import com.dayu.baselibrary.utils.MornyUtil;
+import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.qihealonelibrary.R;
+import com.dayu.qihealonelibrary.card.UserCard;
+import com.dayu.qihealonelibrary.databinding.ActivityRechargeQhaBinding;
+import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
+import com.dayu.qihealonelibrary.dbBean.ElectricPriceBean;
+import com.dayu.qihealonelibrary.dbBean.UserCardBean;
+import com.dayu.qihealonelibrary.tools.NfcReadHelper;
+import com.dayu.qihealonelibrary.utils.CardCommon;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.Calendar;
+import java.util.List;
+
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-5 09:52
+ * Description: 鍏呭�肩晫闈�
+ */
+public class RechargeActivityQHAlone extends QHAloneBaseNfcActivity {
+
+ Intent intent;
+
+ ActivityRechargeQhaBinding binding;
+ public static RechargeActivityQHAlone rechargeActivity;
+
+ AdminDataBean adminData;
+ String userName;
+ String cardNumber = null;
+ UserCardBean userCardBean;
+ int waterPrice;
+ String rechageWater;//鍏呭�肩殑姘撮噺
+ ElectricPriceBean priceBean;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ try {
+ binding = ActivityRechargeQhaBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+ setPricePoint(binding.rechargeWater);
+ rechargeActivity = this;
+ waterPrice = baseDao.adminDao().findFirst().getWaterPrice();
+ initView();
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+ }
+
+ @Override
+ public void onNfcBack(Intent intent) {
+ this.intent = intent;
+ try {
+ readAllData();
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+ }
+
+
+ private void readAllData() {
+ String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
+
+ String[] cardTypes = cardType.split(",");
+ if (cardTypes != null && cardTypes.length == 2) {
+ cardNumber = cardType.split(",")[0];
+ cardNumber = HexUtil.spaceHex(cardNumber);
+ cardNumber = HexUtil.HighLowHex(cardNumber);
+ cardType = cardType.split(",")[1];
+ }
+ List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData();
+
+ if (!data.isEmpty()) {
+ if (!TextUtils.isEmpty(cardNumber)) {
+ setUserData(cardType, cardNumber, data);
+ if (priceBean != null) {
+ binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + priceBean.getPrice() + "鍏�/搴�");
+ }
+ } else {
+ TipUtil.show(this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱");
+ }
+ } else {
+ TipUtil.show(this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+ }
+
+
+ @SuppressLint("ResourceAsColor")
+ private void setUserData(String cardType, String cardNumber, List<byte[]> data) {
+
+
+ String state = "";
+ if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
+ state = "缁堢鍐欏崱";
+ binding.rechargeLL.setVisibility(View.VISIBLE);
+ binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
+ binding.redStatu.setTextColor(R.color.black);
+ } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
+ state = "鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��";
+ binding.rechargeLL.setVisibility(View.GONE);
+ binding.rechargeRegistBtn.setVisibility(View.GONE);
+ binding.redStatu.setTextColor(com.dayu.baselibrary.R.color.red);
+ } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
+ state = "鍙犲姞鍏呭��";
+ binding.rechargeLL.setVisibility(View.GONE);
+ binding.rechargeRegistBtn.setVisibility(View.GONE);
+ } else {
+ TipUtil.show(this, "闈炵敤鎴峰崱锛屼笉鑳藉厖鍊�");
+ return;
+ }
+
+
+ userCard = new UserCard().getBean(data);
+ List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
+ AdminDataBean adminDataBean = baseDao.adminDao().findFirst();
+
+
+ if (Integer.valueOf(adminDataBean.getAddressCode()) == userCard.getArerNumber()) {
+ if (!userCardBeans.isEmpty()) {
+ userCardBean = userCardBeans.get(0);
+ this.userName = userCardBean.getUserName();
+ } else {
+ userCardBean = new UserCardBean();
+ userCardBean.setCardNumber(cardNumber);
+ userCardBean.setUserName("鏈煡鐢ㄦ埛");
+ userCardBean.setPhone("鏈煡");
+ userCardBean.setUserID("鏈煡");
+ userCardBean.setAddressCode(String.valueOf(userCard.getArerNumber()));
+ userCardBean.setSerial(String.valueOf(userCard.getArerNumber()));
+ this.userName = "鏈煡鐢ㄦ埛";
+ }
+ binding.rechargeReadLL.setVisibility(View.GONE);
+ binding.rechargeTextLL.setVisibility(View.VISIBLE);
+ binding.userName.setText(userName);
+ binding.redStatu.setText(state);
+ if (userCard != null) {
+ Calendar calendar = userCard.getRechargeDate();
+ if (calendar != null) {
+ int year = calendar.get(Calendar.YEAR);
+ int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+ int day = calendar.get(Calendar.DAY_OF_MONTH);
+ binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + "骞�" + month + "鏈�" + day + "鏃�");
+ } else {
+ binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
+ }
+ binding.redInitCode.setText(cardNumber);
+// binding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + " 娆�");
+// binding.redTotalWater.setText("鎬荤敤姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 鍚�");
+// binding.redTotalPower.setText("鎬荤敤鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 搴�");
+ binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�");
+ binding.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�");
+// binding.redWaterPrice.setText("姣忕珛鏂圭背姘翠环鏍硷細" + MornyUtil.changeF2Y(adminData.getWaterPrice()) + " 鍏�");
+ }
+
+ } else {
+ TipUtil.show(this, "闈炴湰鍖哄煙鍗n涓嶈兘鍏呭�硷紒锛侊紒");
+ }
+
+
+ }
+
+
+ private void initView() {
+ try {
+ adminData = baseDao.adminDao().findFirst();
+ priceBean = baseDao.electricPriceDao().findFirst();
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+ binding.rechargeRegistBtn.setOnClickListener(v -> {
+ String morny = binding.rechargeWater.getText().toString();
+ if (!TextUtils.isEmpty(morny)) {
+ Intent intent = new Intent(RechargeActivityQHAlone.this, NFCWreatActivityQHAlone.class);
+ //褰撳墠閲戦鍗曚綅涓哄厓
+ intent.putExtra("morny", morny);
+ intent.putExtra("userName", userName);
+ intent.putExtra("cardNumber", cardNumber);
+ intent.putExtra("userCard", userCard);
+ intent.putExtra("userCardBean", userCardBean);
+// intent.putExtra("rechageWater", rechageWater);
+ startActivity(intent);
+ } else {
+ TipUtil.show(RechargeActivityQHAlone.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+ }
+ });
+ }
+
+
+ //鏍¢獙閲戦
+ public void setPricePoint(final EditText editText) {
+ editText.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before,
+ int count) {
+ if (s.toString().contains(".")) {
+ if (s.length() - 1 - s.toString().indexOf(".") > 2) {
+ s = s.toString().subSequence(0,
+ s.toString().indexOf(".") + 3);
+ editText.setText(s);
+ editText.setSelection(s.length());
+ }
+ }
+ if (s.toString().trim().substring(0).equals(".")) {
+ s = "0" + s;
+ editText.setText(s);
+ editText.setSelection(2);
+ }
+
+ if (s.toString().startsWith("0")
+ && s.toString().trim().length() > 1) {
+ if (!s.toString().substring(1, 2).equals(".")) {
+ editText.setText(s.subSequence(0, 1));
+ editText.setSelection(1);
+ }
+ }
+ String morny = editText.getText().toString();
+ if (!TextUtils.isEmpty(morny)) {
+ rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice);
+// binding.redRechargeWater.setText("鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫�(鍚�)");
+ }
+
+
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count,
+ int after) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ // TODO Auto-generated method stub
+
+ }
+
+ });
+
+ }
+
+
+ protected void onDestroy() {
+ super.onDestroy();
+ rechargeActivity = null;
+ }
+}
--
Gitblit v1.8.0