From dc1ab1a73f979940ed7d631418f44ca309d077c0 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期四, 22 二月 2024 16:24:56 +0800 Subject: [PATCH] 读卡时检验设备是否注册 --- app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 144 +++++++++++++++++------------------------------- 1 files changed, 51 insertions(+), 93 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 eef5996..7c5a5f4 100644 --- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java @@ -2,14 +2,12 @@ import android.content.Intent; import android.os.Bundle; -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; @@ -31,7 +29,6 @@ import com.dayu.recharge.socketBean.BalanceSelecteRequestBean; import com.dayu.recharge.socketBean.RechargeRequestBean; import com.dayu.recharge.tools.BcdUtil; -import com.dayu.recharge.tools.HexUtil; import com.dayu.recharge.tools.NFCWriteHelper; import com.dayu.recharge.tools.NfcReadHelper; import com.dayu.recharge.tools.WriteCardUtils; @@ -40,6 +37,7 @@ 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.TipUtil; import com.tencent.bugly.crashreport.CrashReport; @@ -72,7 +70,7 @@ boolean configPowerFlag = false; UserCardBean userCardBean; - + UserCard olduserCard; String morny; String userName; @@ -112,7 +110,6 @@ try { binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); - initView(); nfcWreatActivity = this; getData(); baseApp = (MyApplication) getApplication(); @@ -120,31 +117,6 @@ e.printStackTrace(); CrashReport.postCatchedException(e); } - } - - private void initView() { - handler = new Handler(new Handler.Callback() { - @Override - public boolean handleMessage(Message msg) { - switch (msg.what) { - - case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴� - binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖"); - binding.textView.setTextColor(getResources().getColor(R.color.red)); - stopAnim(); - break; - case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨 - saveData(); - break; - default: - stopAnim(); - TipUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触"); - break; - - } - return false; - } - }); } @@ -215,37 +187,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, this).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(); } @@ -258,7 +216,8 @@ || configureDeviceRegistrationCrad != null || configurationPowerCard != null) { if (userCard != null && TextUtils.isEmpty(morny)) { - userFlag = WriteCardUtils.setUser(intent, userCard); + + userFlag = WriteCardUtils.setUser(intent, userCard, this); } if (cleanCard != null) { setClean(intent, cleanCard); @@ -290,11 +249,9 @@ //鐢ㄦ埛鍗� startDetailActivity(userCardBean.getUserName(), "鍚敤"); } else if (!TextUtils.isEmpty(morny)) { - NFCWreatActivity.this.finish(); - TipUtil.show("鍏呭�兼垚鍔�"); + TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); } else { - NFCWreatActivity.this.finish(); - TipUtil.show("鍐欏崱鎴愬姛"); + TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish()); } } catch (Exception e) { @@ -302,14 +259,10 @@ CrashReport.postCatchedException(e); } } else { - TipUtil.show("鍐欏崱澶辫触"); + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触"); } stopAnim(); - } -// else if (!TextUtils.isEmpty(morny)) { -// -// } - else if (userCard == null && userCardBean != null) { + } else if (userCard == null && userCardBean != null) { //琛ュ崱閫昏緫 selectBalance(userCardBean.getInitPeasantCode()); } else { @@ -328,6 +281,7 @@ try { this.intent = intent; startAnim(); + Log.i("NFCWreatActivity", "isUser:" + isUser); if (isUser) { checkHasUser(); } else if (isRecharge) { @@ -428,7 +382,7 @@ rechargeBean.setSerial(adminData.getSerial()); userCard.setRechargeDate(Calendar.getInstance()); - rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + ""); + rechargeBean.setBalance(MornyUtil.changeF2Y(balance)); rechargeBean.setInitPeasantCode(initPeasantCode); rechargeBean.setOrderID(orderId); try { @@ -439,7 +393,7 @@ userCard.setRechargeTimes(userCard.getRechargeTimes() + 1); } else if ("01".equalsIgnoreCase(state)) { userCard.setState("01"); - userFlag = WriteCardUtils.setUser(intent, userCard); + userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this); NFCWreatActivity.this.finish(); TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤"); } else if ("02".equalsIgnoreCase(state)) { @@ -475,12 +429,12 @@ //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹� private void rechargeWrratCard() { - UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData(); + UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); if (userCardold != null) { //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) { userCard.setState("00"); - userFlag = WriteCardUtils.setUser(intent, userCard); + userFlag = WriteCardUtils.setUser(intent, userCard, this); // 鎵撳嵃鐩稿叧 if (userFlag) { setPrinterData(rechargeBean); @@ -497,7 +451,7 @@ } private void setmanageCard(Intent intent, final ManageCard manageCard) { - manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0); + manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(), 1, 0); } /** @@ -507,7 +461,7 @@ * @param clearOrInitCard */ private void setClean(Intent intent, final CleanCard clearOrInitCard) { - cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0); + cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(), 1, 0); } @@ -518,7 +472,7 @@ * @param registeredCard */ private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0); + registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(), 1, 0); } /** @@ -528,7 +482,7 @@ * @param cleanUserCard */ private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0); + cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(), 1, 0); } /** @@ -539,15 +493,15 @@ */ private void setDomainCard(Intent intent, DomainCard domainCard) { try { - domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0); + domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0); if (!domainCrdFlag) { return; } - domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1); + domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1); if (!domainCrdFlag) { return; } - domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2); + domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2); } catch (Exception e) { domainCrdFlag = false; throw new RuntimeException(e); @@ -555,17 +509,17 @@ } private void setTestCard(Intent intent, TestCard testCard) { - testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0); + testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(), 1, 0); } private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { - configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0); + configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0); } private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { try { - configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0); + configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(), 1, 0); } catch (Exception e) { configPowerFlag = false; throw new RuntimeException(e); @@ -610,16 +564,13 @@ @Override public void onSocketResponse(SocketData readData) { 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 if (userCard == null) { userCard = new UserCard(); userCard.setRechargeTimes(0); - ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst(); if (electricPriceBean != null) { userCard.setElectricityPrice(electricPriceBean.getPrice()); @@ -645,18 +596,21 @@ userCard.setBalance(balance); userCard.setState("00"); //琛ュ崱閫昏緫 - userFlag = WriteCardUtils.setUser(intent, userCard); + userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this); if (userFlag) { - NFCWreatActivity.this.finish(); - TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛"); + 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"); userCard.setBalance(balance); - userFlag = WriteCardUtils.setUser(intent, userCard); - + userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this); startDetailActivity(name, stateText.toString()); } else if ("02".equals(state)) { @@ -692,4 +646,8 @@ } + protected void onDestroy() { + super.onDestroy(); + nfcWreatActivity = null; + } } \ No newline at end of file -- Gitblit v1.8.0