From 954eaed548efb75b3dc79343587acb79e53d214d Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 23 八月 2024 17:19:59 +0800 Subject: [PATCH] 优化写卡逻辑,再次读取内容确认写卡成功再提示成功 --- qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java | 526 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 287 insertions(+), 239 deletions(-) diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java index e6c6868..47a4ea5 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java @@ -12,12 +12,16 @@ import com.dayu.baselibrary.utils.AidlUtil; import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.DateUtil; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.MornyUtil; import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.utils.ToastUtil; import com.dayu.baselibrary.view.ConfirmDialog; import com.dayu.baselibrary.view.TitleBar; - import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.LoginResult; +import com.dayu.qiheonlinelibrary.bean.OpenCardResult; +import com.dayu.qiheonlinelibrary.bean.ReplaceCardResult; import com.dayu.qiheonlinelibrary.card.CleanCard; import com.dayu.qiheonlinelibrary.card.CleanUserCard; import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard; @@ -25,22 +29,30 @@ import com.dayu.qiheonlinelibrary.card.DomainCard; import com.dayu.qiheonlinelibrary.card.ElectricPriceCard; import com.dayu.qiheonlinelibrary.card.ManageCard; +import com.dayu.qiheonlinelibrary.card.ManagerToUserCard; import com.dayu.qiheonlinelibrary.card.PassWordCard; import com.dayu.qiheonlinelibrary.card.RegionCard; import com.dayu.qiheonlinelibrary.card.RegisteredCard; import com.dayu.qiheonlinelibrary.card.TestCard; import com.dayu.qiheonlinelibrary.card.UserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityWriteTextQhlBinding; -import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.RechargeBean; import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; -import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; import com.dayu.qiheonlinelibrary.tools.WriteCardUtils; import com.dayu.qiheonlinelibrary.utils.CardCommon; +import com.dayu.qiheonlinelibrary.utils.NFCWreatUtils; +import com.dayu.qiheonlinelibrary.utils.PrintUtils; +import com.dayu.qiheonlinelibrary.view.ReplacementPriceDialog; import com.tencent.bugly.crashreport.CrashReport; import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; /** * Copyright (C), 2023, @@ -54,7 +66,6 @@ CleanUserCard cleanUserCard; ManageCard manageCard; DomainCard domainCard; - CleanCard cleanCard; ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; TestCard testCard; @@ -70,7 +81,6 @@ boolean passwordFlag = false; boolean cleanFlag = false; boolean regionFlag = false; - boolean userFlag = false; boolean manageCardFlag = false; boolean registeredFlag = false; boolean administrativeCardFlag = false; @@ -78,23 +88,17 @@ boolean domainCrdFlag = false; - boolean testCardFlag = false; boolean configDeviceRegiestFlag = false; boolean configPowerFlag = false; UserCardBean userCardBean; - UserCard olduserCard; String morny; - String rechageWater;//鍏呭�肩殑姘撮噺 String userName; - AdminDataBean adminData; RechargeBean rechargeBean; Intent intent; - - //鎵撳嵃 QHOnLineApplication baseApp; @@ -112,6 +116,14 @@ //褰撳墠鍗$殑鐗╃悊鍗″彿 String cardNumber; ConfirmDialog confirmDialog; + //鏃х殑鍗d + String iccardInfoId; + //琛ュ崱绫诲瀷 + int replaceType; + //琛ュ崱宸ユ湰璐圭敤 + String rechargeCardMoney; + ReplacementPriceDialog replacementPriceDialog; + ManagerToUserCard managerToUserCard; @Override protected void onCreate(Bundle savedInstanceState) { @@ -120,9 +132,9 @@ binding = ActivityWriteTextQhlBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); nfcWreatActivity = this; - getData(); titleBack(); baseApp = QHOnLineApplication.getInstance(); + getData(); } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); @@ -167,6 +179,9 @@ userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard"); isUser = true; } + if (this.getIntent().hasExtra("userCardBean")) { + userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); + } if (this.getIntent().hasExtra("cleanUserCard")) { cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard"); binding.cardData.setText("鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�"); @@ -196,18 +211,30 @@ isRecharge = true; morny = this.getIntent().getStringExtra("morny"); userName = this.getIntent().getStringExtra("userName"); - cardNumber = this.getIntent().getStringExtra("cardNumber"); - userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); -// rechageWater = this.getIntent().getStringExtra("rechageWater"); - binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�"); + rechargeBean = (RechargeBean) this.getIntent().getSerializableExtra("rechargeBean"); + if (MornyUtil.changeY2F(rechargeBean.getDeductionMorny()) == 0) { + binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�"); + } else { + int realityMorny = MornyUtil.changeY2F(morny) - MornyUtil.changeY2F(rechargeBean.getDeductionMorny()); + binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + " 鍏僜n" + "琛ユ墸閲戦锛�" + rechargeBean.getDeductionMorny() + " 鍏僜n瀹為檯鍒拌处閲戦锛�" + MornyUtil.changeF2Y(realityMorny) + " 鍏�"); + } + } + if (this.getIntent().hasExtra("iccardInfoId")) { + iccardInfoId = this.getIntent().getStringExtra("iccardInfoId"); + //琛ュ崱绫诲瀷 + replaceType = this.getIntent().getIntExtra("replaceType", 0); + replacementPriceDialog = new ReplacementPriceDialog(this, data -> { + if (TextUtils.isEmpty(data)) { + rechargeCardMoney = "0"; + } + rechargeCardMoney = data; + binding.cardData.setText("琛ュ崱宸ユ湰璐癸細" + rechargeCardMoney + "鍏�"); + replacementPriceDialog.dismiss(); + }); + replacementPriceDialog.show(); } - try { - adminData = baseDao.adminDao().findFirst(); - } catch (Exception e) { - e.printStackTrace(); - CrashReport.postCatchedException(e); - } + } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); @@ -225,8 +252,6 @@ String[] cardTypes = cardType.split(","); if (cardTypes != null && cardTypes.length == 2) { cardNumber = cardType.split(",")[0]; - cardNumber = HexUtil.spaceHex(cardNumber); - cardNumber = HexUtil.HighLowHex(cardNumber); cardType = cardType.split(",")[1]; } Log.i("NFCWreatActivity", "cardType=" + cardType); @@ -241,10 +266,12 @@ } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) { TipUtil.show(NFCWreatActivity.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�"); } else { + //璇诲崱鎴愬姛 Log.i("NFCWreatActivity", "olduserCard!=null saveData"); - userCardBean.setCardNumber(cardNumber); - baseDao.userCardDao().insert(userCardBean); - saveData(); +// + openCard(cardNumber, 1, userCardBean.getPersonId(), String.valueOf(userCardBean.getCardMorny())); + + } } catch (Exception e) { e.printStackTrace(); @@ -262,53 +289,40 @@ || domainCard != null || testCard != null || configureDeviceRegistrationCrad != null || configurationPowerCard != null || regionCard != null || passWordCard != null || electricPriceCard != null) { - if (userCard != null && TextUtils.isEmpty(morny)) { - userFlag = WriteCardUtils.setUser(intent, userCard, this); - } + if (electricPriceCard != null) { - setElectricPriceCard(intent, electricPriceCard); + electricPriceFlag = NFCWreatUtils.getInstance(this, baseDao).setElectricPriceCard(intent, electricPriceCard); } if (passWordCard != null) { - setPassWordCard(intent, passWordCard); + passwordFlag = NFCWreatUtils.getInstance(this, baseDao).setPassWordCard(intent, passWordCard); } if (regionCard != null) { - setRegionCard(intent, regionCard); + regionFlag = NFCWreatUtils.getInstance(this, baseDao).setRegionCard(intent, regionCard); } if (cleanCard != null) { - setClean(intent, cleanCard); + cleanFlag = NFCWreatUtils.getInstance(this, baseDao).setClean(intent, cleanCard); } if (manageCard != null) { - setmanageCard(intent, manageCard); -// if (manageCardFlag && userCardBeanByManager != null) { -// //淇敼鐢ㄦ埛琛ㄤ俊鎭慨鏀规垚鏂板崱鍗″彿 -// userCardBeanByManager.setCardNumber(cardNumber); -// baseDao.userCardDao().update(userCardBeanByManager); -// } + manageCardFlag = NFCWreatUtils.getInstance(this, baseDao).setmanageCard(intent, manageCard); } if (registeredCard != null) { - setRegisteredCard(intent, registeredCard); + registeredFlag = NFCWreatUtils.getInstance(this, baseDao).setRegisteredCard(intent, registeredCard); } if (cleanUserCard != null) { - setCleanUserCard(intent, cleanUserCard); + cleanUserCardFlag = NFCWreatUtils.getInstance(this, baseDao).setCleanUserCard(intent, cleanUserCard); } if (domainCard != null) { - setDomainCard(intent, domainCard); - } - if (testCard != null) { - setTestCard(intent, testCard); + domainCrdFlag = NFCWreatUtils.getInstance(this, baseDao).setDomainCard(intent, domainCard); } if (configureDeviceRegistrationCrad != null) { - setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); + configDeviceRegiestFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); } if (configurationPowerCard != null) { - setConfigurationPower(intent, configurationPowerCard); + configPowerFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigurationPower(intent, configurationPowerCard); } - if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { + if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || domainCrdFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { try { - if (userFlag && userCardBean != null) { - //鐢ㄦ埛鍗� - startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱"); - } else if (!TextUtils.isEmpty(morny)) { + if (!TextUtils.isEmpty(morny)) { TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); } else { TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish()); @@ -340,14 +354,15 @@ super.onNewIntent(intent); try { this.intent = intent; -// startAnim(); - Log.i("NFCWreatActivity", "isUser:" + isUser); if (isUser) { //鏂板崱娉ㄥ唽閫昏緫 checkHasUser(); } else if (isRecharge) { //鍏呭�奸�昏緫 rechargeWreatCard(); + } else if (!TextUtils.isEmpty(iccardInfoId)) { + //琛ュ崱閫昏緫 + replaceCard(); } else { //鍏朵粬绠$悊鍗¢�昏緫 saveData(); @@ -358,41 +373,6 @@ } } - - /** - * 鎵撳嵃鏈虹浉鍏充俊鎭� - * - * @param rechargeBean - */ - private void setPrinterData(RechargeBean rechargeBean) { - try { - StringBuffer data = new StringBuffer(); - if (rechargeBean != null) { - data.append("*****************************" + "\n"); - data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n"); - data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n"); - data.append("鍗� 鍙凤細" + rechargeBean.getCardNumber() + "\n"); - data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n"); - data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n"); -// data.append("鍏呭�兼按閲忥細" + rechargeBean.getRechargeWater() + " 鍚�" + "\n"); -// data.append("鍓╀綑姘撮噺锛�" + rechargeBean.getSurplusWater() + " 鍚�" + "\n"); - data.append("鏃� 鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n"); - data.append("*****************************"); - } - float size = 26; - - try { - AidlUtil.getInstance().printText(data.toString(), size, true, false); - AidlUtil.getInstance().print3Line(); - } catch (Exception e) { - e.printStackTrace(); - } - - } catch (Exception e) { - e.printStackTrace(); - CrashReport.postCatchedException(e); - } - } void startAnim() { binding.avi.show(); @@ -409,43 +389,11 @@ private void rechargeWreatCard() { try { String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber(); - cardNumberThis = HexUtil.spaceHex(cardNumberThis); - cardNumberThis = HexUtil.HighLowHex(cardNumberThis); //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 - if (cardNumberThis.equalsIgnoreCase(cardNumber)) { - //浣欓 - int balance = userCard.getBalance() + MornyUtil.changeY2F(morny); - userCard.setBalance(balance); - //鍓╀綑姘撮噺 -// int surplusWater = userCard.getSurplusWater() + MornyUtil.changeY2F(rechageWater); -// userCard.setSurplusWater(surplusWater); - - int rechageTims = userCard.getRechargeTimes() + 1; - if (rechageTims == 256) { - rechageTims = 0; - } - userCard.setRechargeTimes((short) rechageTims); + if (cardNumberThis.equalsIgnoreCase(rechargeBean.getCardNumber())) { userCard.setRechargeDate(Calendar.getInstance()); - userFlag = WriteCardUtils.setUser(intent, userCard, this); - if (userFlag) { - rechargeBean = new RechargeBean(); - rechargeBean.setUserName(userName); - rechargeBean.setSerial(userCardBean.getSerial()); - rechargeBean.setUserId(userCardBean.getUserID()); - rechargeBean.setDate(System.currentTimeMillis()); - rechargeBean.setMorny(morny); - rechargeBean.setBalance(MornyUtil.changeF2Y(balance)); - rechargeBean.setCardNumber(cardNumber); - rechargeBean.setSurplusWater(MornyUtil.changeF2Y(0)); - rechargeBean.setRechargeWater(rechageWater); - try { - baseDao.rechargeDao().insert(rechargeBean); - } catch (Exception e) { - e.printStackTrace(); - } - // 鎵撳嵃鐩稿叧 - setPrinterData(rechargeBean); - startDetailActivity(userName, "缁堢鍐欏崱"); + if (WriteCardUtils.setUser(intent, userCard, this)) { + confromRecharge(rechargeBean.getOrderId(), 0); } else { TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯"); } @@ -457,125 +405,16 @@ } } - private void setmanageCard(Intent intent, final ManageCard manageCard) { - manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0); - } - - /** - * 鍒朵綔娓呴浂鍗� - * - * @param intent - * @param clearOrInitCard - */ - private void setClean(Intent intent, CleanCard clearOrInitCard) { - cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); - } - - /** - * 淇濆瓨鍖哄煙琛ㄥ彿鍗� - * - * @param intent - * @param regionCard - */ - private void setRegionCard(Intent intent, RegionCard regionCard) { - regionFlag = NFCWriteHelper.getInstence(intent, this).writeData(regionCard.toByte(), 1, 0); - } - - /** - * 瀵嗙爜鍗� - * - * @param intent - * @param passWordCard - */ - private void setPassWordCard(Intent intent, PassWordCard passWordCard) { - passwordFlag = NFCWriteHelper.getInstence(intent, this).writeData(passWordCard.toByte(baseDao), 1, 0); - } - - /** - * 鐢ㄦ埛鐢甸噺鍗曚环 - * - * @param intent - * @param electricPriceCard - */ - private void setElectricPriceCard(Intent intent, ElectricPriceCard electricPriceCard) { - electricPriceFlag = NFCWriteHelper.getInstence(intent, this).writeData(electricPriceCard.toByte(baseDao), 1, 0); - } - - /** - * 閲嶆柊娉ㄥ唽璁惧鍗� - * - * @param intent - * @param registeredCard - */ - private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); - } - - /** - * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� - * - * @param intent - * @param cleanUserCard - */ - private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); - } - - /** - * 璁剧疆鍩熷悕鍗� - * - * @param intent - * @param domainCard - */ - private void setDomainCard(Intent intent, DomainCard domainCard) { - try { - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0); - if (!domainCrdFlag) { - return; - } - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1); - if (!domainCrdFlag) { - return; - } - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).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, this).writeData(testCard.toByte(baseDao), 1, 0); - } - - - private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { - configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); - } - - private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { - try { - configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0); - } catch (Exception e) { - configPowerFlag = false; - throw new RuntimeException(e); - } - } - - - private void startDetailActivity(String userName, String statu) { + private void startDetailActivity(String statu) { Intent detail = new Intent(this, RechargeDetailActivity.class); - detail.putExtra("userName", userName); detail.putExtra("statu", statu); detail.putExtra("userCard", userCard); if (!TextUtils.isEmpty(morny)) { - detail.putExtra("morny", morny); - detail.putExtra("rechageWater", rechageWater); - } - if (!TextUtils.isEmpty(cardNumber)) { - detail.putExtra("cardNumber", cardNumber); - } + detail.putExtra("rechargeBean", rechargeBean); + } else { + detail.putExtra("userCardBean", userCardBean); + } startActivity(detail); if (NewCardActivity.newCardActivity != null) { NewCardActivity.newCardActivity.finish(); @@ -630,4 +469,213 @@ } }); } + + /** + * IC寮�鍗℃帴鍙� + * + * @param iccardNum 鐗╃悊鍗″彿 + * @param iccardType ic鍗$被鍨� 1 鐢ㄦ埛鍗� 2 绠$悊鍗� + * @param peasantId + * @param rechargeMoney + */ + private void openCard(String iccardNum, int iccardType, String peasantId, String rechargeMoney) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardNum", iccardNum);//鐗╃悊鍗″彿 + data.put("iccardType", iccardType); + data.put("peasantId", peasantId); + data.put("adcd", QHOnLineApplication.getInstance().adcd); + //宸ユ湰璐� + data.put("rechargeCardMoney", rechargeMoney); + ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() { + @Override + public void onNext(BaseResponse<OpenCardResult> t) { + if (t.isSuccess()) { + String userCode = t.getData().getIccardCode(); + userCard.setUserCode(userCode.substring(0, 12)); + userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); + userCardBean.setCardNumber(cardNumber); + userCardBean.setUserCode(userCode); + if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) { + confromOpenCard(t.getData().getIccardRechargeRecordId(), 0); + } else { + confromOpenCard(t.getData().getIccardRechargeRecordId(), 2); + } + } else { + TipUtil.show(t.getMsg()); + } + } + }); + + } + + /** + * 纭寮�鍗″啓鍗� + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromOpenCard(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + + + ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + //{"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}} + if (writeCardStatus == 0) { + baseDao.userCardDao().insert(userCardBean); + startDetailActivity("缁堢鍐欏崱"); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒"); + } + } + } + }); + + } + + /** + * 纭鍏呭�煎洖璋� + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromRecharge(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + data.put("writeCardStatus", writeCardStatus); + + ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + if (writeCardStatus == 0) { + try { + baseDao.rechargeDao().insert(rechargeBean); + } catch (Exception e) { + e.printStackTrace(); + } + // 鎵撳嵃鐩稿叧 + PrintUtils.printerData(rechargeBean); + startDetailActivity("缁堢鍐欏崱"); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触璇烽噸鏂拌创鍗★紒"); + } + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + /** + * 琛ュ崱閫昏緫 + */ + private void replaceCard() { + cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber(); + if (replaceType == BaseCommon.REPLACE_NO_CARD) { + replaceCardPost("", ""); + } else if (replaceType == BaseCommon.REPLACE_HAS_CARD) { + managerToUserCard = NfcReadHelper.getInstence(intent, NFCWreatActivity.this).getManagerToUserCardData(); + //鍒ゆ柇鏄惁宸茬粡鍦ㄦ帶鍒跺櫒绔埛鍗� + if (managerToUserCard.getCardWriteState() == 1) { + replaceCardPost(MornyUtil.changeF2Y(managerToUserCard.getBalance()), MornyUtil.changeF2Y(managerToUserCard.getSurplusElecticity())); + } else { + TipUtil.show("璇峰湪鎺у埗鍣ㄧ鍒峰崱"); + } + } + } + + /** + * 琛ュ崱 + */ + private void replaceCardPost(String iccardBalanceMoney, String iccardBalanceElectric) { + Map<String, Object> data = new HashMap<>(); + data.put("equipCode", DeviceUtils.getSN()); + //鍏呭�煎崱璐� + data.put("rechargeCardMoney", rechargeCardMoney); + // 鏃у崱鐨刬d + data.put("iccardInfoId", iccardInfoId); + //鏂板崱鐨勭墿鐞嗗崱鍙� + data.put("iccardNum", cardNumber); + if (!TextUtils.isEmpty(iccardBalanceMoney)) { + //鍗″唴鍓╀綑閲戦 + data.put("iccardBalanceMoney", iccardBalanceMoney); + } + if (!TextUtils.isEmpty(iccardBalanceElectric)) { + //鍗″唴鍓╀綑鐢甸噺 + data.put("iccardBalanceElectric", iccardBalanceElectric); + } + ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() { + @Override + public void onNext(BaseResponse<ReplaceCardResult> t) { + if (t.isSuccess()) { + ReplaceCardResult replaceCardResult = t.getData(); + userCard = new UserCard(); + userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); + String userCode = t.getData().getIccardCode(); + userCard.setUserCode(userCode.substring(0, 12)); + userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); + userCard.setCardWriteState(0); + userCard.setCardState(1); + userCard.setBalance(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceMoney())); + userCard.setSurplusElecticity(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceElectric())); + userCard.setTotalMorny(MornyUtil.changeY2F(replaceCardResult.getTotalRechargeMoney())); + userCard.setRechargeDate(Calendar.getInstance()); + userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); + if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) { + userCardBean.setCardNumber(cardNumber); + userCardBean.setUserCode(userCode); + userCardBean.setDate(System.currentTimeMillis()); + baseDao.userCardDao().insert(userCardBean); + confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶈瘯"); + } + // 鎵撳嵃鐩稿叧 +// setPrinterData(rechargeBean); +// startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱"); + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + /** + * 纭琛ュ崱鍐欏崱鎴愬姛 + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromReplaceCard(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("equipCode", DeviceUtils.getSN()); + data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + + ApiManager.getInstance().requestPostLoading(this, "iccard/recharge/reissueOpenCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛锛�", () -> { + if (UserSearchActivity.userSearchActivity != null) { + UserSearchActivity.userSearchActivity.finish(); + UserSearchActivity.userSearchActivity = null; + } + NFCWreatActivity.this.finish(); + }); + } + } + }); + } + + } \ No newline at end of file -- Gitblit v1.8.0