From d9c886270d66782df9de5f6a7b877a269a273aa5 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 12 十二月 2023 09:25:52 +0800
Subject: [PATCH] 卡标识设置添加选择器

---
 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java |  550 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 313 insertions(+), 237 deletions(-)

diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
index e765ae1..d902320 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -5,17 +5,25 @@
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
+import android.widget.Toast;
 
 import com.dayu.recharge.MyApplication;
 
+import com.dayu.recharge.R;
 import com.dayu.recharge.card.CleanCard;
 import com.dayu.recharge.card.CleanUserCard;
+import com.dayu.recharge.card.ConfigurationPowerCard;
+import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad;
+import com.dayu.recharge.card.DomainCard;
 import com.dayu.recharge.card.ManageCard;
 import com.dayu.recharge.card.RegisteredCard;
+import com.dayu.recharge.card.TestCard;
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.databinding.ActivityWriteTextBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.ElectricPriceBean;
 import com.dayu.recharge.dbBean.RechargeBean;
 import com.dayu.recharge.dbBean.UserCardBean;
 import com.dayu.recharge.net.SocketCallBack;
@@ -27,37 +35,28 @@
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.tools.NFCWriteHelper;
 import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.WriteCardUtils;
 import com.dayu.recharge.utils.AidlUtil;
 import com.dayu.recharge.utils.CRC8;
 import com.dayu.recharge.utils.DateUtil;
