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