From d09bdcac6830afaad6e277fb558c16d2aa6187a7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 十二月 2023 11:13:21 +0800
Subject: [PATCH] 卡标识码列表功能相关,可分辨设置不同类型卡标识码
---
app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 150 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
index 15c2542..5895e71 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -10,9 +10,23 @@
import android.widget.EditText;
import com.dayu.recharge.databinding.ActivityRechargeBinding;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.net.SocketCallBack;
+import com.dayu.recharge.net.SocketData;
+import com.dayu.recharge.net.SocketNet;
+import com.dayu.recharge.socketBean.BalanceSelecteRequestBean;
+import com.dayu.recharge.tools.BcdUtil;
+import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.WriteCardUtils;
+import com.dayu.recharge.utils.CRC8;
+import com.dayu.recharge.utils.DeviceNumberUtils;
+import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.SocketUtil;
+import com.dayu.recharge.utils.TipUtil;
+import com.dayu.recharge.view.ProgressDialog;
import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.Arrays;
/**
@@ -21,11 +35,16 @@
* Date: 2023-11-5 09:52
* Description: 鍏呭�肩晫闈�
*/
-public class RechargeActivity extends BaseActivity {
+public class RechargeActivity extends BaseNfcActivity {
+ Intent intent;
+ boolean userFlag;
ActivityRechargeBinding binding;
public static RechargeActivity rechargeActivity;
+
+ AdminDataBean adminData;
+ String userName;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -42,28 +61,57 @@
}
}
+ public void onNewIntent(Intent intent) {
+
+ try {
+ this.intent = intent;
+ userCard = NfcReadHelper.getInstence(intent).getUserCardData();
+ if (userCard != null) {
+ ProgressDialog.show(this);
+ selectBalance(userCard.getInitPeasantCode());
+ } else {
+ TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触");
+ }
+
+// readAllData(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+ super.onNewIntent(intent);
+ }
+
private void initView() {
+ try {
+ adminData = baseDao.adminDao().findFirst();
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
binding.rechargeRegistBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String morny = binding.rechargeWater.getText().toString();
if (!TextUtils.isEmpty(morny)) {
- String initCode = WSHelper.getInstance(RechargeActivity.this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
if (TextUtils.isEmpty(initCode)) {
- ToastUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
-// return;
+ TipUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
+ return;
}
Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
intent.putExtra("morny", morny);
+ intent.putExtra("userName", userName);
+ intent.putExtra("userCard", userCard);
startActivity(intent);
} else {
- ToastUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+ TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
}
}
});
}
+ //鏍¢獙閲戦
public static void setPricePoint(final EditText editText) {
editText.addTextChangedListener(new TextWatcher() {
@Override
@@ -72,7 +120,7 @@
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {
s = s.toString().subSequence(0,
- s.toString().indexOf(".") + 2);
+ s.toString().indexOf(".") + 3);
editText.setText(s);
editText.setSelection(s.length());
}
@@ -109,5 +157,99 @@
}
+ /**
+ * 鏌ヨ浣欓
+ *
+ * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
+ */
+ private void selectBalance(String initPeasantCode) {
+ try {
+ BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
+ requestBean.setAFN("94");
+ requestBean.setControl("01");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
+ requestBean.setInitCode(initCode);
+ requestBean.setInitPeasantCode(initPeasantCode);
+ requestBean.setXuLie(SocketUtil.getXuLie(this));
+ SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() {
+ @Override
+ public void onSocketResponse(SocketData readData) {
+ ProgressDialog.dismiss();
+ 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
+ int balance = 0;
+ try {
+ //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ binding.rechargeLL.setVisibility(View.VISIBLE);
+ binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
+ binding.rechargeReadLL.setVisibility(View.GONE);
+ binding.rechargeTextLL.setVisibility(View.VISIBLE);
+ binding.userName.setText(userName);
+ binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance));
+ binding.redStatu.setText(stateText.toString());
+ binding.redInitCode.setText(initPeasantCode);
+
+ if ("00".equals(state)) {
+ binding.rechargeRegistBtn.setVisibility(View.VISIBLE);
+ stateText.append("鍚敤");
+ userCard.setState("00");
+ userCard.setBalance(balance);
+ binding.redStatu.setText(stateText.toString());
+ return;
+ } else if ("01".equals(state)) {
+ stateText.append("璇ュ崱宸茶绂佺敤");
+ userCard.setState("01");
+ userCard.setBalance(balance);
+ userFlag = WriteCardUtils.setUser(intent, userCard);
+ } else if ("02".equals(state)) {
+ stateText.append("闅跺睘淇℃伅涓嶇");
+ } else if ("03".equals(state)) {
+ stateText.append("鏃犳鍗′俊鎭�");
+ } else if ("04".equals(state)) {
+ stateText.append("鍏跺畠");
+ }
+ binding.redStatu.setText(stateText.toString());
+ binding.rechargeLL.setVisibility(View.GONE);
+ binding.rechargeRegistBtn.setVisibility(View.GONE);
+ binding.rechargeRegistBtn.setVisibility(View.GONE);
+ TipUtil.show(RechargeActivity.this, stateText.toString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ //鏍¢獙CRC閿欒
+ TipUtil.show(RechargeActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+ }
+ }
+
+ @Override
+ public void onSocketError(int code, String msg) {
+ ProgressDialog.dismiss();
+ TipUtil.show(RechargeActivity.this, msg);
+ }
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ CrashReport.postCatchedException(e);
+ }
+
+ }
+
+ protected void onDestroy() {
+ super.onDestroy();
+ rechargeActivity = null;
+ }
}
--
Gitblit v1.8.0