+import com.dayu.recharge.utils.DeviceNumberUtils;
 import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
 import com.dayu.recharge.utils.SocketUtil;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.utils.TipUtil;
 import com.tencent.bugly.crashreport.CrashReport;
 
 import java.util.Arrays;
 import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
 
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-08 21:19
+ * Description: nfc鍐欏崱鐣岄潰
+ */
 public class NFCWreatActivity extends BaseNfcActivity {
 
-
-    /**
-     * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
-     */
-    public final static int HAS_USER = 1;
-    /**
-     * 璇ュ崱鏈啓鍏ョ敤鎴蜂俊鎭�
-     */
-    public final static int NO_USER = 2;
-    /**
-     * 鍏呭��
-     */
-    public final static int RECHARGE = 3;
-
-    public final static int ERROR = -1;
 
     boolean cleanFlag = false;
     boolean userFlag = false;
@@ -65,13 +64,20 @@
     boolean registeredFlag = false;
     boolean administrativeCardFlag = false;
     boolean cleanUserCardFlag = false;
-    volatile UserCard userCard;
 
-    ManageCard manageCard;
+    boolean domainCrdFlag = false;
+
+    boolean testCardFlag = false;
+
+    boolean configDeviceRegiestFlag = false;
+
+    boolean configPowerFlag = false;
+
     UserCardBean userCardBean;
+    UserCard olduserCard;
 
-    CleanCard cleanCard;
     String morny;
+    String userName;
     AdminDataBean adminData;
     RechargeBean rechargeBean;
     Intent intent;
@@ -79,7 +85,14 @@
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
+    ManageCard manageCard;
+    DomainCard domainCard;
 
+    CleanCard cleanCard;
+    ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad;
+    TestCard testCard;
+
+    ConfigurationPowerCard configurationPowerCard;
     //鎵撳嵃
     MyApplication baseApp;
 
@@ -88,6 +101,11 @@
      * 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
      */
     boolean isUser = false;//
+
+    //鏄惁鏄厖鍊艰繃绋�
+    boolean isRecharge = false;
+    //鍏呭�奸�氫俊鏄惁瀹屾垚
+    boolean rechargeIsOk = false;
     ActivityWriteTextBinding binding;
 
     @Override
@@ -96,7 +114,6 @@
         try {
             binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
             setContentView(binding.getRoot());
-
             nfcWreatActivity = this;
             getData();
             baseApp = (MyApplication) getApplication();
@@ -111,24 +128,53 @@
         try {
             if (this.getIntent().hasExtra("userCard")) {
                 userCard = (UserCard) this.getIntent().getSerializableExtra("userCard");
-                isUser = true;
             }
             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("registeredCard")) {
                 registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard");
+                binding.cardData.setText("鍒朵綔閲嶆柊娉ㄥ唽璁惧鍗�");
             }
             if (this.getIntent().hasExtra("dbUserCard")) {
                 userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
+                isUser = true;
             }
             if (this.getIntent().hasExtra("cleanUserCard")) {
                 cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
+                binding.cardData.setText("鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�");
             }
-            morny = this.getIntent().getStringExtra("morny");
+            if (this.getIntent().hasExtra("domainCard")) {
+                domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard");
+                binding.cardData.setText("鍒朵綔璁剧疆鍩熷悕鍗�");
+            }
+            if (this.getIntent().hasExtra("testCard")) {
+                testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
+                binding.cardData.setText("鍒朵綔娴嬭瘯鍗�");
+            }
+            if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) {
+                configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad");
+                binding.cardData.setText("鍒朵綔閰嶇疆璁惧娉ㄥ唽淇℃伅鍗�");
+            }
+            if (this.getIntent().hasExtra("configurationPowerCard")) {
+                configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard");
+                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, "鍚敤");
+            }
+
             try {
                 adminData = baseDao.adminDao().findFirst();
             } catch (Exception e) {
@@ -145,46 +191,37 @@
      * 妫�娴嬫槸鍚︽槸鐢ㄦ埛鍗★紝鍋囧鏄敤鎴峰崱鐨勮瘽闇�瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗″亣濡傛槸鐢ㄦ埛鍗¢渶瑕�
      */
     private void checkHasUser() {
-        try {
-            NfcReadHelper.getInstence(intent)
-                    .getData(1, 0, new NfcReadHelper.NFCCallByteback() {
-                        @Override
-                        public void callBack(byte[] data) {
-                            Message message = new Message();
-                            String type = HexUtil.byteToHex(data[0]).toUpperCase();
-                            switch (type) {
-                                case "A1":
-                                case "A8":
-                                case "A2":
-                                    message.what = HAS_USER;
-                                    break;
-                                default:
-                                    message.what = NO_USER;
-                                    break;
-                            }
-                            handler.sendMessage(message);
-                        }
 
-                        @Override
-                        public void error() {
-                            Message message = new Message();
-                            message.what = ERROR;
-                            handler.sendMessage(message);
-                        }
-                    });
-        } catch (Exception e) {
-            e.printStackTrace();
-            CrashReport.postCatchedException(e);
+        String cardType = NfcReadHelper.getInstence(intent).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(R.color.red));
+        } else if (cardType.equals("-1")) {
+            TipUtil.show(NFCWreatActivity.this, "璇峰嬁绉诲姩鍗$墖锛岃鍗″け璐ヨ閲嶈瘯锛侊紒");
+        } else {
+            Log.i("NFCWreatActivity", "olduserCard!=null  saveData");
+            saveData();
         }
+
+        stopAnim();
     }
 
 
     private void saveData() {
         try {
             startAnim();
-            if (userCard != null || cleanCard != null || manageCard != null || registeredCard != null || cleanUserCard != null) {
-                if (userCard != null) {
-                    setUser(intent, userCard);
+            if (userCard != null || cleanCard != null || manageCard != null
+                    || registeredCard != null || cleanUserCard != null
+                    || domainCard != null || testCard != null
+                    || configureDeviceRegistrationCrad != null
+                    || configurationPowerCard != null) {
+                if (userCard != null && TextUtils.isEmpty(morny)) {
+
+                    userFlag = WriteCardUtils.setUser(intent, userCard);
                 }
                 if (cleanCard != null) {
                     setClean(intent, cleanCard);
@@ -198,23 +235,37 @@
                 if (cleanUserCard != null) {
                     setCleanUserCard(intent, cleanUserCard);
                 }
-
-                if ((userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag)) {
+                if (domainCard != null) {
+                    setDomainCard(intent, domainCard);
+                }
+                if (testCard != null) {
+                    setTestCard(intent, testCard);
+                }
+                if (configureDeviceRegistrationCrad != null) {
+                    setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad);
+                }
+                if (configurationPowerCard != null) {
+                    setConfigurationPower(intent, configurationPowerCard);
+                }
+                if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
                     try {
                         if (userFlag && userCardBean != null) {
-                            baseDao.userCardDao().insert(userCardBean);
-                            ToastUtil.show(this, "娉ㄥ唽鎴愬姛");
-                            NFCWreatActivity.this.finish();
-                            if (NewCardActivity.newCardActivity != null) {
-                                NewCardActivity.newCardActivity.finish();
-                            }
-
+                            //鐢ㄦ埛鍗�
+                            startDetailActivity(userCardBean.getUserName(), "鍚敤");
                         } else if (!TextUtils.isEmpty(morny)) {
-                            NFCWreatActivity.this.finish();
-                            ToastUtil.show(this, "鍏呭�兼垚鍔�");
+                            TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", new TipUtil.TipListener() {
+                                @Override
+                                public void onCancle() {
+                                    NFCWreatActivity.this.finish();
+                                }
+                            });
                         } else {
-                            NFCWreatActivity.this.finish();
-                            ToastUtil.show(this, "鍐欏崱鎴愬姛");
+                            TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", new TipUtil.TipListener() {
+                                @Override
+                                public void onCancle() {
+                                    NFCWreatActivity.this.finish();
+                                }
+                            });
                         }
 
                     } catch (Exception e) {
@@ -222,14 +273,15 @@
                         CrashReport.postCatchedException(e);
                     }
                 } else {
-                    ToastUtil.show(this, "鍐欏崱澶辫触");
+                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触");
                 }
                 stopAnim();
-            } else if (!TextUtils.isEmpty(morny)) {
-                readAllData(intent);
+            } else if (userCard == null && userCardBean != null) {
+                //琛ュ崱閫昏緫
+                selectBalance(userCardBean.getInitPeasantCode());
             } else {
                 stopAnim();
-                ToastUtil.show(this, "鍙傛暟閿欒");
+                TipUtil.show(this, "鍙傛暟閿欒");
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -239,11 +291,20 @@
 
     @Override
     public void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
         try {
             this.intent = intent;
             startAnim();
+            Log.i("NFCWreatActivity", "isUser:" + isUser);
             if (isUser) {
                 checkHasUser();
+            } else if (isRecharge) {
+                if (rechargeIsOk) {
+                    rechargeWrratCard();
+                } else {
+                    Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
+                }
+
             } else {
                 saveData();
             }
@@ -252,65 +313,6 @@
             CrashReport.postCatchedException(e);
         }
     }
