From 9c11fb9a45b0f1ff2a86eb139078e5361216434b Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 29 十一月 2023 14:59:10 +0800 Subject: [PATCH] 读取模拟卡修改后注释(未完成) --- app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 459 +++++++++++++++++++++----------------------------------- 1 files changed, 175 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..1a7ec6a 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,10 +219,12 @@ || 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) { + NFCWriteHelper.getInstence(intent).changePasword(1); setClean(intent, cleanCard); } if (manageCard != null) { @@ -269,19 +251,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 +274,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 +292,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 +314,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 +359,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 +369,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 +432,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 +442,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 +476,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 +487,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 +497,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 +508,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 +524,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 +579,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 +599,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 +635,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 +660,8 @@ } } - + protected void onDestroy() { + super.onDestroy(); + nfcWreatActivity=null; + } } \ No newline at end of file -- Gitblit v1.8.0