From a44c47bc7f37245612635866adaddf5c98d41747 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 16 八月 2024 11:03:49 +0800
Subject: [PATCH] 添加补打逻辑 联调修复bug

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java |   61 +++++++++++++++++-------------
 1 files changed, 35 insertions(+), 26 deletions(-)

diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
index c560862..04ba3e4 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/ManageCard.java
@@ -16,10 +16,8 @@
  */
 public class ManageCard extends BaseCard implements Serializable {
     public String cardType = CardCommon.MANAGE_CRAD;//鍗$被鍨�
+    public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗)
 
-    public String getCardData() {
-        return cardData;
-    }
 
     /**
      * M1鍗$殑0鎵囧尯0鍧楅�氬父鐢ㄤ簬瀛樺偍涓�浜涘熀鏈殑鍗$墖淇℃伅
@@ -27,20 +25,15 @@
      */
     public String userCard; //鐢ㄦ埛鍗″彿
 
-    public byte type;//褰撳墠鐘舵�� 00锛氬厖鍊肩鐞嗘満鍐� 01:鎺у埗鍣ㄥ弽鍐欑殑  褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
+    public byte cardWriteState;//褰撳墠鐘舵�� 00锛氬厖鍊肩鐞嗘満鍐� 01:鎺у埗鍣ㄥ弽鍐欑殑  褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭
 
-    public int totalElectric;//鎬荤敤鐢甸噺浣� 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚�  1浣嶅皬鏁扮偣  鍚�1浣嶅皬鏁扮偣鐨勬暣鏁�
 
-    public int getTotalElectric() {
-        return totalElectric;
+    public int getArerNumber() {
+        return arerNumber;
     }
 
-    public byte getType() {
-        return type;
-    }
-
-    public void setType(byte type) {
-        this.type = type;
+    public void setArerNumber(int arerNumber) {
+        this.arerNumber = arerNumber;
     }
 
     public String getUserCard() {
@@ -51,21 +44,31 @@
         this.userCard = userCard;
     }
 
+    public byte getCardWriteState() {
+        return cardWriteState;
+    }
+
+    public void setCardWriteState(byte cardWriteState) {
+        this.cardWriteState = cardWriteState;
+    }
 
     public static ManageCard getBean(List<byte[]> data) {
 
         if (data != null) {
-            ManageCard manageCard = new ManageCard();
-
-            byte[] zero = data.get(0);
-            byte[] passWordByte = new byte[4];
-            System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
-            manageCard.setUserCard(HexUtil.bytesToHex(passWordByte));
-            manageCard.setType(zero[9]);
-            byte[] totalElectricByte = new byte[4];
-            System.arraycopy(zero, 10, totalElectricByte, 0, totalElectricByte.length);
-            manageCard.totalElectric = HexUtil.get16To10LowHightByBytes(totalElectricByte);
-            return manageCard;
+            try {
+                ManageCard manageCard = new ManageCard();
+                byte[] zero = data.get(0);
+                byte[] arerNumberByte = new byte[4];
+                System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length);
+                manageCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte);
+                byte[] passWordByte = new byte[4];
+                System.arraycopy(zero, 5, passWordByte, 0, passWordByte.length);
+                manageCard.setUserCard(HexUtil.bytesToHex(passWordByte));
+                manageCard.setCardWriteState(zero[13]);
+                return manageCard;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         }
         return null;
     }
@@ -82,14 +85,20 @@
             byte[] data = new byte[16];
             data[0] = HexUtil.hexToByte(cardType);
 
-            byte[] cardDataByte = HexUtil.hexToByteArray(cardData);
-            System.arraycopy(cardDataByte, 0, data, 1, cardDataByte.length);
+            //鍖哄煙鍙�
+            byte[] arerNumberBytes = new byte[4];
+            byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber));
+            System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length);
+            if (arerNumberBytes != null) {
+                System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length);
+            }
 
             byte[] userCardByts = HexUtil.hexToByteArray(userCard);
             if (userCard != null) {
                 System.arraycopy(userCardByts, 0, data, 5, userCardByts.length);
             }
 
+            data[13] = cardWriteState;
             data[15] = getByteSum(data);
             return data;
         }

--
Gitblit v1.8.0