From 1c549ae7af5f8d7bdeecb4ad38ab181af4831821 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 29 二月 2024 18:07:41 +0800
Subject: [PATCH] 添加齐河项目的卡结构
---
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 240 ++++++++++++++++++++++++-----------------------------------
1 files changed, 99 insertions(+), 141 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
index eef5996..bfd8072 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -2,14 +2,12 @@
import android.content.Intent;
import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
import android.text.TextUtils;
+import android.util.Log;
import android.view.LayoutInflater;
import android.widget.Toast;
import com.dayu.recharge.MyApplication;
-
import com.dayu.recharge.R;
import com.dayu.recharge.card.CleanCard;
import com.dayu.recharge.card.CleanUserCard;
@@ -31,7 +29,6 @@
import com.dayu.recharge.socketBean.BalanceSelecteRequestBean;
import com.dayu.recharge.socketBean.RechargeRequestBean;
import com.dayu.recharge.tools.BcdUtil;
-import com.dayu.recharge.tools.HexUtil;
import com.dayu.recharge.tools.NFCWriteHelper;
import com.dayu.recharge.tools.NfcReadHelper;
import com.dayu.recharge.tools.WriteCardUtils;
@@ -40,6 +37,7 @@
import com.dayu.recharge.utils.DateUtil;
import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.TipUtil;
import com.tencent.bugly.crashreport.CrashReport;
@@ -72,7 +70,7 @@
boolean configPowerFlag = false;
UserCardBean userCardBean;
-
+ UserCard olduserCard;
String morny;
String userName;
@@ -112,7 +110,6 @@
try {
binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
- initView();
nfcWreatActivity = this;
getData();
baseApp = (MyApplication) getApplication();
@@ -120,31 +117,6 @@
e.printStackTrace();
CrashReport.postCatchedException(e);
}
- }
-
- private void initView() {
- handler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
-
- case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
- binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
- binding.textView.setTextColor(getResources().getColor(R.color.red));
- stopAnim();
- break;
- case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
- saveData();
- break;
- default:
- stopAnim();
- TipUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
- break;
-
- }
- return false;
- }
- });
}
@@ -196,7 +168,7 @@
userName = this.getIntent().getStringExtra("userName");
binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�");
// 鍏呭�奸�昏緫
- recharge(userCard.getInitPeasantCode(), userName, "鍚敤");
+// recharge(userCard.getInitPeasantCode(), userName, "鍚敤");
}
try {
@@ -215,37 +187,23 @@
* 妫�娴嬫槸鍚︽槸鐢ㄦ埛鍗★紝鍋囧鏄敤鎴峰崱鐨勮瘽闇�瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗″亣濡傛槸鐢ㄦ埛鍗¢渶瑕�
*/
private void checkHasUser() {
- try {
- NfcReadHelper.getInstence(intent)
- .getData(1, 0, new NfcReadHelper.NFCCallByteback() {
- @Override
- public void callBack(byte[] data) {
- Message message = new Message();
- String type = HexUtil.byteToHex(data[0]).toUpperCase();
- switch (type) {
- case "A1":
- case "A8":
- case "A2":
- message.what = HAS_USER;
- break;
- default:
- message.what = NO_USER;
- break;
- }
- handler.sendMessage(message);
- }
- @Override
- public void error(int code) {
- Message message = new Message();
- message.what = code;
- handler.sendMessage(message);
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- CrashReport.postCatchedException(e);
+ String cardType = NfcReadHelper.getInstence(intent, this).getCradType();
+ Log.i("NFCWreatActivity", "cardType=" + cardType);
+ if (cardType.equals(MyCommon.USER_CARD_TYPE_1) ||
+ cardType.equals(MyCommon.USER_CARD_TYPE_2) ||
+ cardType.equals(MyCommon.USER_CARD_TYPE_3)
+ ) {
+ binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
+ binding.textView.setTextColor(getResources().getColor(R.color.red));
+ } else if (cardType.equals("-1")) {
+ TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+ } else {
+ Log.i("NFCWreatActivity", "olduserCard!=null saveData");
+ saveData();
}
+
+ stopAnim();
}
@@ -258,7 +216,8 @@
|| configureDeviceRegistrationCrad != null
|| configurationPowerCard != null) {
if (userCard != null && TextUtils.isEmpty(morny)) {
- userFlag = WriteCardUtils.setUser(intent, userCard);
+
+ userFlag = WriteCardUtils.setUser(intent, userCard, this);
}
if (cleanCard != null) {
setClean(intent, cleanCard);
@@ -290,11 +249,9 @@
//鐢ㄦ埛鍗�
startDetailActivity(userCardBean.getUserName(), "鍚敤");
} else if (!TextUtils.isEmpty(morny)) {
- NFCWreatActivity.this.finish();
- TipUtil.show("鍏呭�兼垚鍔�");
+ TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish());
} else {
- NFCWreatActivity.this.finish();
- TipUtil.show("鍐欏崱鎴愬姛");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish());
}
} catch (Exception e) {
@@ -302,14 +259,10 @@
CrashReport.postCatchedException(e);
}
} else {
- TipUtil.show("鍐欏崱澶辫触");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
}
stopAnim();
- }
-// else if (!TextUtils.isEmpty(morny)) {
-//
-// }
- else if (userCard == null && userCardBean != null) {
+ } else if (userCard == null && userCardBean != null) {
//琛ュ崱閫昏緫
selectBalance(userCardBean.getInitPeasantCode());
} else {
@@ -328,6 +281,7 @@
try {
this.intent = intent;
startAnim();
+ Log.i("NFCWreatActivity", "isUser:" + isUser);
if (isUser) {
checkHasUser();
} else if (isRecharge) {
@@ -419,27 +373,27 @@
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);
//00鍚敤01绂佺敤02闅跺睘淇℃伅涓嶇03鏃犳鍗′俊鎭�04鍏跺畠
if ("00".equalsIgnoreCase(state)) {
- rechargeIsOk = true;
- binding.cardData.setText("鍏呭�奸�氫俊瀹屾垚锛岃甯栧崱鍏呭��");
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setMorny(morny);
- rechargeBean.setUserName(name);
-
- rechargeBean.setSerial(adminData.getSerial());
- userCard.setRechargeDate(Calendar.getInstance());
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
- rechargeBean.setInitPeasantCode(initPeasantCode);
- rechargeBean.setOrderID(orderId);
- try {
- baseDao.rechargeDao().insert(rechargeBean);
- } catch (Exception e) {
- e.printStackTrace();
- }
- userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
+// rechargeIsOk = true;
+// binding.cardData.setText("鍏呭�奸�氫俊瀹屾垚锛岃甯栧崱鍏呭��");
+// rechargeBean = new RechargeBean();
+// rechargeBean.setDate(System.currentTimeMillis());
+// rechargeBean.setMorny(morny);
+// rechargeBean.setUserName(name);
+//
+// rechargeBean.setSerial(adminData.getSerial());
+// userCard.setRechargeDate(Calendar.getInstance());
+// rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
+// rechargeBean.setInitPeasantCode(initPeasantCode);
+// rechargeBean.setOrderID(orderId);
+// try {
+// baseDao.rechargeDao().insert(rechargeBean);
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
} else if ("01".equalsIgnoreCase(state)) {
- userCard.setState("01");
- userFlag = WriteCardUtils.setUser(intent, userCard);
+// userCard.setState("01");
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
NFCWreatActivity.this.finish();
TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
} else if ("02".equalsIgnoreCase(state)) {
@@ -475,29 +429,29 @@
//寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
private void rechargeWrratCard() {
- UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData();
+ UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData();
if (userCardold != null) {
//鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
- if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
- userCard.setState("00");
- userFlag = WriteCardUtils.setUser(intent, userCard);
- // 鎵撳嵃鐩稿叧
- if (userFlag) {
- setPrinterData(rechargeBean);
- startDetailActivity(userName, "鍚敤");
- } else {
- TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
- }
- } else {
- TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
- }
+// if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
+// userCard.setState("00");
+// userFlag = WriteCardUtils.setUser(intent, userCard, this);
+// // 鎵撳嵃鐩稿叧
+// if (userFlag) {
+// setPrinterData(rechargeBean);
+// startDetailActivity(userName, "鍚敤");
+// } else {
+// TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
+// }
+// } else {
+// TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
+// }
} else {
}
}
private void setmanageCard(Intent intent, final ManageCard manageCard) {
- manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0);
+ manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(), 1, 0);
}
/**
@@ -507,7 +461,7 @@
* @param clearOrInitCard
*/
private void setClean(Intent intent, final CleanCard clearOrInitCard) {
- cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0);
+ cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(), 1, 0);
}
@@ -518,7 +472,7 @@
* @param registeredCard
*/
private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
- registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
+ registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(), 1, 0);
}
/**
@@ -528,7 +482,7 @@
* @param cleanUserCard
*/
private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
- cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
+ cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(), 1, 0);
}
/**
@@ -539,15 +493,15 @@
*/
private void setDomainCard(Intent intent, DomainCard domainCard) {
try {
- domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0);
if (!domainCrdFlag) {
return;
}
- domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1);
if (!domainCrdFlag) {
return;
}
- domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2);
+ domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2);
} catch (Exception e) {
domainCrdFlag = false;
throw new RuntimeException(e);
@@ -555,17 +509,17 @@
}
private void setTestCard(Intent intent, TestCard testCard) {
- testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
+ testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(), 1, 0);
}
private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
- configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
+ configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
}
private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
try {
- configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0);
+ configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(), 1, 0);
} catch (Exception e) {
configPowerFlag = false;
throw new RuntimeException(e);
@@ -610,28 +564,25 @@
@Override
public void onSocketResponse(SocketData readData) {
if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-
StringBuffer stateText = null;
-
try {
stateText = new StringBuffer();
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
if (userCard == null) {
userCard = new UserCard();
- userCard.setRechargeTimes(0);
-
- ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
- if (electricPriceBean != null) {
- userCard.setElectricityPrice(electricPriceBean.getPrice());
- } else {
- //榛樿鏄�1鍏�
- userCard.setElectricityPrice(1.000f);
- }
- userCard.setSwipeNumber((short) 0);
- userCard.setState("00");
- userCard.setBalance(0);
- userCard.setAddressCode(adminData.getAddressCode());
- userCard.setInitPeasantCode(initPeasantCode);
+// userCard.setRechargeTimes(0);
+// ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
+// if (electricPriceBean != null) {
+// userCard.setElectricityPrice(electricPriceBean.getPrice());
+// } else {
+// //榛樿鏄�1鍏�
+// userCard.setElectricityPrice(1.000f);
+// }
+// userCard.setSwipeNumber((short) 0);
+// userCard.setState("00");
+// userCard.setBalance(0);
+// userCard.setAddressCode(adminData.getAddressCode());
+// userCard.setInitPeasantCode(initPeasantCode);
}
//鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
//閲戦
@@ -642,21 +593,24 @@
String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
if ("00".equals(state)) {
stateText.append("鍚敤");
- userCard.setBalance(balance);
- userCard.setState("00");
+// userCard.setBalance(balance);
+// userCard.setState("00");
//琛ュ崱閫昏緫
- userFlag = WriteCardUtils.setUser(intent, userCard);
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
if (userFlag) {
- NFCWreatActivity.this.finish();
- TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
+ TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", new TipUtil.TipListener() {
+ @Override
+ public void onCancle() {
+ NFCWreatActivity.this.finish();
+ }
+ });
}
return;
} else if ("01".equals(state)) {
stateText.append("绂佺敤");
- userCard.setState("01");
- userCard.setBalance(balance);
- userFlag = WriteCardUtils.setUser(intent, userCard);
-
+// userCard.setState("01");
+// userCard.setBalance(balance);
+ userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this);
startDetailActivity(name, stateText.toString());
} else if ("02".equals(state)) {
@@ -692,4 +646,8 @@
}
+ protected void onDestroy() {
+ super.onDestroy();
+ nfcWreatActivity = null;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0