-
-
-    /**
-     * 璇诲彇鍏ㄩ儴鏁版嵁
-     */
-    private void readAllData(Intent intent) {
-        try {
-            NfcReadHelper.getInstence(intent)
-                    .getAllData(new NfcReadHelper.NFCCallListback() {
-                        @Override
-                        public void callBack(Map<String, List<byte[]>> data) {
-                            Message message = new Message();
-//                           鑾峰彇1鎵囧尯鏁版嵁
-                            List<byte[]> oneSector = data.get("1");
-                            if (oneSector != null && oneSector.size() > 0) {
-                                userCard = UserCard.getBean(oneSector);
-                                message.what = RECHARGE;
-                            } else {
-                                message.what = ERROR;
-                            }
-                            handler.sendMessage(message);
-                        }
-
-                        @Override
-                        public void error() {
-                            Message message = new Message();
-                            message.what = ERROR;
-                            handler.sendMessage(message);
-                        }
-                    });
-        } catch (Exception e) {
-            e.printStackTrace();
-            CrashReport.postCatchedException(e);
-        }
-    }
-
-    Handler handler = new Handler(new Handler.Callback() {
-        @Override
-        public boolean handleMessage(Message msg) {
-            switch (msg.what) {
-
-                case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
-                    ToastUtil.show(NFCWreatActivity.this, "璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
-                    break;
-                case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
-                    saveData();
-                    break;
-                case RECHARGE://鍏呭�兼祦绋�
-                    selectBalance(userCard.getInitPeasantCode());
-                    break;
-                default:
-                    stopAnim();
-                    ToastUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
-                    break;
-
-            }
-            return false;
-        }
-    });
 
 
     /**
@@ -323,7 +325,7 @@
             StringBuffer data = new StringBuffer();
             if (rechargeBean != null) {
                 data.append("*****************************" + "\n");
-                data.append("  鍐滀笟姘翠环缁煎悎鏀归潻鍏呭�肩郴缁焅n\n");
+                data.append(getResources().getString(R.string.login_title) + "\n");
                 data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
                 data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
                 //            data.append("鎴�  鍙凤細" + rechargeBean.getUserNum() + "\n");
@@ -356,56 +358,71 @@
 
 
     //鍏呭�间笂浼狅紙Socket锛�
-    private void recharge(String initPeasantCode) {
+    private void recharge(String initPeasantCode, String name, String statu) {
         try {
             RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
             rechargeRequestBean.setControl("01");
-            String initCode = WSHelper.getInstance(this).get("initCode", "");
+            String initCode = DeviceNumberUtils.getDeviceNumber();
             rechargeRequestBean.setInitCode(initCode);
             rechargeRequestBean.setXuLie(SocketUtil.getXuLie(this));
             rechargeRequestBean.setAFN("95");
             rechargeRequestBean.setInitPeasantCode(initPeasantCode);
             rechargeRequestBean.setBalance(morny);
+
             rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this));
             SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() {
 
                 @Override
                 public void onSocketResponse(SocketData readData) {
+                    //閲戦
+                    byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+                    int balance = SocketUtil.get16to10LowHigh(blanceByte);
+                    //濮撳悕
+                    byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+                    userName = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
 
+                    byte[] orderByte = Arrays.copyOfRange(readData.getBodyBytes(), 19, 27);
+                    String orderId = BcdUtil.bcdToStr(orderByte);
                     if (CRC8.isCRC8(readData.getOriginDataBytes())) {
                         String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);
                         //00鍚敤01绂佺敤02闅跺睘淇℃伅涓嶇03鏃犳鍗′俊鎭�04鍏跺畠
                         if ("00".equalsIgnoreCase(state)) {
+                            rechargeIsOk = true;
+                            binding.cardData.setText("鍏呭�奸�氫俊瀹屾垚锛岃甯栧崱鍏呭��");
+                            rechargeBean = new RechargeBean();
+                            rechargeBean.setDate(System.currentTimeMillis());
+                            rechargeBean.setMorny(morny);
+                            rechargeBean.setUserName(name);
+
+                            rechargeBean.setSerial(adminData.getSerial());
+                            userCard.setRechargeDate(Calendar.getInstance());
+                            rechargeBean.setBalance(MornyUtil.changeF2Y(balance));
+                            rechargeBean.setInitPeasantCode(initPeasantCode);
+                            rechargeBean.setOrderID(orderId);
                             try {
                                 baseDao.rechargeDao().insert(rechargeBean);
                             } catch (Exception e) {
                                 e.printStackTrace();
                             }
                             userCard.setRechargeTimes(userCard.getRechargeTimes() + 1);
-                            setUser(intent, userCard);
-                            //   鎵撳嵃鐩稿叧
-                            setPrinterData(rechargeBean);
-                            ToastUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛");
-                            RechargeActivity.rechargeActivity.finish();
-                            NFCWreatActivity.nfcWreatActivity.finish();
                         } else if ("01".equalsIgnoreCase(state)) {
+                            userCard.setState("01");
+                            userFlag = WriteCardUtils.setUser(intent, userCard);
                             NFCWreatActivity.this.finish();
-                            ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-绂佺敤");
+                            TipUtil.show("鍏呭�兼姤鏂囬敊璇�-绂佺敤");
                         } else if ("02".equalsIgnoreCase(state)) {
-                            ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
+                            TipUtil.show("鍏呭�兼姤鏂囬敊璇�-闅跺睘淇℃伅涓嶇");
                             NFCWreatActivity.this.finish();
                         } else if ("03".equalsIgnoreCase(state)) {
-                            ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
+                            TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鏃犳鍗′俊鎭�");
                             NFCWreatActivity.this.finish();
                         } else {
-                            ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
+                            TipUtil.show("鍏呭�兼姤鏂囬敊璇�-鍏跺畠");
                             NFCWreatActivity.this.finish();
                         }
-
-
                     } else {
                         //鏍¢獙CRC閿欒
-                        ToastUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
+                        TipUtil.show(NFCWreatActivity.this, "鍏呭�兼姤鏂囬敊璇牎楠孋RC閿欒");
                         NFCWreatActivity.this.finish();
                     }
                     stopAnim();
@@ -414,7 +431,7 @@
                 @Override
                 public void onSocketError(int code, String msg) {
                     stopAnim();
-                    ToastUtil.show(NFCWreatActivity.this, msg);
+                    TipUtil.show(NFCWreatActivity.this, msg);
                 }
             });
         } catch (Exception e) {
@@ -424,13 +441,31 @@
 
     }
 
-    private void setmanageCard(Intent intent, final ManageCard manageCard) {
-        NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                manageCardFlag = flag;
+    //寰�鍗″唴鍐欏厖鍊煎悗鐨勬暟鎹�
+    private void rechargeWrratCard() {
+        UserCard userCardold = NfcReadHelper.getInstence(intent).getUserCardData();
+        if (userCardold != null) {
+            //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱
+            if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) {
+                userCard.setState("00");
+                userFlag = WriteCardUtils.setUser(intent, userCard);
+                //   鎵撳嵃鐩稿叧
+                if (userFlag) {
+                    setPrinterData(rechargeBean);
+                    startDetailActivity(userName, "鍚敤");
+                } else {
+                    TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯");
+                }
+            } else {
+                TipUtil.show(NFCWreatActivity.this, "璇诲彇鐨勫崱鍜屽厖鍊肩殑鍗′笉涓�鑷�");
             }
-        });
+        } else {
+
+        }
+    }
+
+    private void setmanageCard(Intent intent, final ManageCard manageCard) {
+        manageCardFlag = NFCWriteHelper.getInstence(intent).writeData(manageCard.toZeroByte(), 1, 0);
     }
 
     /**
@@ -440,35 +475,9 @@
      * @param clearOrInitCard
      */
     private void setClean(Intent intent, final CleanCard clearOrInitCard) {
-        NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                cleanFlag = flag;
-            }
-        });
+        cleanFlag = NFCWriteHelper.getInstence(intent).writeData(clearOrInitCard.toByte(), 1, 0);
     }
 
