From 1ffa3cb19f95855d44fbc9485f4eb3286b12e359 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 22 十一月 2023 12:43:17 +0800
Subject: [PATCH] 修改提示方式 修改充值流程
---
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java | 242 +++++++++++++++++++++++++++++++----------------
1 files changed, 158 insertions(+), 84 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
index c524104..6c9fe1d 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -5,15 +5,14 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import com.dayu.recharge.card.ConfigurationPowerCard;
+import com.dayu.recharge.card.DomainCard;
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityRedCardBinding;
-import com.dayu.recharge.dbBean.RechargeBean;
-import com.dayu.recharge.dbBean.UserCardBean;
import com.dayu.recharge.net.SocketCallBack;
import com.dayu.recharge.net.SocketData;
import com.dayu.recharge.net.SocketNet;
@@ -21,13 +20,16 @@
import com.dayu.recharge.tools.BcdUtil;
import com.dayu.recharge.tools.HexUtil;
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.MyCommon;
import com.dayu.recharge.utils.SocketUtil;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.utils.TipUtil;
import java.util.Arrays;
+import java.util.Calendar;
import java.util.List;
import java.util.Map;
@@ -41,14 +43,22 @@
private static final int USER_CRAD = 1;
private static final int MANAGE_CRAD = 2;
+ private static final int CLEAN_CARD = 3;
+ private static final int REGISTERED_CARD = 4;
+ private static final int CLEAN_ALL_USER = 5;
+ private static final int DOMAIN_CARD = 6;
+ private static final int TEST_CARD = 7;
+
+ private static final int CONFIGURATION_CARD = 8;
+
+ private static final int CONFIGURATION_POWER_CARD = 9;
+ private static final int PASS_WORD_CRAD = 10;
- private static final int ERROR = -1;
- UserCard userCard;
- UserCardBean waterCard;
- RechargeBean rechargeBean;
- // 鍐滄埛娉ㄥ唽缂栧彿
+ volatile UserCard userCard;
ActivityRedCardBinding redCardBinding;
+
+ Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -57,22 +67,36 @@
setContentView(redCardBinding.getRoot());
}
- private void setData(String statu) {
- String initCode = WSHelper.getInstance(this).get("initCode", "");
- if (TextUtils.isEmpty(initCode)) {
- ToastUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
- return;
- }
-// redCardBinding.redVillageNum.setText("璁惧搴忓垪鍙凤細" + initS.getANo() + "");
- redCardBinding.redName.setText("鐢� 鎴� 鍚嶏細" + rechargeBean.getUserName());
- redCardBinding.redRemainderMorny.setText("鍓╀綑閲戦锛�" + rechargeBean.getBalance() + "" + "鍏�");
- redCardBinding.redStatu.setText("鐘� 鎬侊細" + statu);
+ private void setUserData(String userName, int blance, String statu) {
+ viweGone(true);
+ redCardBinding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName);
+ redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(blance) + "鍏�");
+ redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu);
+ if (userCard != null) {
+ redCardBinding.redInitCode.setText("鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + userCard.getInitPeasantCode());
+ Calendar calendar = userCard.getRechargeDate();
+ if (calendar != null) {
+ int year = calendar.get(Calendar.YEAR);
+ int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+ int day = calendar.get(Calendar.DAY_OF_MONTH);
+ int hour = calendar.get(Calendar.HOUR_OF_DAY);
+ int minute = calendar.get(Calendar.MINUTE);
+ int second = calendar.get(Calendar.SECOND);
+ redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day + " " + hour + ":" + minute + ":" + second);
+ } else {
+ redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
+ }
+
+ redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + "");
+ }
}
@Override
public void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ this.intent = intent;
startAnim();
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
readAllData(intent);
@@ -82,7 +106,8 @@
/**
* 璇诲彇鍏ㄩ儴鏁版嵁
*/
- private void readAllData(Intent intent) {
+
+ public void readAllData(Intent intent) {
NfcReadHelper.getInstence(intent)
.getAllData(new NfcReadHelper.NFCCallListback() {
@Override
@@ -93,22 +118,52 @@
if (oneSector != null && oneSector.size() > 0) {
byte cardType = oneSector.get(0)[0];
String cardTypeStr = HexUtil.byteToHex(cardType);
-// switch (cardTypeStr){
-// case
-// }
+ switch (cardTypeStr) {
+ case MyCommon.USER_CARD_TYPE_1:
+ case MyCommon.USER_CARD_TYPE_2:
+ case MyCommon.USER_CARD_TYPE_3:
userCard = UserCard.getBean(oneSector);
- message.what = USER_CRAD;
+ message.what = USER_CRAD;
+ break;
+ case MyCommon.MANAGE_CRAD:
+ message.what = MANAGE_CRAD;
+ break;
+ case MyCommon.CLEAN_CARD_TYPE:
+ message.what = CLEAN_CARD;
+ break;
+ case MyCommon.REGISTERED_CARD_TYPE:
+ message.what = REGISTERED_CARD;
+ break;
+ case MyCommon.CLEAN_ALL_USER_CARD_TYPE:
+ message.what = CLEAN_ALL_USER;
+ break;
+ case MyCommon.DOMAIN_CARD_TYPE:
+ message.what = DOMAIN_CARD;
+ message.obj = oneSector;
+ break;
+ case MyCommon.TEST_CARD_TYPE:
+ message.what = TEST_CARD;
+ break;
+ case MyCommon.CONFIGURATION_CARD_TYPE:
+ message.what = CONFIGURATION_CARD;
+ break;
+ case MyCommon.CONFIGURATION_POWER_CARD_TYPE:
+ message.what = CONFIGURATION_POWER_CARD;
+ message.obj = oneSector.get(0);
+ break;
+ }
+
} else {
- message.what = ERROR;
+ message.what = MyCommon.ERROR;
}
handler.sendMessage(message);
}
@Override
- public void error() {
+ public void error(int code) {
Message message = new Message();
- message.what = ERROR;
+ message.what = code;
handler.sendMessage(message);
}
});
@@ -119,63 +174,83 @@
public boolean handleMessage(Message msg) {
switch (msg.what) {
case USER_CRAD:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.VISIBLE);
- redCardBinding.readSysLL.setVisibility(View.GONE);
- redCardBinding.readCleanLL.setVisibility(View.GONE);
- redCardBinding.readInitLL.setVisibility(View.GONE);
-// selectBalance(newUserCard.getPeasantCode());
+ selectBalance(userCard.getInitPeasantCode());
break;
case MANAGE_CRAD:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.GONE);
- redCardBinding.readSysLL.setVisibility(View.VISIBLE);
- redCardBinding.readCleanLL.setVisibility(View.GONE);
- redCardBinding.readInitLL.setVisibility(View.GONE);
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
stopAnim();
break;
- case 3:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.GONE);
- redCardBinding.readSysLL.setVisibility(View.GONE);
- redCardBinding.readCleanLL.setVisibility(View.VISIBLE);
- redCardBinding.readInitLL.setVisibility(View.GONE);
+ case CLEAN_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
stopAnim();
break;
- case 4:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.GONE);
- redCardBinding.readSysLL.setVisibility(View.GONE);
- redCardBinding.readCleanLL.setVisibility(View.GONE);
- redCardBinding.readInitLL.setVisibility(View.VISIBLE);
+ case REGISTERED_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
stopAnim();
break;
- case 5:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.GONE);
- redCardBinding.readSysLL.setVisibility(View.GONE);
- redCardBinding.readCleanLL.setVisibility(View.GONE);
- redCardBinding.readInitLL.setVisibility(View.VISIBLE);
- redCardBinding.readInitLL.setText("褰撳墠涓鸿鏀垮尯鍩熷崱");
+ case CLEAN_ALL_USER:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
stopAnim();
break;
- case 6:
- redCardBinding.readImgLL.setVisibility(View.GONE);
- redCardBinding.readUserLL.setVisibility(View.GONE);
- redCardBinding.readSysLL.setVisibility(View.GONE);
- redCardBinding.readCleanLL.setVisibility(View.GONE);
- redCardBinding.readInitLL.setVisibility(View.VISIBLE);
- redCardBinding.readInitLL.setText("褰撳墠涓鸿澶囧簭鍙峰崱");
+ case DOMAIN_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
+ List<byte[]> data = (List<byte[]>) msg.obj;
+ DomainCard domainCard = DomainCard.toBean(data);
+ redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
stopAnim();
+ break;
+ case TEST_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
+ stopAnim();
+ break;
+ case CONFIGURATION_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
+ stopAnim();
+ break;
+ case CONFIGURATION_POWER_CARD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
+ byte[] powerData = (byte[]) msg.obj;
+ ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(powerData);
+ redCardBinding.readCardDataTV.setText(powerCard.getPower());
+ stopAnim();
+ break;
+ case PASS_WORD_CRAD:
+ viweGone(false);
+ redCardBinding.readCardTypeTV.setText("褰撳墠涓哄瘑鐮佸崱");
+ stopAnim();
+ break;
+ case MyCommon.ERROR_MOVE:
+ stopAnim();
+ TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
break;
default:
- ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏈敞鍐�");
+ TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
stopAnim();
+ break;
}
-
return false;
}
});
+
+ private void viweGone(boolean isUSerCard) {
+ redCardBinding.readImgLL.setVisibility(View.GONE);
+ if (isUSerCard) {
+ redCardBinding.readCardTypeLL.setVisibility(View.GONE);
+ redCardBinding.readUserLL.setVisibility(View.VISIBLE);
+ } else {
+ redCardBinding.readCardTypeLL.setVisibility(View.VISIBLE);
+ redCardBinding.readUserLL.setVisibility(View.GONE);
+ }
+
+ }
void startAnim() {
redCardBinding.avi.setVisibility(View.VISIBLE);
@@ -192,11 +267,10 @@
* @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
*/
private void selectBalance(String initPeasantCode) {
-
BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
requestBean.setAFN("94");
requestBean.setControl("01");
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
requestBean.setInitCode(initCode);
requestBean.setInitPeasantCode(initPeasantCode);
requestBean.setXuLie(SocketUtil.getXuLie(this));
@@ -209,11 +283,23 @@
try {
stateText = new StringBuffer();
-// stateText.append("鐘� 鎬侊細");
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ int balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ setUserData(name, balance, stateText.toString());
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
if ("00".equals(state)) {
+ userCard.setBalance(balance);
+ userCard.setState("00");
+ WriteCardUtils.setUser(intent, userCard);
stateText.append("鍚敤");
} else if ("01".equals(state)) {
+ userCard.setBalance(balance);
+ userCard.setState("01");
+ WriteCardUtils.setUser(intent, userCard);
stateText.append("绂佺敤");
} else if ("02".equals(state)) {
stateText.append("闅跺睘淇℃伅涓嶇");
@@ -222,34 +308,22 @@
} else if ("04".equals(state)) {
stateText.append("鍏跺畠");
}
- //閲戦
- byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
- int balance = SocketUtil.get16to10LowHigh(blanceByte);
- //濮撳悕
- byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
- String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setUserName(name);
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance) + "");
-// rechargeBean.setTotal_morn(ArithUtil.changeF2Y(userCard.getValue() + ""));
- setData(stateText.toString());
stopAnim();
} catch (Exception e) {
e.printStackTrace();
}
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+ TipUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
}
stopAnim();
}
@Override
public void onSocketError(int code, String msg) {
- ToastUtil.show(ReadCardAcitivy.this, msg);
+ TipUtil.show(ReadCardAcitivy.this, msg);
}
});
--
Gitblit v1.8.0