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 |  261 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 185 insertions(+), 76 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 e927b75..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,34 +5,36 @@
 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.R;
 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;
 import com.dayu.qihealonelibrary.tools.NFCWriteHelper;
 import com.dayu.qihealonelibrary.tools.NfcReadHelper;
 import com.dayu.qihealonelibrary.tools.WriteCardUtils;
-import com.dayu.qihealonelibrary.utils.DeviceNumberUtils;
-import com.dayu.qihealonelibrary.utils.MyCommon;
+import com.dayu.qihealonelibrary.utils.CardCommon;
 import com.tencent.bugly.crashreport.CrashReport;
-import java.util.Arrays;
+
+import java.util.Calendar;
 
 /**
  * Copyright (C), 2023,
@@ -42,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;
@@ -62,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;
 
@@ -89,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();
@@ -114,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");
@@ -150,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 {
@@ -177,19 +207,33 @@
      */
     private void checkHasUser() {
 
-        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(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();
@@ -203,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);
@@ -232,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 {
@@ -269,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) {
@@ -303,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) {
@@ -336,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);
     }
 
     /**
@@ -370,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);
+    }
 
     /**
      * 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -438,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();
@@ -454,7 +564,6 @@
         }
         NFCWreatActivity.nfcWreatActivity.finish();
     }
-
 
 
     protected void onDestroy() {

--
Gitblit v1.8.0