From 75417d96b932dc5da0b3457fa1bc663fa64034f7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 29 十一月 2023 17:45:49 +0800
Subject: [PATCH] 修改权限逻辑,获取权限后再生成数据库 数据库保存在sd防止用户删除后没有数据了
---
app/src/main/java/com/dayu/recharge/card/UserCard.java | 167 ++++++++++++++++++++++++++++---------------------------
1 files changed, 86 insertions(+), 81 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/card/UserCard.java b/app/src/main/java/com/dayu/recharge/card/UserCard.java
index 5233456..df69beb 100644
--- a/app/src/main/java/com/dayu/recharge/card/UserCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/UserCard.java
@@ -56,89 +56,94 @@
* @param data
*/
public static UserCard getBean(List<byte[]> data) {
- UserCard userCard = new UserCard();
- if (data != null) {
- byte[] zero = data.get(0);
- byte[] one = data.get(1);
- byte[] two = data.get(2);
- userCard.cardType = HexUtil.byteToHex(zero[0]);
- userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
- byte[] swipeNumberBytes = new byte[2];
- swipeNumberBytes[0] = zero[2];
- swipeNumberBytes[1] = zero[3];
- String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
- userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
- byte[] electricityPriceBytes = new byte[4];
- for (int i = 0; i < 4; i++) {
- electricityPriceBytes[i] = zero[i + 4];
- }
- userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
- userCard.state = BcdUtil.bcdToStr(zero[8]);
- byte[] balanceBytes = new byte[4];
- for (int i = 0; i < 4; i++) {
- balanceBytes[i] = zero[i + 9];
- }
- userCard.balance = HexUtil.get16to10(HexUtil.bytesToHex(balanceBytes));
-
- byte[] addressCodeBytes = new byte[6];
- addressCodeBytes[0] = zero[13];
- addressCodeBytes[1] = zero[14];
- addressCodeBytes[2] = two[11];
- addressCodeBytes[3] = two[12];
- addressCodeBytes[4] = two[13];
- addressCodeBytes[5] = two[14];
- userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
-
- int year = 0;
- int month = 0;
- int day = 0;
- int hour = 0;
- int minute = 0;
- int second = 0;
- for (int i = 0; i < 6; i++) {
- byte byteData = one[i + 4];
- switch (i) {
- case 0:
- year = getBcdToInt(byteData);
- break;
- case 1:
- month = getBcdToInt(byteData);
- break;
- case 2:
- day = getBcdToInt(byteData);
- break;
- case 3:
- hour = getBcdToInt(byteData);
- break;
- case 4:
- minute = getBcdToInt(byteData);
- break;
- case 5:
- second = getBcdToInt(byteData);
- break;
+ try {
+ UserCard userCard = new UserCard();
+ if (data != null) {
+ byte[] zero = data.get(0);
+ byte[] one = data.get(1);
+ byte[] two = data.get(2);
+ userCard.cardType = HexUtil.byteToHex(zero[0]);
+ userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
+ byte[] swipeNumberBytes = new byte[2];
+ swipeNumberBytes[0] = zero[2];
+ swipeNumberBytes[1] = zero[3];
+ String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
+ userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
+ byte[] electricityPriceBytes = new byte[4];
+ for (int i = 0; i < 4; i++) {
+ electricityPriceBytes[i] = zero[i + 4];
}
+ userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
+ userCard.state = BcdUtil.bcdToStr(zero[8]);
+ byte[] balanceBytes = new byte[4];
+ for (int i = 0; i < 4; i++) {
+ balanceBytes[i] = zero[i + 9];
+ }
+ userCard.balance = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(balanceBytes));
+
+ byte[] addressCodeBytes = new byte[6];
+ addressCodeBytes[0] = zero[13];
+ addressCodeBytes[1] = zero[14];
+ addressCodeBytes[2] = two[11];
+ addressCodeBytes[3] = two[12];
+ addressCodeBytes[4] = two[13];
+ addressCodeBytes[5] = two[14];
+ userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
+
+ int year = 0;
+ int month = 0;
+ int day = 0;
+ int hour = 0;
+ int minute = 0;
+ int second = 0;
+ for (int i = 0; i < 6; i++) {
+ byte byteData = one[i + 4];
+ switch (i) {
+ case 0:
+ year = getBcdToInt(byteData);
+ break;
+ case 1:
+ month = getBcdToInt(byteData);
+ break;
+ case 2:
+ day = getBcdToInt(byteData);
+ break;
+ case 3:
+ hour = getBcdToInt(byteData);
+ break;
+ case 4:
+ minute = getBcdToInt(byteData);
+ break;
+ case 5:
+ second = getBcdToInt(byteData);
+ break;
+ }
+ }
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(2000 + year, month, day, hour, minute, second);
+ byte[] initPeasantCodeBytes = new byte[16];
+ initPeasantCodeBytes[0] = one[10];
+ initPeasantCodeBytes[1] = one[11];
+ initPeasantCodeBytes[2] = one[12];
+ initPeasantCodeBytes[3] = one[13];
+ initPeasantCodeBytes[4] = one[14];
+ initPeasantCodeBytes[5] = two[0];
+ initPeasantCodeBytes[6] = two[1];
+ initPeasantCodeBytes[7] = two[2];
+ initPeasantCodeBytes[8] = two[3];
+ initPeasantCodeBytes[9] = two[4];
+ initPeasantCodeBytes[10] = two[5];
+ initPeasantCodeBytes[11] = two[6];
+ initPeasantCodeBytes[12] = two[7];
+ initPeasantCodeBytes[13] = two[8];
+ initPeasantCodeBytes[14] = two[9];
+ initPeasantCodeBytes[15] = two[10];
+ userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
+ return userCard;
}
- Calendar calendar = Calendar.getInstance();
- calendar.set(2000 + year, month, day, hour, minute, second);
- byte[] initPeasantCodeBytes = new byte[16];
- initPeasantCodeBytes[0] = one[10];
- initPeasantCodeBytes[1] = one[11];
- initPeasantCodeBytes[2] = one[12];
- initPeasantCodeBytes[3] = one[13];
- initPeasantCodeBytes[4] = one[14];
- initPeasantCodeBytes[5] = two[0];
- initPeasantCodeBytes[6] = two[1];
- initPeasantCodeBytes[7] = two[2];
- initPeasantCodeBytes[8] = two[3];
- initPeasantCodeBytes[9] = two[4];
- initPeasantCodeBytes[10] = two[5];
- initPeasantCodeBytes[11] = two[6];
- initPeasantCodeBytes[12] = two[7];
- initPeasantCodeBytes[13] = two[8];
- initPeasantCodeBytes[14] = two[9];
- initPeasantCodeBytes[15] = two[10];
- userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
- return userCard;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
}
return null;
}
--
Gitblit v1.8.0