From 844597b5813ff8589de503cd7d7b1bbd0586d287 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期一, 13 五月 2024 19:38:03 +0800 Subject: [PATCH] 1.添加水量单价 2.修复发现的bug --- qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java | 256 ++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 184 insertions(+), 72 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 2fca011..554d672 100644 --- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java +++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java @@ -5,23 +5,26 @@ import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; -import android.widget.Toast; 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.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; -import com.dayu.qihealonelibrary.databinding.ActivityWriteTextBinding; +import com.dayu.qihealonelibrary.databinding.ActivityWriteTextQhaBinding; import com.dayu.qihealonelibrary.dbBean.AdminDataBean; import com.dayu.qihealonelibrary.dbBean.RechargeBean; import com.dayu.qihealonelibrary.dbBean.UserCardBean; @@ -31,6 +34,8 @@ import com.dayu.qihealonelibrary.utils.CardCommon; import com.tencent.bugly.crashreport.CrashReport; +import java.util.Calendar; + /** * Copyright (C), 2023, * Author: zuo @@ -39,8 +44,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; @@ -59,22 +82,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; @@ -86,15 +100,17 @@ //鏄惁鏄厖鍊艰繃绋� boolean isRecharge = false; - //鍏呭�奸�氫俊鏄惁瀹屾垚 - boolean rechargeIsOk = false; - ActivityWriteTextBinding binding; + + ActivityWriteTextQhaBinding binding; + + //褰撳墠鍗$殑鐗╃悊鍗″彿 + String cardNumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { - binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); + binding = ActivityWriteTextQhaBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); nfcWreatActivity = this; getData(); @@ -111,13 +127,25 @@ 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")) { manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard"); - binding.cardData.setText("鍒朵綔绠$悊鍗�"); + if (this.getIntent().hasExtra("userCardBean_manager")) { + userCardBeanByManager = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean_manager"); + } + binding.cardData.setText("鍒朵綔绠$悊鍗�(璇峰皢绠$悊鍗¤创鍦ㄨ澶囦笂)\n鐢ㄦ埛鍗″彿锛�" + manageCard.getUserCard()); } if (this.getIntent().hasExtra("registeredCard")) { registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard"); @@ -147,14 +175,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 + " 鍏僜n鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫筹紙鍚級"); } try { @@ -174,19 +207,33 @@ */ private void checkHasUser() { - String cardType = NfcReadHelper.getInstence(intent, this).getCradType(); - Log.i("NFCWreatActivity", "cardType=" + cardType); - if (cardType.equals(CardCommon.USER_CARD_TYPE_1) || - cardType.equals(CardCommon.USER_CARD_TYPE_2) || - cardType.equals(CardCommon.USER_CARD_TYPE_3) - ) { - binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖"); - binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red)); - } else if (cardType.equals("-1")) { - TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒"); - } else { - Log.i("NFCWreatActivity", "olduserCard!=null saveData"); - saveData(); + try { + String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber(); + + String[] cardTypes = cardType.split(","); + if (cardTypes != null && cardTypes.length == 2) { + cardNumber = cardType.split(",")[0]; + cardType = cardType.split(",")[1]; + } + Log.i("NFCWreatActivity", "cardType=" + cardType); + if (cardType.equals(CardCommon.USER_CARD_TYPE_1) || + cardType.equals(CardCommon.USER_CARD_TYPE_2) || + cardType.equals(CardCommon.USER_CARD_TYPE_3) + ) { + binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖"); + binding.textView.setTextColor(getResources().getColor(com.dayu.baselibrary.R.color.red)); + } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR1)) { + TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒"); + } 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(); + } + } catch (Exception e) { + e.printStackTrace(); } stopAnim(); @@ -200,16 +247,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(manageCard.getUserCard()); + baseDao.userCardDao().update(userCardBeanByManager); + } } if (registeredCard != null) { setRegisteredCard(intent, registeredCard); @@ -229,11 +289,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 { @@ -266,18 +326,16 @@ super.onNewIntent(intent); try { this.intent = intent; - startAnim(); +// startAnim(); Log.i("NFCWreatActivity", "isUser:" + isUser); if (isUser) { + //鏂板崱娉ㄥ唽閫昏緫 checkHasUser(); } else if (isRecharge) { - if (rechargeIsOk) { - rechargeWrratCard(); - } else { - Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show(); - } - + //鍏呭�奸�昏緫 + rechargeWreatCard(); } else { + //鍏朵粬绠$悊鍗¢�昏緫 saveData(); } } catch (Exception e) { @@ -300,20 +358,19 @@ 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.getCardNumber() + "\n"); data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + "鍏�" + "\n"); data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + "鍏�" + "\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(); + e.printStackTrace(); } } catch (Exception e) { @@ -333,32 +390,54 @@ } - //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹� - private void rechargeWrratCard() { - UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); - if (userCardold != null) { - //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 -// 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 { + private void rechargeWreatCard() { + String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber(); + //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 + 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(surplusWater)); + 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, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�"); } } 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); } /** @@ -367,10 +446,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); + } /** * 閲嶆柊娉ㄥ唽璁惧鍗� @@ -435,13 +543,18 @@ private void startDetailActivity(String userName, String statu) { - Intent detail = new Intent(this, RechargeDetail.class); + 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); + } + startActivity(detail); if (NewCardActivity.newCardActivity != null) { NewCardActivity.newCardActivity.finish(); @@ -451,7 +564,6 @@ } NFCWreatActivity.nfcWreatActivity.finish(); } - protected void onDestroy() { -- Gitblit v1.8.0