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/NFCWreatActivity.java | 458 +++++++++++++++++++++-----------------------------------
1 files changed, 174 insertions(+), 284 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 5355d4f..d902320 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -5,7 +5,9 @@
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;
@@ -21,7 +23,6 @@
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityWriteTextBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.ElectricPriceBean;
import com.dayu.recharge.dbBean.RechargeBean;
import com.dayu.recharge.dbBean.UserCardBean;
@@ -34,20 +35,19 @@
import com.dayu.recharge.tools.HexUtil;
import com.dayu.recharge.tools.NFCWriteHelper;
import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.WriteCardUtils;
import com.dayu.recharge.utils.AidlUtil;
import com.dayu.recharge.utils.CRC8;
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.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.utils.TipUtil;
import com.tencent.bugly.crashreport.CrashReport;
import java.util.Arrays;
import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
/**
* Copyright (C), 2023,
@@ -57,21 +57,6 @@
*/
public class NFCWreatActivity extends BaseNfcActivity {
-
- /**
- * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
- */
- public final static int HAS_USER = 1;
- /**
- * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭�
- */
- public final static int NO_USER = 2;
- /**
- * 鍏呭��
- */
- public final static int RECHARGE = 3;
-
- public final static int ERROR = -1;
boolean cleanFlag = false;
boolean userFlag = false;
@@ -89,9 +74,10 @@
boolean configPowerFlag = false;
UserCardBean userCardBean;
-
+ UserCard olduserCard;
String morny;
+ String userName;
AdminDataBean adminData;
RechargeBean rechargeBean;
Intent intent;
@@ -99,7 +85,6 @@
RegisteredCard registeredCard;
CleanUserCard cleanUserCard;
- volatile UserCard userCard;
ManageCard manageCard;
DomainCard domainCard;
@@ -116,6 +101,11 @@
* 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
*/
boolean isUser = false;//
+
+ //鏄惁鏄厖鍊艰繃绋�
+ boolean isRecharge = false;
+ //鍏呭�奸�氫俊鏄惁瀹屾垚
+ boolean rechargeIsOk = false;
ActivityWriteTextBinding binding;
@Override
@@ -124,7 +114,6 @@
try {
binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
-
nfcWreatActivity = this;
getData();
baseApp = (MyApplication) getApplication();
@@ -139,7 +128,6 @@
try {
if (this.getIntent().hasExtra("userCard")) {
userCard = (UserCard) this.getIntent().getSerializableExtra("userCard");
- isUser = true;
}
if (this.getIntent().hasExtra("cleanCard")) {
cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard");
@@ -155,6 +143,7 @@
}
if (this.getIntent().hasExtra("dbUserCard")) {
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
+ isUser = true;
}
if (this.getIntent().hasExtra("cleanUserCard")) {
cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
@@ -177,8 +166,13 @@
binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�");
}
if (this.getIntent().hasExtra("morny")) {
+ startAnim();
+ isRecharge = true;
morny = this.getIntent().getStringExtra("morny");
+ userName = this.getIntent().getStringExtra("userName");
binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�");
+ // 鍏呭�奸�昏緫
+ recharge(userCard.getInitPeasantCode(), userName, "鍚敤");
}
try {
@@ -197,37 +191,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).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();
}
@@ -239,8 +219,9 @@
|| domainCard != null || testCard != null
|| configureDeviceRegistrationCrad != null
|| configurationPowerCard != null) {
- if (userCard != null) {
- setUser(intent, userCard);
+ if (userCard != null && TextUtils.isEmpty(morny)) {
+
+ userFlag = WriteCardUtils.setUser(intent, userCard);
}
if (cleanCard != null) {
setClean(intent, cleanCard);
@@ -269,19 +250,22 @@
if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
try {
if (userFlag && userCardBean != null) {
-
- ToastUtil.show(this, "娉ㄥ唽鎴愬姛");
- NFCWreatActivity.this.finish();
- if (NewCardActivity.newCardActivity != null) {
- NewCardActivity.newCardActivity.finish();
- }
-
+ //鐢ㄦ埛鍗�
+ startDetailActivity(userCardBean.getUserName(), "鍚敤");
} else if (!TextUtils.isEmpty(morny)) {
- NFCWreatActivity.this.finish();
- ToastUtil.show(this, "鍏呭�兼垚鍔�");
+ TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", new TipUtil.TipListener() {
+ @Override
+ public void onCancle() {
+ NFCWreatActivity.this.finish();
+ }
+ });
} else {
- NFCWreatActivity.this.finish();
- ToastUtil.show(this, "鍐欏崱鎴愬姛");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", new TipUtil.TipListener() {
+ @Override
+ public void onCancle() {
+ NFCWreatActivity.this.finish();
+ }
+ });
}
} catch (Exception e) {
@@ -289,17 +273,15 @@
CrashReport.postCatchedException(e);
}
} else {
- ToastUtil.show(this, "鍐欏崱澶辫触");
+ TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
}
stopAnim();
- } else if (!TextUtils.isEmpty(morny)) {
- readAllData(intent);
} else if (userCard == null && userCardBean != null) {
//琛ュ崱閫昏緫
selectBalance(userCardBean.getInitPeasantCode());
} else {
stopAnim();
- ToastUtil.show(this, "鍙傛暟閿欒");
+ TipUtil.show(this, "鍙傛暟閿欒");
}
} catch (Exception e) {
e.printStackTrace();
@@ -309,11 +291,20 @@
@Override
public void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
try {
this.intent = intent;
startAnim();
+ Log.i("NFCWreatActivity", "isUser:" + isUser);
if (isUser) {
checkHasUser();
+ } else if (isRecharge) {
+ if (rechargeIsOk) {
+ rechargeWrratCard();
+ } else {
+ Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
+ }
+
} else {
saveData();
}
@@ -322,65 +313,6 @@
CrashReport.postCatchedException(e);
}
}
-
-
- /**
- * 璇诲彇鍏ㄩ儴鏁版嵁
- */
- private void readAllData(Intent intent) {
- try {
- NfcReadHelper.getInstence(intent)
- .getAllData(new NfcReadHelper.NFCCallListback() {
- @Override
- public void callBack(Map<String, List<byte[]>> data) {
- Message message = new Message();
-// 鑾峰彇1鎵囧尯鏁版嵁
- List<byte[]> oneSector = data.get("1");
- if (oneSector != null && oneSector.size() > 0) {
- userCard = UserCard.getBean(oneSector);
- message.what = RECHARGE;
- } else {
- message.what = ERROR;
- }
- handler.sendMessage(message);
- }
-
- @Override
- public void error(int code) {
- Message message = new Message();
- message.what = ERROR;
- handler.sendMessage(message);
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- CrashReport.postCatchedException(e);
- }
- }
-
- Handler handler = new Handler(new Handler.Callback() {
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
-
- case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
- ToastUtil.show(NFCWreatActivity.this, "璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
- break;
- case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
- saveData();
- break;
- case RECHARGE://鍏呭�兼祦绋�
- selectBalance(userCard.getInitPeasantCode());
- break;
- default:
- stopAnim();
- ToastUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
- break;
-
- }
- return false;
- }
- });
/**
@@ -426,7 +358,7 @@
//鍏呭�间笂浼狅紙Socket锛�
- private void recharge(String initPeasantCode) {
+ private void recharge(String initPeasantCode, String name, String statu) {
try {
RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
rechargeRequestBean.setControl("01");
@@ -436,46 +368,61 @@
rechargeRequestBean.setAFN("95");
rechargeRequestBean.setInitPeasantCode(initPeasantCode);
rechargeRequestBean.setBalance(morny);
+
rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this));
SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() {
@Override
public void onSocketResponse(SocketData readData) {
+ //閲戦
+ byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+ int balance = SocketUtil.get16to10LowHigh(blanceByte);
+ //濮撳悕
+ byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+ userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+ byte[] orderByte = Arrays.copyOfRange(readData.getBodyBytes(), 19, 27);
+ String orderId = BcdUtil.bcdToStr(orderByte);
if (CRC8.isCRC8(readData.getOriginDataBytes())) {
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));
+ rechargeBean.setInitPeasantCode(initPeasantCode);
+ rechargeBean.setOrderID(orderId);
try {
baseDao.rechargeDao().insert(rechargeBean);
} catch (Exception e) {
e.printStackTrace();
}
userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
- setUser(intent, userCard);
- // 鎵撳嵃鐩稿叧
- setPrinterData(rechargeBean);
- ToastUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛");
- RechargeActivity.rechargeActivity.finish();
- NFCWreatActivity.nfcWreatActivity.finish();
} else if ("01".equalsIgnoreCase(state)) {
+ userCard.setState("01");
+ userFlag = WriteCardUtils.setUser(intent, userCard);
NFCWreatActivity.this.finish();
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-绂佺敤");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
} else if ("02".equalsIgnoreCase(state)) {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
NFCWreatActivity.this.finish();
} else if ("03".equalsIgnoreCase(state)) {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
NFCWreatActivity.this.finish();
} else {
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
+ TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
NFCWreatActivity.this.finish();
}
-
-
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
+ TipUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
NFCWreatActivity.this.finish();
}
stopAnim();
@@ -484,7 +431,7 @@
@Override
public void onSocketError(int code, String msg) {
stopAnim();
- ToastUtil.show(NFCWreatActivity.this, msg);
+ TipUtil.show(NFCWreatActivity.this, msg);
}
});
} catch (Exception e) {
@@ -494,13 +441,31 @@
}
- private void setmanageCard(Intent intent, final ManageCard manageCard) {
- NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- manageCardFlag = flag;
+ //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
+ private void rechargeWrratCard() {
+ UserCard userCardold = NfcReadHelper.getInstence(intent).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, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
}
- });
+ } else {
+
+ }
+ }
+
+ private void setmanageCard(Intent intent, final ManageCard manageCard) {
+ manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0);
}
/**
@@ -510,41 +475,9 @@
* @param clearOrInitCard
*/
private void setClean(Intent intent, final CleanCard clearOrInitCard) {
- NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- cleanFlag = flag;
- }
- });
+ cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0);
}
- //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅
- private void setUser(Intent intent, UserCard userCard) {
- NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- if (!userFlag) {
- return;
- }
- NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- if (!userFlag) {
- return;
- }
- NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- }
/**
* 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -553,12 +486,7 @@
* @param registeredCard
*/
private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
- NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- registeredFlag = flag;
- }
- });
+ registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
}
/**
@@ -568,12 +496,7 @@
* @param cleanUserCard
*/
private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
- NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- cleanUserCardFlag = flag;
- }
- });
+ cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
}
/**
@@ -584,30 +507,15 @@
*/
private void setDomainCard(Intent intent, DomainCard domainCard) {
try {
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
if (!domainCrdFlag) {
return;
}
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
if (!domainCrdFlag) {
return;
}
- NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- domainCrdFlag = flag;
- }
- });
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2);
} catch (Exception e) {
domainCrdFlag = false;
throw new RuntimeException(e);
@@ -615,38 +523,41 @@
}
private void setTestCard(Intent intent, TestCard testCard) {
- NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- testCardFlag = flag;
- }
- });
+ testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
}
private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
- NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- configDeviceRegiestFlag = flag;
- }
- });
+ configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
}
private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
try {
- NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- configPowerFlag = flag;
- }
- });
+ configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0);
} catch (Exception e) {
configPowerFlag = false;
throw new RuntimeException(e);
}
}
+
+ private void startDetailActivity(String userName, String statu) {
+ Intent detail = new Intent(this, RechargeDetail.class);
+ detail.putExtra("userName", userName);
+ detail.putExtra("statu", statu);
+ detail.putExtra("userCard", userCard);
+ if (!TextUtils.isEmpty(morny)) {
+ detail.putExtra("morny", morny);
+ }
+ startActivity(detail);
+ if (NewCardActivity.newCardActivity != null) {
+ NewCardActivity.newCardActivity.finish();
+ }
+ if (RechargeActivity.rechargeActivity != null) {
+ RechargeActivity.rechargeActivity.finish();
+ }
+ NFCWreatActivity.nfcWreatActivity.finish();
+ }
/**
* 鏌ヨ浣欓
@@ -667,17 +578,13 @@
@Override
public void onSocketResponse(SocketData readData) {
if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-
StringBuffer stateText = null;
-
try {
stateText = new StringBuffer();
- stateText.append("鐘� 鎬侊細");
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());
@@ -691,57 +598,35 @@
userCard.setAddressCode(adminData.getAddressCode());
userCard.setInitPeasantCode(initPeasantCode);
}
-
+ //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+ //閲戦
+ 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));
if ("00".equals(state)) {
- //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
- //閲戦
- 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));
- userCard.setBalance(balance);
- //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
-
- if (!TextUtils.isEmpty(morny)) {
- //鍏呭��
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setMorny(morny);
- if (userCardBean != null) {
- rechargeBean.setUserName(userCardBean.getUserName());
- } else {
- rechargeBean.setUserName(name);
- }
- List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll();
- String userId = "";
- if (userCardBeans != null) {
- for (int i = 0; i < userCardBeans.size(); i++) {
- if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) {
- userId = userCardBeans.get(i).getUserID();
- }
- }
- }
- rechargeBean.setSerial(adminData.getSerial());
- userCard.setRechargeDate(Calendar.getInstance());
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
- rechargeBean.setUserId(userId);
- recharge(initPeasantCode);
- } else {
- //琛ュ崱閫昏緫
- setUser(intent, userCard);
- if (userFlag) {
- NFCWreatActivity.this.finish();
- ToastUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
- }
- }
-
stateText.append("鍚敤");
+ userCard.setBalance(balance);
+ userCard.setState("00");
+ //琛ュ崱閫昏緫
+ userFlag = WriteCardUtils.setUser(intent, userCard);
+ if (userFlag) {
+ 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");
- setUser(intent, userCard);
+ userCard.setBalance(balance);
+ userFlag = WriteCardUtils.setUser(intent, userCard);
+ startDetailActivity(name, stateText.toString());
+
} else if ("02".equals(state)) {
stateText.append("闅跺睘淇℃伅涓嶇");
} else if ("03".equals(state)) {
@@ -749,21 +634,23 @@
} else if ("04".equals(state)) {
stateText.append("鍏跺畠");
}
- ToastUtil.show(NFCWreatActivity.this, stateText.toString());
+ stopAnim();
+ binding.cardData.setText(stateText);
+ TipUtil.show(NFCWreatActivity.this, stateText.toString());
} catch (Exception e) {
e.printStackTrace();
stopAnim();
}
} else {
//鏍¢獙CRC閿欒
- ToastUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+ TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
}
}
@Override
public void onSocketError(int code, String msg) {
stopAnim();
- ToastUtil.show(NFCWreatActivity.this, msg);
+ TipUtil.show(NFCWreatActivity.this, msg);
}
});
} catch (Exception e) {
@@ -772,5 +659,8 @@
}
}
-
+ protected void onDestroy() {
+ super.onDestroy();
+ nfcWreatActivity=null;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0