-    //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅
-    private void setUser(Intent intent, UserCard userCard) {
-        NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                userFlag = flag;
-            }
-        });
-        NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                userFlag = flag;
-            }
-        });
-        NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                userFlag = flag;
-            }
-        });
-    }
 
     /**
      * 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -477,24 +486,82 @@
      * @param registeredCard
      */
     private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) {
-        NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                registeredFlag = flag;
-            }
-        });
-    }
-
-    private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
-        NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                cleanUserCardFlag = flag;
-            }
-        });
+        registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
     }
 
     /**
+     * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�
+     *
+     * @param intent
+     * @param cleanUserCard
+     */
+    private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) {
+        cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
+    }
+
+    /**
+     * 璁剧疆鍩熷悕鍗�
+     *
+     * @param intent
+     * @param domainCard
+     */
+    private void setDomainCard(Intent intent, DomainCard domainCard) {
+        try {
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
+            if (!domainCrdFlag) {
+                return;
+            }
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
+            if (!domainCrdFlag) {
+                return;
+            }
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).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).writeData(testCard.toByte(), 1, 0);
+    }
+
+
+    private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
+        configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
+    }
+
+    private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
+        try {
+            configPowerFlag = NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0);
+        } catch (Exception e) {
+            configPowerFlag = false;
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    private void startDetailActivity(String userName, String statu) {
+        Intent detail = new Intent(this, RechargeDetail.class);
+        detail.putExtra("userName", userName);
+        detail.putExtra("statu", statu);
+        detail.putExtra("userCard", userCard);
+        if (!TextUtils.isEmpty(morny)) {
+            detail.putExtra("morny", morny);
+        }
+        startActivity(detail);
+        if (NewCardActivity.newCardActivity != null) {
+            NewCardActivity.newCardActivity.finish();
+        }
+        if (RechargeActivity.rechargeActivity != null) {
+            RechargeActivity.rechargeActivity.finish();
+        }
+        NFCWreatActivity.nfcWreatActivity.finish();
+    }
+
+    /**
+     * 鏌ヨ浣欓
+     *
      * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
      */
     private void selectBalance(String initPeasantCode) {
@@ -503,7 +570,7 @@
             BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
             requestBean.setAFN("94");
             requestBean.setControl("01");
-            String initCode = WSHelper.getInstance(this).get("initCode", "");
+            String initCode = DeviceNumberUtils.getDeviceNumber();
             requestBean.setInitCode(initCode);
             requestBean.setInitPeasantCode(initPeasantCode);
             requestBean.setXuLie(SocketUtil.getXuLie(this));
@@ -511,51 +578,55 @@
                 @Override
                 public void onSocketResponse(SocketData readData) {
                     if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-
                         StringBuffer stateText = null;
-
                         try {
                             stateText = new StringBuffer();
-                            stateText.append("鐘�    鎬侊細");
                             String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
-                            if ("00".equals(state)) {
-                                //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
-                                //閲戦
-                                byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
-                                int balance = SocketUtil.get16to10LowHigh(blanceByte);
-                                //濮撳悕
-                                byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
-                                String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
-                                rechargeBean = new RechargeBean();
-                                rechargeBean.setDate(System.currentTimeMillis());
-                                rechargeBean.setMorny(morny);
-                                if (userCardBean != null) {
-                                    rechargeBean.setUserName(userCardBean.getUserName());
+                            if (userCard == null) {
+                                userCard = new UserCard();
+                                userCard.setRechargeTimes(0);
+                                ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
+                                if (electricPriceBean != null) {
+                                    userCard.setElectricityPrice(electricPriceBean.getPrice());
                                 } else {
-                                    rechargeBean.setUserName(name);
+                                    //榛樿鏄�1鍏�
+                                    userCard.setElectricityPrice(1.000f);
                                 }
-                                List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll();
-                                String userId = "";
-                                if (userCardBeans != null) {
-                                    for (int i = 0; i < userCardBeans.size(); i++) {
-                                        if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) {
-                                            userId = userCardBeans.get(i).getUserID();
-                                        }
-                                    }
-                                }
-                                rechargeBean.setSerial(adminData.getSerial());
-                                userCard.setBalance(balance);
-                                userCard.setRechargeDate(Calendar.getInstance());
-                                rechargeBean.setBalance(MornyUtil.changeF2Y(balance) + "");
-                                rechargeBean.setUserId(userId);
-                                //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
-                                recharge(initPeasantCode);
+                                userCard.setSwipeNumber((short) 0);
+                                userCard.setState("00");
+                                userCard.setBalance(0);
+                                userCard.setAddressCode(adminData.getAddressCode());
+                                userCard.setInitPeasantCode(initPeasantCode);
+                            }
+                            //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+                            //閲戦
+                            byte[] blanceByte = Arrays.copyOfRange(readData.getBodyBytes(), 3, 7);
+                            int balance = SocketUtil.get16to10LowHigh(blanceByte);
+                            //濮撳悕
+                            byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
+                            String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
+                            if ("00".equals(state)) {
                                 stateText.append("鍚敤");
+                                userCard.setBalance(balance);
+                                userCard.setState("00");
+                                //琛ュ崱閫昏緫
+                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                if (userFlag) {
+                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛", new TipUtil.TipListener() {
+                                        @Override
+                                        public void onCancle() {
+                                            NFCWreatActivity.this.finish();
+                                        }
+                                    });
+                                }
                                 return;
                             } else if ("01".equals(state)) {
                                 stateText.append("绂佺敤");
                                 userCard.setState("01");
-                                setUser(intent, userCard);
+                                userCard.setBalance(balance);
+                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                startDetailActivity(name, stateText.toString());
+
                             } else if ("02".equals(state)) {
                                 stateText.append("闅跺睘淇℃伅涓嶇");
                             } else if ("03".equals(state)) {
@@ -563,21 +634,23 @@
                             } else if ("04".equals(state)) {
                                 stateText.append("鍏跺畠");
                             }
-                            ToastUtil.show(NFCWreatActivity.this, stateText.toString());
+                            stopAnim();
+                            binding.cardData.setText(stateText);
+                            TipUtil.show(NFCWreatActivity.this, stateText.toString());
                         } catch (Exception e) {
                             e.printStackTrace();
                             stopAnim();
                         }
                     } else {
                         //鏍¢獙CRC閿欒
-                        ToastUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+                        TipUtil.show(NFCWreatActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
                     }
                 }
 
                 @Override
                 public void onSocketError(int code, String msg) {
                     stopAnim();
-                    ToastUtil.show(NFCWreatActivity.this, msg);
+                    TipUtil.show(NFCWreatActivity.this, msg);
                 }
             });
         } catch (Exception e) {
@@ -586,5 +659,8 @@
         }
 
     }
-
+    protected void onDestroy() {
+        super.onDestroy();
+        nfcWreatActivity=null;
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0