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/ReadCardAcitivy.java | 299 ++++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 184 insertions(+), 115 deletions(-)
diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
index bc359e9..258c817 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -3,19 +3,26 @@
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import com.dayu.baselibrary.tools.HexUtil;
import com.dayu.baselibrary.utils.MornyUtil;
import com.dayu.baselibrary.utils.TipUtil;
+import com.dayu.baselibrary.view.ConfirmDialog;
import com.dayu.qihealonelibrary.card.BlackCard;
import com.dayu.qihealonelibrary.card.ConfigurationPowerCard;
import com.dayu.qihealonelibrary.card.DomainCard;
import com.dayu.qihealonelibrary.card.ElectricPriceCard;
+import com.dayu.qihealonelibrary.card.ManageCard;
+import com.dayu.qihealonelibrary.card.ManagerToUserCard;
import com.dayu.qihealonelibrary.card.RegionCard;
import com.dayu.qihealonelibrary.card.UserCard;
import com.dayu.qihealonelibrary.databinding.ActivityRedCardQhaBinding;
+import com.dayu.qihealonelibrary.dbBean.AdminDataBean;
+import com.dayu.qihealonelibrary.dbBean.UserCardBean;
+import com.dayu.qihealonelibrary.tools.NFCWriteHelper;
import com.dayu.qihealonelibrary.tools.NfcReadHelper;
import com.dayu.qihealonelibrary.utils.CardCommon;
import com.dayu.qihealonelibrary.view.ProgressDialog;
@@ -29,14 +36,17 @@
* Date: 2023-11-10 19:52
* Description: 璇诲崱鐣岄潰
*/
-public class ReadCardAcitivy extends BaseNfcActivityQHAlone {
+public class ReadCardAcitivy extends QHAloneBaseNfcActivity {
volatile UserCard userCard;
ActivityRedCardQhaBinding redCardBinding;
Intent intent;
-
+ ConfirmDialog confirmDialog;
+ AdminDataBean adminData;
+ String cardNumber;
+ String userCardStr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -45,39 +55,38 @@
}
- private void setUserData(String userName, int blance, String statu) {
+ private void setUserData(String userName, String statu, String cardNumber) {
viweGone(true);
redCardBinding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName);
- redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(blance) + "鍏�");
redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu);
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);
- int hour = calendar.get(Calendar.HOUR_OF_DAY);
- int minute = calendar.get(Calendar.MINUTE);
- int second = calendar.get(Calendar.SECOND);
- redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day + " " + hour + ":" + minute + ":" + second);
+ redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + "骞�" + month + "鏈�" + day + "鏃�");
} else {
redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
}
-
- redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + "");
+ redCardBinding.redInitCode.setText(cardNumber);
+ redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + " 娆�");
+// redCardBinding.redTotalWater.setText("鎬荤敤姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 鍚�");
+// redCardBinding.redTotalPower.setText("鎬荤敤鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 搴�");
+ redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�");
+// redCardBinding.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�");
}
}
+
@Override
- public void onNewIntent(Intent intent) {
+ public void onNfcBack(Intent intent) {
this.intent = intent;
ProgressDialog.show(this);
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
readAllData(intent);
}
- super.onNewIntent(intent);
}
/**
@@ -85,115 +94,175 @@
*/
public void readAllData(Intent intent) {
- NfcReadHelper.getInstence(intent, this)
- .getOneSectorData(new NfcReadHelper.NFCCallListback() {
- @Override
- public void callBack(List<byte[]> data) {
- //鑾峰彇1鎵囧尯鏁版嵁
- if (data != null && data.size() > 0) {
- byte cardType = data.get(0)[0];
- String cardTypeStr = HexUtil.byteToHex(cardType);
- switch (cardTypeStr) {
- case CardCommon.USER_CARD_TYPE_1:
- case CardCommon.USER_CARD_TYPE_2:
- case CardCommon.USER_CARD_TYPE_3:
- userCard = UserCard.getBean(data);
- break;
- case CardCommon.MANAGE_CRAD:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
- stopAnim();
- break;
- case CardCommon.CLEAN_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
- stopAnim();
- break;
- case CardCommon.REGISTERED_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
- stopAnim();
- break;
- case CardCommon.CLEAN_ALL_USER_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
- stopAnim();
- break;
- case CardCommon.DOMAIN_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
- DomainCard domainCard = DomainCard.toBean(data);
- assert domainCard != null;
- redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
- stopAnim();
- break;
- case CardCommon.TEST_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
- stopAnim();
- break;
- case CardCommon.CONFIGURATION_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
- stopAnim();
- break;
- case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
- ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
- redCardBinding.readCardDataTV.setText(powerCard.getPower());
- stopAnim();
- break;
- case CardCommon.BLACK:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓洪粦鍗�");
- BlackCard blackCard = BlackCard.getBean(data);
- redCardBinding.readCardDataTV.setText("褰撳墠榛戝崱鐢ㄦ埛鍙蜂负锛�" + blackCard.getBlackCard());
- break;
- case CardCommon.REGION:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓哄尯鍩熻〃鍙峰崱");
- RegionCard regionCard = RegionCard.getBean(data);
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("鍖哄煙鍦板潃锛�").append(regionCard.getRegion()).append("\n");
- stringBuilder.append("鎺у埗鍣ㄧ紪鍙凤細").append(regionCard.getControllerCodel()).append("\n");
- redCardBinding.readCardDataTV.setText(stringBuilder.toString());
- break;
- case CardCommon.ELECTRIC_PRICE:
- viweGone(false);
- redCardBinding.readCardTypeTV.setText("褰撳墠涓虹數閲忓崟浠峰崱");
- ElectricPriceCard electricPriceCard = ElectricPriceCard.getBean(data);
- StringBuilder electricPriceBuilder = new StringBuilder();
- electricPriceBuilder.append("鐢甸噺鍗曚环锛�").append(electricPriceCard.getElectricPrice()).append("\n");
- redCardBinding.readCardDataTV.setText(electricPriceBuilder.toString());
- break;
- default:
- TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
- stopAnim();
- break;
- }
+ 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();
+ String state = "";
+ if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) {
+ state = "缁堢鍐欏崱";
+ } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) {
+ state = "鍒峰崱寮�娉靛悗";
+ } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) {
+ state = "鍙犲姞鍏呭��";
+ }
+ switch (cardType) {
+ case CardCommon.USER_CARD_TYPE_1:
+ case CardCommon.USER_CARD_TYPE_2:
+ case CardCommon.USER_CARD_TYPE_3:
+
+ if (!data.isEmpty()) {
+ if (!TextUtils.isEmpty(cardNumber)) {
+ userCard = new UserCard().getBean(data);
+ List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber);
+ if (userCardBeans != null && !userCardBeans.isEmpty()) {
+ UserCardBean userName = userCardBeans.get(0);
+ setUserData(userName.getUserName(), state, cardNumber);
} else {
- TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
+ setUserData("鏈煡璇㈠埌鐢ㄦ埛鍚�", state, cardNumber);
+ }
+ } else {
+
+ }
+ } else {
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+
+ break;
+ case CardCommon.MANAGE_CRAD://绠$悊鍗�
+ ManageCard manageCard = ManageCard.getBean(data);
+ viweGone(false);
+ userCardStr = manageCard.getUserCard().toUpperCase();
+ userCardStr = HexUtil.spaceHex(userCardStr);
+ userCardStr = HexUtil.HighLowHex(userCardStr);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱" + "\n\n"
+ + "鍘熷鍗″彿锛�" + userCardStr);
+ if (manageCard.getType()==(byte) 1){
+ //褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
+ confirmDialog=new ConfirmDialog(this, "鏄惁纭琛ュ崱锛岃鍗″皢鎴愪负鏂扮敤鎴峰崱锛熷苟涓斾笉瑕佺Щ鍔ㄥ崱鐗�", new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ProgressDialog.show(ReadCardAcitivy.this);
+ try {
+ confirmDialog.dismiss();
+
+ List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(userCardStr);
+ if (userCardBeans != null && !userCardBeans.isEmpty()) {
+ UserCardBean userName = userCardBeans.get(0);
+ userName.setCardNumber(cardNumber);
+ baseDao.userCardDao().update(userName);
+ }
+
+ NFCWriteHelper nfcWriteHelper= NFCWriteHelper.getInstence(intent,ReadCardAcitivy.this);
+ adminData = baseDao.adminDao().findFirst();
+ ManagerToUserCard managerToUserCard=new ManagerToUserCard();
+ managerToUserCard.setArerNumber(Integer.valueOf(adminData.getSerial()));
+ managerToUserCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode()));
+ managerToUserCard.setTotalElectric(manageCard.getTotalElectric());
+ if (nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(),1,0)){
+ TipUtil.show(ReadCardAcitivy.this, "琛ュ崱鎴愬姛", () -> ReadCardAcitivy.this.finish());
+ }else {
+ TipUtil.show(ReadCardAcitivy.this, "琛ュ崱澶辫触锛岃閲嶆柊鍒峰崱", () -> ReadCardAcitivy.this.finish());
+ }
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
stopAnim();
}
+ });
+ confirmDialog.show();
+ }
+ break;
+ case CardCommon.CLEAN_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
+ break;
+ case CardCommon.REGISTERED_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
+ break;
+ case CardCommon.CLEAN_ALL_USER_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
+ break;
+ case CardCommon.DOMAIN_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
+ if (!data.isEmpty()) {
+ DomainCard domainCard = DomainCard.toBean(data);
+ assert domainCard != null;
+ redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
+ } else {
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+ break;
+ case CardCommon.TEST_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
+ break;
+ case CardCommon.CONFIGURATION_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
+ break;
+ case CardCommon.CONFIGURATION_POWER_CARD_TYPE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
+ if (!data.isEmpty()) {
+ ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(data.get(0));
+ redCardBinding.readCardDataTV.setText(powerCard.getPower());
+ } else {
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+ break;
+ case CardCommon.BLACK:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪粦鍗�");
+ BlackCard blackCard = BlackCard.getBean(data);
+ redCardBinding.readCardDataTV.setText("褰撳墠榛戝崱鐢ㄦ埛鍙蜂负锛�" + blackCard.getBlackCard());
+ break;
+ case CardCommon.REGION:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓哄尯鍩熻〃鍙峰崱");
+ if (!data.isEmpty()) {
+ RegionCard regionCard = RegionCard.getBean(data);
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("鍖哄煙鍦板潃锛�").append(regionCard.getRegion()).append("\n");
+ stringBuilder.append("鎺у埗鍣ㄧ紪鍙凤細").append(regionCard.getControllerCodel()).append("\n");
+ redCardBinding.readCardDataTV.setText(stringBuilder.toString());
+ } else {
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
- }
+ break;
+ case CardCommon.ELECTRIC_PRICE:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓虹數閲忓崟浠峰崱");
+ if (!data.isEmpty()) {
+ ElectricPriceCard electricPriceCard = ElectricPriceCard.getBean(data);
+ StringBuilder electricPriceBuilder = new StringBuilder();
+ electricPriceBuilder.append("鐢甸噺鍗曚环锛�").append(electricPriceCard.getElectricPrice());
+ electricPriceBuilder.append("鍏�");
+ redCardBinding.readCardDataTV.setText(electricPriceBuilder.toString());
+ } else {
+ TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
+ }
+ break;
+ default:
+ TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
+ break;
+ }
+ stopAnim();
- @Override
- public void error(int code) {
- switch (code) {
- case CardCommon.ERROR_MOVE:
- stopAnim();
- TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
- break;
- default:
- stopAnim();
- TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒");
- }
- }
- });
}
--
Gitblit v1.8.0