From 420562c180324d5cc22bb8bec0fe040c304eca03 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期五, 12 七月 2024 15:29:13 +0800 Subject: [PATCH] 齐河单机版充值逻辑调整由水费计价改为电费计价 --- qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java | 248 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 202 insertions(+), 46 deletions(-) diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java index 59d571b..ea81f0d 100644 --- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java +++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java @@ -1,24 +1,31 @@ package com.dayu.qihealonelibrary.activity; import android.content.Intent; -import android.content.res.Resources; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.view.KeyEvent; import android.view.LayoutInflater; -import android.widget.Toast; +import android.view.View; +import com.dayu.baselibrary.tools.HexUtil; import com.dayu.baselibrary.utils.AidlUtil; import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.DateUtil; +import com.dayu.baselibrary.utils.MornyUtil; import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.view.ConfirmDialog; +import com.dayu.baselibrary.view.TitleBar; import com.dayu.qihealonelibrary.QHAloneApplication; import com.dayu.qihealonelibrary.card.CleanCard; import com.dayu.qihealonelibrary.card.CleanUserCard; import com.dayu.qihealonelibrary.card.ConfigurationPowerCard; import com.dayu.qihealonelibrary.card.ConfigureDeviceRegistrationCrad; import com.dayu.qihealonelibrary.card.DomainCard; +import com.dayu.qihealonelibrary.card.ElectricPriceCard; import com.dayu.qihealonelibrary.card.ManageCard; +import com.dayu.qihealonelibrary.card.PassWordCard; +import com.dayu.qihealonelibrary.card.RegionCard; import com.dayu.qihealonelibrary.card.RegisteredCard; import com.dayu.qihealonelibrary.card.TestCard; import com.dayu.qihealonelibrary.card.UserCard; @@ -32,6 +39,8 @@ import com.dayu.qihealonelibrary.utils.CardCommon; import com.tencent.bugly.crashreport.CrashReport; +import java.util.Calendar; + /** * Copyright (C), 2023, * Author: zuo @@ -40,8 +49,26 @@ */ public class NFCWreatActivity extends BaseNfcActivity { + RegisteredCard registeredCard; + CleanUserCard cleanUserCard; + ManageCard manageCard; + DomainCard domainCard; + CleanCard cleanCard; + ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; + TestCard testCard; + //鍖哄煙琛ㄥ彿鍗� + RegionCard regionCard; + ConfigurationPowerCard configurationPowerCard; + //瀵嗙爜鍗� + PassWordCard passWordCard; + //鐢ㄦ埛鐢甸噺鍗曚环鍗� + ElectricPriceCard electricPriceCard; + UserCardBean userCardBeanByManager; + boolean electricPriceFlag = false; + boolean passwordFlag = false; boolean cleanFlag = false; + boolean regionFlag = false; boolean userFlag = false; boolean manageCardFlag = false; boolean registeredFlag = false; @@ -60,22 +87,13 @@ UserCard olduserCard; String morny; + String rechageWater;//鍏呭�肩殑姘撮噺 String userName; AdminDataBean adminData; RechargeBean rechargeBean; Intent intent; - RegisteredCard registeredCard; - CleanUserCard cleanUserCard; - ManageCard manageCard; - DomainCard domainCard; - - CleanCard cleanCard; - ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; - TestCard testCard; - - ConfigurationPowerCard configurationPowerCard; //鎵撳嵃 QHAloneApplication baseApp; @@ -92,6 +110,7 @@ //褰撳墠鍗$殑鐗╃悊鍗″彿 String cardNumber; + ConfirmDialog confirmDialog; @Override protected void onCreate(Bundle savedInstanceState) { @@ -101,6 +120,7 @@ setContentView(binding.getRoot()); nfcWreatActivity = this; getData(); + titleBack(); baseApp = QHAloneApplication.getInstance(); } catch (Exception e) { e.printStackTrace(); @@ -114,13 +134,29 @@ if (this.getIntent().hasExtra("userCard")) { userCard = (UserCard) this.getIntent().getSerializableExtra("userCard"); } + if (this.getIntent().hasExtra("electricPriceCard")) { + electricPriceCard = (ElectricPriceCard) this.getIntent().getSerializableExtra("electricPriceCard"); + + binding.cardData.setText("鍒朵綔鐢ㄦ埛鐢甸噺鍗曚环鍗n褰撳墠鍗曚环锛�" + electricPriceCard.getElectricPrice().toString() + " 鍏�"); + } + if (this.getIntent().hasExtra("passWordCard")) { + passWordCard = (PassWordCard) this.getIntent().getSerializableExtra("passWordCard"); + binding.cardData.setText("鍒朵綔瀵嗙爜鍗�"); + } if (this.getIntent().hasExtra("cleanCard")) { cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard"); binding.cardData.setText("鍒朵綔娓呴浂鍗�"); } if (this.getIntent().hasExtra("manageCard")) { + cardNumber = this.getIntent().getStringExtra("cardNumber"); manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard"); - binding.cardData.setText("鍒朵綔绠$悊鍗�"); + if (this.getIntent().hasExtra("userCardBean_manager")) { + userCardBeanByManager = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean_manager"); + } + //鏄剧ず鐨勬椂鍊欒鍙嶈繃鏉� + String hex = HexUtil.spaceHex(manageCard.getUserCard()); + hex = HexUtil.HighLowHex(hex); + binding.cardData.setText("鍒朵綔绠$悊鍗�(璇峰皢绠$悊鍗¤创鍦ㄨ澶囦笂)\n鐢ㄦ埛鍗″彿锛�" + hex); } if (this.getIntent().hasExtra("registeredCard")) { registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard"); @@ -150,14 +186,19 @@ configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard"); binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�"); } + if (this.getIntent().hasExtra("regionCard")) { + regionCard = (RegionCard) this.getIntent().getSerializableExtra("regionCard"); + 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, "鍚敤"); + cardNumber = this.getIntent().getStringExtra("cardNumber"); + userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); +// rechageWater = this.getIntent().getStringExtra("rechageWater"); + binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�"); } try { @@ -183,6 +224,8 @@ 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); @@ -217,15 +260,29 @@ || registeredCard != null || cleanUserCard != null || domainCard != null || testCard != null || configureDeviceRegistrationCrad != null - || configurationPowerCard != 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); + } + if (passWordCard != null) { + setPassWordCard(intent, passWordCard); + } + if (regionCard != null) { + setRegionCard(intent, regionCard); } if (cleanCard != null) { setClean(intent, cleanCard); } if (manageCard != null) { setmanageCard(intent, manageCard); + if (manageCardFlag && userCardBeanByManager != null) { + //淇敼鐢ㄦ埛琛ㄤ俊鎭慨鏀规垚鏂板崱鍗″彿 + userCardBeanByManager.setCardNumber(cardNumber); + baseDao.userCardDao().update(userCardBeanByManager); + } } if (registeredCard != null) { setRegisteredCard(intent, registeredCard); @@ -245,11 +302,11 @@ if (configurationPowerCard != null) { setConfigurationPower(intent, configurationPowerCard); } - if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) { + if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { try { if (userFlag && userCardBean != null) { //鐢ㄦ埛鍗� - startDetailActivity(userCardBean.getUserName(), "鍚敤"); + startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱"); } else if (!TextUtils.isEmpty(morny)) { TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); } else { @@ -282,14 +339,14 @@ super.onNewIntent(intent); try { this.intent = intent; - startAnim(); +// startAnim(); Log.i("NFCWreatActivity", "isUser:" + isUser); if (isUser) { //鏂板崱娉ㄥ唽閫昏緫 checkHasUser(); } else if (isRecharge) { //鍏呭�奸�昏緫 - rechargeWrratCard(); + rechargeWreatCard(); } else { //鍏朵粬绠$悊鍗¢�昏緫 saveData(); @@ -311,16 +368,16 @@ StringBuffer data = new StringBuffer(); if (rechargeBean != null) { data.append("*****************************" + "\n"); - data.append(getResources().getString(com.dayu.baselibrary.R.string.login_title) + "\n"); data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n"); data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n"); - // data.append("鎴� 鍙凤細" + rechargeBean.getUserNum() + "\n"); - data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + "鍏�" + "\n"); - data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + "鍏�" + "\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 { @@ -348,30 +405,59 @@ //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹� - private void rechargeWrratCard() { - UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); - if (userCardold != null) { + private void rechargeWreatCard() { + try { + String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber(); + cardNumberThis = HexUtil.spaceHex(cardNumberThis); + cardNumberThis = HexUtil.HighLowHex(cardNumberThis); //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 -// if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) { -// userCard.setState("00"); -// userFlag = WriteCardUtils.setUser(intent, userCard, this); -// // 鎵撳嵃鐩稿叧 -// if (userFlag) { -// setPrinterData(rechargeBean); -// startDetailActivity(userName, "鍚敤"); -// } else { -// TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯"); -// } -// } else { -// TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�"); -// } - } else { + 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); + 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, "缁堢鍐欏崱"); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯"); + } + } else { + TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�"); + } + } catch (Exception e) { + TipUtil.show(NFCWreatActivity.this, "璇诲彇閿欒锛岃閲嶈瘯"); } } private void setmanageCard(Intent intent, final ManageCard manageCard) { - manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toZeroByte(baseDao), 1, 0); + manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0); } /** @@ -380,10 +466,39 @@ * @param intent * @param clearOrInitCard */ - private void setClean(Intent intent, final CleanCard 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); + } /** * 閲嶆柊娉ㄥ唽璁惧鍗� @@ -454,10 +569,12 @@ detail.putExtra("userCard", userCard); if (!TextUtils.isEmpty(morny)) { detail.putExtra("morny", morny); + detail.putExtra("rechageWater", rechageWater); } if (!TextUtils.isEmpty(cardNumber)) { detail.putExtra("cardNumber", cardNumber); } + startActivity(detail); if (NewCardActivity.newCardActivity != null) { NewCardActivity.newCardActivity.finish(); @@ -473,4 +590,43 @@ super.onDestroy(); nfcWreatActivity = null; } + + /** + * 鐐瑰嚮杩斿洖鏃舵彁绀虹敤鎴疯繕鏈啓鍗� + * + * @param keyCode + * @param event + * @return + */ + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + back(); + return true; + } + return super.onKeyDown(keyCode, event); + } + + private void back() { + confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> { + confirmDialog.dismiss(); + if (NewCardActivity.newCardActivity != null) { + NewCardActivity.newCardActivity.finish(); + } + if (RechargeActivity.rechargeActivity != null) { + RechargeActivity.rechargeActivity.finish(); + } + NFCWreatActivity.nfcWreatActivity.finish(); + }); + confirmDialog.show(); + } + + private void titleBack() { + titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, new View.OnClickListener() { + @Override + public void onClick(View v) { + back(); + } + }); + } } \ No newline at end of file -- Gitblit v1.8.0