From d08a5a6d062f1568aaeb14d2d72357826291ef97 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期六, 13 七月 2024 18:14:28 +0800
Subject: [PATCH] 添加齐河管理卡相关逻辑 修复bug

---
 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java |   61 +++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 7 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 b5c1a5f..1132551 100644
--- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
+++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/ReadCardAcitivy.java
@@ -10,14 +10,19 @@
 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;
@@ -38,7 +43,10 @@
 
 
     Intent intent;
-
+    ConfirmDialog confirmDialog;
+    AdminDataBean adminData;
+    String cardNumber;
+    String userCardStr;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -63,10 +71,10 @@
             }
             redCardBinding.redInitCode.setText(cardNumber);
             redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + " 娆�");
-            redCardBinding.redTotalWater.setText("鎬荤敤姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 鍚�");
-            redCardBinding.redTotalPower.setText("鎬荤敤鐢甸噺锛�" +  MornyUtil.changeF2Y(userCard.getTotalElectric())+" 搴�");
+//            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())+" 鍚�");
+//            redCardBinding.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�");
         }
     }
 
@@ -89,10 +97,12 @@
 
 
         String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber();
-        String cardNumber = null;
+
         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();
@@ -127,9 +137,46 @@
                 }
 
                 break;
-            case CardCommon.MANAGE_CRAD:
+            case CardCommon.MANAGE_CRAD://绠$悊鍗�
+                ManageCard manageCard = ManageCard.getBean(data);
                 viweGone(false);
-                redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
+                 userCardStr = manageCard.getUserCard().toUpperCase();
+                userCardStr = HexUtil.spaceHex(userCardStr);
+                userCardStr = HexUtil.HighLowHex(userCardStr);
+                redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱" + "\n\n"
+                        + "鍘熷鍗″彿锛�" + userCard);
+                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());
+                                nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(),1,0);
+                                TipUtil.show(ReadCardAcitivy.this, "琛ュ崱鎴愬姛", () -> ReadCardAcitivy.this.finish());
+                            } catch (Exception e) {
+                               e.printStackTrace();
+                            }
+                            stopAnim();
+                        }
+                    });
+                    confirmDialog.show();
+                }
                 break;
             case CardCommon.CLEAN_CARD_TYPE:
                 viweGone(false);

--
Gitblit v1.8.0