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 | 550 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 313 insertions(+), 237 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 e765ae1..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,17 +5,25 @@
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;
+import com.dayu.recharge.card.ConfigurationPowerCard;
+import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad;
+import com.dayu.recharge.card.DomainCard;
import com.dayu.recharge.card.ManageCard;
import com.dayu.recharge.card.RegisteredCard;
+import com.dayu.recharge.card.TestCard;
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityWriteTextBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.ElectricPriceBean;
import com.dayu.recharge.dbBean.RechargeBean;
import com.dayu.recharge.dbBean.UserCardBean;
import com.dayu.recharge.net.SocketCallBack;
@@ -27,37 +35,28 @@
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,
+ * Author: zuo
+ * Date: 2023-11-08 21:19
+ * Description: nfc鍐欏崱鐣岄潰
+ */
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;
@@ -65,13 +64,20 @@
boolean registeredFlag = false;
boolean administrativeCardFlag = false;
boolean cleanUserCardFlag = false;
- volatile UserCard userCard;
- ManageCard manageCard;
+ boolean domainCrdFlag = false;
+
+ boolean testCardFlag = false;
+
+ boolean configDeviceRegiestFlag = false;
+
+ boolean configPowerFlag = false;
+
UserCardBean userCardBean;
+ UserCard olduserCard;
- CleanCard cleanCard;
String morny;
+ String userName;
AdminDataBean adminData;
RechargeBean rechargeBean;
Intent intent;
@@ -79,7 +85,14 @@
RegisteredCard registeredCard;
CleanUserCard cleanUserCard;
+ ManageCard manageCard;
+ DomainCard domainCard;
+ CleanCard cleanCard;
+ ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad;
+ TestCard testCard;
+
+ ConfigurationPowerCard configurationPowerCard;
//鎵撳嵃
MyApplication baseApp;
@@ -88,6 +101,11 @@
* 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
*/
boolean isUser = false;//
+
+ //鏄惁鏄厖鍊艰繃绋�
+ boolean isRecharge = false;
+ //鍏呭�奸�氫俊鏄惁瀹屾垚
+ boolean rechargeIsOk = false;
ActivityWriteTextBinding binding;
@Override
@@ -96,7 +114,6 @@
try {
binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
-
nfcWreatActivity = this;
getData();
baseApp = (MyApplication) getApplication();
@@ -111,24 +128,53 @@
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");
+ binding.cardData.setText("鍒朵綔娓呴浂鍗�");
}
if (this.getIntent().hasExtra("manageCard")) {
manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard");
+ binding.cardData.setText("鍒朵綔绠$悊鍗�");
}
if (this.getIntent().hasExtra("registeredCard")) {
registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard");
+ binding.cardData.setText("鍒朵綔閲嶆柊娉ㄥ唽璁惧鍗�");
}
if (this.getIntent().hasExtra("dbUserCard")) {
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
+ isUser = true;
}
if (this.getIntent().hasExtra("cleanUserCard")) {
cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
+ binding.cardData.setText("鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�");
}
- morny = this.getIntent().getStringExtra("morny");
+ if (this.getIntent().hasExtra("domainCard")) {
+ domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard");
+ binding.cardData.setText("鍒朵綔璁剧疆鍩熷悕鍗�");
+ }
+ if (this.getIntent().hasExtra("testCard")) {
+ testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
+ binding.cardData.setText("鍒朵綔娴嬭瘯鍗�");
+ }
+ if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) {
+ configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad");
+ binding.cardData.setText("鍒朵綔閰嶇疆璁惧娉ㄥ唽淇℃伅鍗�");
+ }
+ if (this.getIntent().hasExtra("configurationPowerCard")) {
+ configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard");
+ 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 {
adminData = baseDao.adminDao().findFirst();
} catch (Exception e) {
@@ -145,46 +191,37 @@
* 妫�娴嬫槸鍚︽槸鐢ㄦ埛鍗★紝鍋囧鏄敤鎴峰崱鐨勮瘽闇�瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗″亣濡傛槸鐢ㄦ埛鍗¢渶瑕�
*/
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() {
- Message message = new Message();
- message.what = ERROR;
- 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();
}
private void saveData() {
try {
startAnim();
- if (userCard != null || cleanCard != null || manageCard != null || registeredCard != null || cleanUserCard != null) {
- if (userCard != null) {
- setUser(intent, userCard);
+ if (userCard != null || cleanCard != null || manageCard != null
+ || registeredCard != null || cleanUserCard != null
+ || domainCard != null || testCard != null
+ || configureDeviceRegistrationCrad != null
+ || configurationPowerCard != null) {
+ if (userCard != null && TextUtils.isEmpty(morny)) {
+
+ userFlag = WriteCardUtils.setUser(intent, userCard);
}
if (cleanCard != null) {
setClean(intent, cleanCard);
@@ -198,23 +235,37 @@
if (cleanUserCard != null) {
setCleanUserCard(intent, cleanUserCard);
}
-
- if ((userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag)) {
+ if (domainCard != null) {
+ setDomainCard(intent, domainCard);
+ }
+ if (testCard != null) {
+ setTestCard(intent, testCard);
+ }
+ if (configureDeviceRegistrationCrad != null) {
+ setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad);
+ }
+ if (configurationPowerCard != null) {
+ setConfigurationPower(intent, configurationPowerCard);
+ }
+ if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
try {
if (userFlag && userCardBean != null) {
- baseDao.userCardDao().insert(userCardBean);
- 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) {
@@ -222,14 +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();
@@ -239,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();
}
@@ -252,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() {
- 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;
- }
- });
/**
@@ -323,7 +325,7 @@
StringBuffer data = new StringBuffer();
if (rechargeBean != null) {
data.append("*****************************" + "\n");
- data.append(" 鍐滀笟姘翠环缁煎悎鏀归潻鍏呭�肩郴缁焅n\n");
+ data.append(getResources().getString(R.string.login_title) + "\n");
data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
// data.append("鎴� 鍙凤細" + rechargeBean.getUserNum() + "\n");
@@ -356,56 +358,71 @@
//鍏呭�间笂浼狅紙Socket锛�
- private void recharge(String initPeasantCode) {
+ private void recharge(String initPeasantCode, String name, String statu) {
try {
RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
rechargeRequestBean.setControl("01");
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
rechargeRequestBean.setInitCode(initCode);
rechargeRequestBean.setXuLie(SocketUtil.getXuLie(this));
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();
@@ -414,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) {
@@ -424,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);
}
/**
@@ -440,35 +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;
- }
- });
- NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() {
- @Override
- public void isSusses(boolean flag) {
- userFlag = flag;
- }
- });
- }
/**
* 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -477,24 +486,82 @@
* @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;
- }
- });
- }
-
- 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;
- }
- });
+ registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
}
/**
+ * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�
+ *
+ * @param intent
+ * @param cleanUserCard
+ */
+ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
+ cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
+ }
+
+ /**
+ * 璁剧疆鍩熷悕鍗�
+ *
+ * @param intent
+ * @param domainCard
+ */
+ private void setDomainCard(Intent intent, DomainCard domainCard) {
+ try {
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
+ if (!domainCrdFlag) {
+ return;
+ }
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
+ if (!domainCrdFlag) {
+ return;
+ }
+ domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2);
+ } catch (Exception e) {
+ domainCrdFlag = false;
+ throw new RuntimeException(e);
+ }
+ }
+
+ private void setTestCard(Intent intent, TestCard testCard) {
+ testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
+ }
+
+
+ private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
+ configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
+ }
+
+ private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
+ try {
+ 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();
+ }
+
+ /**
+ * 鏌ヨ浣欓
+ *
* @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
*/
private void selectBalance(String initPeasantCode) {
@@ -503,7 +570,7 @@
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));
@@ -511,51 +578,55 @@
@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 ("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));
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setMorny(morny);
- if (userCardBean != null) {
- rechargeBean.setUserName(userCardBean.getUserName());
+ if (userCard == null) {
+ userCard = new UserCard();
+ userCard.setRechargeTimes(0);
+ ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
+ if (electricPriceBean != null) {
+ userCard.setElectricityPrice(electricPriceBean.getPrice());
} else {
- rechargeBean.setUserName(name);
+ //榛樿鏄�1鍏�
+ userCard.setElectricityPrice(1.000f);
}
- 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.setBalance(balance);
- userCard.setRechargeDate(Calendar.getInstance());
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance) + "");
- rechargeBean.setUserId(userId);
- //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
- recharge(initPeasantCode);
+ userCard.setSwipeNumber((short) 0);
+ userCard.setState("00");
+ userCard.setBalance(0);
+ 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)) {
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)) {
@@ -563,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) {
@@ -586,5 +659,8 @@
}
}
-
+ protected void onDestroy() {
+ super.onDestroy();
+ nfcWreatActivity=null;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0