From 1ffa3cb19f95855d44fbc9485f4eb3286b12e359 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 22 十一月 2023 12:43:17 +0800
Subject: [PATCH] 修改提示方式 修改充值流程

---
 app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java   |    6 
 app/src/main/java/com/dayu/recharge/activity/MyActivity.java            |   13 
 app/src/main/res/layout/activity_admin_setup.xml                        |   58 -
 app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java            |   59 ++
 app/src/main/java/com/dayu/recharge/utils/ToastUtil.java                |   16 
 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java       |   43 
 app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java   |    4 
 app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java           |   30 +
 app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java       |   71 ++
 app/src/main/res/layout/activity_recharge.xml                           |  157 ++++
 app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java      |  417 ++++++--------
 app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java      |   10 
 app/src/main/java/com/dayu/recharge/view/PassWordDialog.java            |    5 
 app/src/main/res/values/colors.xml                                      |    1 
 app/src/main/java/com/dayu/recharge/activity/SysActivity.java           |    6 
 app/src/main/res/layout/text_dialog.xml                                 |   54 +
 app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java    |   24 
 app/src/main/java/com/dayu/recharge/activity/DomainActivity.java        |   12 
 app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java        |   81 ++
 app/src/main/res/layout/activity_my.xml                                 |    2 
 app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java      |  133 ++++
 app/src/main/res/layout/activity_recharge_detail.xml                    |   80 ++
 app/src/main/java/com/dayu/recharge/view/TipDialog.java                 |   91 +++
 app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java |    6 
 app/src/main/res/layout/activity_new_card.xml                           |    4 
 app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java       |   49 +
 app/src/main/java/com/dayu/recharge/activity/PowerActivity.java         |    6 
 app/src/main/AndroidManifest.xml                                        |   12 
 app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java  |    4 
 app/src/main/java/com/dayu/recharge/activity/HomeActivity.java          |   21 
 app/src/main/java/com/dayu/recharge/MyApplication.java                  |   15 
 app/src/main/java/com/dayu/recharge/net/SocketNet.java                  |   32 
 app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java           |   29 
 app/src/main/java/com/dayu/recharge/utils/TipUtil.java                  |   38 +
 app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java   |    5 
 app/src/main/res/layout/activity_home.xml                               |    2 
 app/src/main/java/com/dayu/recharge/view/EdtDialog.java                 |    6 
 app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java            |   30 
 app/src/main/res/layout/activity_red_card.xml                           |    6 
 39 files changed, 1,158 insertions(+), 480 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9d92012..a680c04 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -78,7 +78,14 @@
 
         <activity android:name=".activity.PassWordActivity" />
         <activity android:name=".activity.MyActivity" />
-        <activity android:name=".activity.RechargeActivity" />
+        <activity
+            android:name=".activity.RechargeActivity"
+            android:launchMode="singleTop">
+            <intent-filter>
+                <action android:name="android.nfc.action.TAG_DISCOVERED" />
+                <data android:mimeType="text/plain" />
+            </intent-filter>
+        </activity>
 
         <activity
             android:name=".activity.ReadCardAcitivy"
@@ -106,7 +113,8 @@
         <activity android:name=".activity.DomainActivity" />
         <activity android:name=".activity.ElectricPriceActivity" />
         <activity android:name=".activity.IdentifyingActivity" />
-        <activity android:name=".activity.ReplacementActivity"/>
+        <activity android:name=".activity.ReplacementActivity" />
+        <activity android:name=".activity.RechargeDetail" />
 
 
         <meta-data
diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java
index 2b4e13f..eac3399 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -9,9 +9,9 @@
 import com.dayu.recharge.dao.BaseDaoSingleton;
 import com.dayu.recharge.dbBean.DeviceNumber;
 import com.dayu.recharge.dbBean.IpBean;
+import com.dayu.recharge.utils.ToastUtil;
 import com.easysocket.EasySocket;
 import com.easysocket.config.EasySocketOptions;
-import com.easysocket.connection.action.SocketStatus;
 import com.easysocket.entity.SocketAddress;
 import com.tencent.bugly.crashreport.CrashReport;
 import com.dayu.recharge.net.ScoketMessageProtocol;
@@ -26,8 +26,7 @@
 import com.dayu.recharge.utils.AidlUtil;
 import com.dayu.recharge.utils.CRC8;
 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 java.util.Arrays;
@@ -100,7 +99,7 @@
                                     createSocket(msg.obj + "", ipBean.getPort());
                                     break;
                                 case 2:
-                                    ToastUtil.show(MyApplication.this, "DNS瑙f瀽澶辫触");
+                                    ToastUtil.show("DNS瑙f瀽澶辫触");
                                     break;
                             }
 
@@ -186,14 +185,14 @@
                                             BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
 
 //                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
-                                            ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+                                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
                                         } else {
                                             //鏍¢獙CRC閿欒
-                                            ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                            ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
                                         }
                                     } else {
                                         //鏍¢獙CRC閿欒
-                                        ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
+                                        ToastUtil.show("纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                     }
                                 }
 
@@ -203,7 +202,7 @@
                                 }
                             });
                         } else {//鏍¢獙CRC閿欒
-                            ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+                            ToastUtil.show("鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
                         }
                     }
 
diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
index 91d6565..cfac406 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -12,7 +12,7 @@
 import com.dayu.recharge.databinding.ActivityAdminSetupBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
 import com.dayu.recharge.dbBean.IpBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.example.pickerviewlibrary.picker.TeaPickerView;
 import com.example.pickerviewlibrary.picker.entity.PickerData;
 import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener;
@@ -54,19 +54,21 @@
         adminBinding.setupOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (!TextUtils.isEmpty(adminBinding.adminName.getText().toString())
-                        && !TextUtils.isEmpty(adminBinding.adminPhone.getText().toString())
-                        && !TextUtils.isEmpty(adminData.getCun())
+                if (!TextUtils.isEmpty(adminData.getCun())
                         && !TextUtils.isEmpty(adminBinding.adminSerial.getText().toString())
                 ) {
                     if (Integer.valueOf(adminBinding.adminSerial.getText().toString()) <= 16777215) {
-                        adminData.setName(adminBinding.adminName.getText().toString());
-                        adminData.setPhone(adminBinding.adminPhone.getText().toString());
+                        adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                         adminData.setSerial(adminBinding.adminSerial.getText().toString());
                         baseDao.adminDao().insert(adminData);
                         MyApplication.myApplication.initEasySocket(false, null);
 
-                        ToastUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛");
+                        TipUtil.show(AdminSetupActivity.this, "璁剧疆鎴愬姛", new TipUtil.TipListener() {
+                            @Override
+                            public void onCancle() {
+                                AdminSetupActivity.this.finish();
+                            }
+                        });
                         setData();
                         IpBean ipBean = baseDao.ipDao().findFirst();
                         if (ipBean != null) {
@@ -74,10 +76,10 @@
                         }
 
                     } else {
-                        ToastUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+                        TipUtil.show(AdminSetupActivity.this, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
                     }
                 } else {
-                    ToastUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                    TipUtil.show(AdminSetupActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
                 }
             }
         });
@@ -108,8 +110,7 @@
             if (adminData != null) {
                 this.adminData = adminData;
                 adminBinding.adminSerial.setText(adminData.getSerial());
-                adminBinding.adminPhone.setText(adminData.getPhone());
-                adminBinding.adminName.setText(adminData.getName());
+                adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                 adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
             } else {
                 adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN()));
@@ -151,6 +152,7 @@
                         adminData.setAddressCode(pickerData.getSecondText().getCode());
                     }
                     adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+                    adminBinding.adminAddressCode.setText(adminData.getAddressCode());
                     pickerView.dismiss();
                 }
             });
diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
index 5b1e40b..a27aa80 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -9,8 +9,16 @@
 import android.content.Context;
 import android.content.Intent;
 import android.nfc.NfcAdapter;
+import android.os.Handler;
+import android.os.Message;
 
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.card.UserCard;
+import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.utils.TipUtil;
+import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * Author:Created by Ricky on 2017/8/25.
@@ -22,8 +30,27 @@
  * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
  */
 public class BaseNfcActivity extends BaseActivity {
+
+    /**
+     * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
+     */
+    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;
+
     protected NfcAdapter mNfcAdapter;
     private PendingIntent mPendingIntent;
+
+    volatile UserCard userCard;
+    Handler handler;
 
     /**
      * onCreat->onStart->onResume->onPause->onStop->onDestroy
@@ -71,13 +98,51 @@
      */
     protected Boolean ifNFCUse(Context context) {
         if (mNfcAdapter == null) {
-            ToastUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�");
+            TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�");
             return false;
         }
         if (mNfcAdapter != null && !mNfcAdapter.isEnabled()) {
-            ToastUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
+            TipUtil.show(context, "璇峰湪绯荤粺璁剧疆涓厛鍚敤NFC鍔熻兘锛�");
             return false;
         }
         return true;
     }
+
+    /**
+     * 璇诲彇鍏ㄩ儴鏁版嵁
+     */
+    public 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;
+                            }
+                            if (handler != null) {
+                                handler.sendMessage(message);
+                            }
+                        }
+
+                        @Override
+                        public void error(int code) {
+                            if (handler != null) {
+                                Message message = new Message();
+                                message.what = ERROR;
+                                handler.sendMessage(message);
+                            }
+                        }
+                    });
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+    }
 }
diff --git a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
index 9c15735..7cf1cae 100644
--- a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
@@ -7,7 +7,7 @@
 
 import com.dayu.recharge.databinding.ActivityDomainBinding;
 import com.dayu.recharge.dbBean.DomainBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Created by Android Studio.
@@ -34,27 +34,27 @@
                 String port = binding.port.getText().toString();
                 int portInt = 0;
                 if (TextUtils.isEmpty(domainNumber)) {
-                    ToastUtil.show("璇疯緭鍏ユ纭殑鍩熷悕搴忓彿");
+                    TipUtil.show("璇疯緭鍏ユ纭殑鍩熷悕搴忓彿");
                     return;
                 }
                 if (TextUtils.isEmpty(port)) {
-                    ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
+                    TipUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
                     return;
                 } else {
                     portInt = Integer.valueOf(port);
                 }
                 if (TextUtils.isEmpty(domain)) {
-                    ToastUtil.show("璇疯緭鍏ュ煙鍚�");
+                    TipUtil.show("璇疯緭鍏ュ煙鍚�");
                     return;
                 } else if (portInt <= 0 || portInt > 65535) {
-                    ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
+                    TipUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
                     return;
                 }
                 domainBean.setDomainNumber(domainNumber);
                 domainBean.setDomain(domain);
                 domainBean.setPort(portInt);
                 baseDao.domainPortDao().insert(domainBean);
-                ToastUtil.show("淇濆瓨鎴愬姛");
+                TipUtil.show("淇濆瓨鎴愬姛");
                 initData();
             }
         });
diff --git a/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java b/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java
index a49d247..d98ecd5 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java
@@ -7,7 +7,7 @@
 
 import com.dayu.recharge.databinding.ActivityElectricPriceBinding;
 import com.dayu.recharge.dbBean.ElectricPriceBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Copyright (C), 2023,
@@ -33,10 +33,10 @@
                 if (!TextUtils.isEmpty(electricPriceBinding.electricNewNum.getText())) {
                     electricPriceBean.setPrice(Float.parseFloat(electricPriceBinding.electricNewNum.getText().toString()));
                     baseDao.electricPriceDao().insert(electricPriceBean);
-                    ToastUtil.show("淇濆瓨鎴愬姛");
+                    TipUtil.show("淇濆瓨鎴愬姛");
                     initData();
                 } else {
-                    ToastUtil.show("璇疯緭鍏ユ纭噾棰�");
+                    TipUtil.show("璇疯緭鍏ユ纭噾棰�");
                 }
             }
         });
diff --git a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
index ea32a72..cfa7ada 100644
--- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -8,7 +8,7 @@
 
 import com.dayu.recharge.databinding.ActivityHomeBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.permissionx.guolindev.PermissionX;
 
 
@@ -20,12 +20,13 @@
  */
 public class HomeActivity extends BaseActivity {
 
-
+    public static HomeActivity homeActivity;
     ActivityHomeBinding homeBinding;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        homeActivity = this;
         homeBinding = ActivityHomeBinding.inflate(LayoutInflater.from(this));
         setContentView(homeBinding.getRoot());
         initView();
@@ -52,11 +53,11 @@
         homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                AdminDataBean adminData= baseDao.adminDao().findFirst();
-                if (adminData!=null){
+                AdminDataBean adminData = baseDao.adminDao().findFirst();
+                if (adminData != null) {
                     startActivity(new Intent(HomeActivity.this, NewCardActivity.class));
-                }else {
-                    ToastUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�");
+                } else {
+                    TipUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�");
                 }
 
             }
@@ -64,7 +65,13 @@
         homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
+                AdminDataBean adminData = baseDao.adminDao().findFirst();
+                if (adminData != null) {
+                    startActivity(new Intent(HomeActivity.this, RechargeActivity.class));
+                } else {
+                    TipUtil.show("璇峰厛璁剧疆绠$悊鍛樹俊鎭�");
+                }
+
             }
         });
         homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() {
diff --git a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
index 77d30e1..58821bd 100644
--- a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
@@ -7,7 +7,7 @@
 
 import com.dayu.recharge.databinding.ActivityIdentyfyingBinding;
 import com.dayu.recharge.dbBean.IdentityBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Created by Android Studio.
@@ -41,9 +41,9 @@
                 if (!TextUtils.isEmpty(data)){
                     myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString());
                     baseDao.identityDao().insert(myIdentityBean);
-                    ToastUtil.show("淇濆瓨鎴愬姛");
+                    TipUtil.show("淇濆瓨鎴愬姛");
                 }else {
-                    ToastUtil.show("璇疯緭鍏ュ崱鏍囪瘑");
+                    TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑");
                 }
 
             }
diff --git a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
index 758307a..0e9a60f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -16,8 +16,7 @@
 import com.dayu.recharge.net.SocketNet;
 import com.dayu.recharge.utils.DeviceNumberUtils;
 import com.dayu.recharge.utils.ExcelUtil;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.PassWordDialog;
 import com.dayu.recharge.view.datepicker.CustomDatePicker;
 import com.dayu.recharge.view.datepicker.DateFormatUtils;
@@ -143,7 +142,7 @@
         String[] title;
         String fileName;
         if (listData == null || listData.size() == 0) {
-            ToastUtil.show(MyActivity.this, "璁板綍涓虹┖");
+            TipUtil.show(MyActivity.this, "璁板綍涓虹┖");
             return;
         }
         if (isRechargeList) {
@@ -180,11 +179,11 @@
         try {
             adminData = baseDao.adminDao().findFirst();
             if (adminData != null) {
-                myBinding.myAdminName.setText(adminData.getName());
+                myBinding.myAdminName.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
                 myBinding.myVillageNum.setText(adminData.getSerial());
             } else {
-                myBinding.myAdminName.setText("璇风偣鍑荤鐞嗗憳璁剧疆");
-                myBinding.myVillageNum.setText("璇风偣鍑荤鐞嗗憳璁剧疆");
+                myBinding.myAdminName.setText("璇风偣鍑诲湴鍧�淇℃伅璁剧疆");
+                myBinding.myVillageNum.setText("璇风偣鍑诲湴鍧�淇℃伅璁剧疆");
             }
             StringBuilder msgData = new StringBuilder();
             if (MyApplication.myApplication.isConncet) {
@@ -239,7 +238,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    ToastUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(MyActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     try {
                         endTime = endTime + (1000 * 60 * 60 * 24) - 1;
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 5355d4f..eef5996 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -6,6 +6,7 @@
 import android.os.Message;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
+import android.widget.Toast;
 
 import com.dayu.recharge.MyApplication;
 
@@ -21,7 +22,6 @@
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.databinding.ActivityWriteTextBinding;
 import com.dayu.recharge.dbBean.AdminDataBean;
-import com.dayu.recharge.dbBean.DeviceNumber;
 import com.dayu.recharge.dbBean.ElectricPriceBean;
 import com.dayu.recharge.dbBean.RechargeBean;
 import com.dayu.recharge.dbBean.UserCardBean;
@@ -34,20 +34,18 @@
 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.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,
@@ -57,21 +55,6 @@
  */
 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;
@@ -92,6 +75,7 @@
 
 
     String morny;
+    String userName;
     AdminDataBean adminData;
     RechargeBean rechargeBean;
     Intent intent;
@@ -99,7 +83,6 @@
 
     RegisteredCard registeredCard;
     CleanUserCard cleanUserCard;
-    volatile UserCard userCard;
     ManageCard manageCard;
     DomainCard domainCard;
 
@@ -116,6 +99,11 @@
      * 鏄惁鏄敤鎴峰崱锛屽亣濡傛槸鐢ㄦ埛鍗$殑璇濋渶瑕佹娴嬪崱鐗囨槸鍚﹀凡缁忓紑杩囨埛锛屽亣濡傚凡寮�鎴峰垯鎶ラ敊涓嶈兘鍐嶅啓鍗�
      */
     boolean isUser = false;//
+
+    //鏄惁鏄厖鍊艰繃绋�
+    boolean isRecharge = false;
+    //鍏呭�奸�氫俊鏄惁瀹屾垚
+    boolean rechargeIsOk = false;
     ActivityWriteTextBinding binding;
 
     @Override
@@ -124,7 +112,7 @@
         try {
             binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this));
             setContentView(binding.getRoot());
-
+            initView();
             nfcWreatActivity = this;
             getData();
             baseApp = (MyApplication) getApplication();
@@ -134,12 +122,36 @@
         }
     }
 
+    private void initView() {
+        handler = new Handler(new Handler.Callback() {
+            @Override
+            public boolean handleMessage(Message msg) {
+                switch (msg.what) {
+
+                    case HAS_USER://鍒ゆ柇宸插啓鍏ョ敤鎴�
+                        binding.textView.setText("璇ュ崱宸茬粡鍐欏叆鐢ㄦ埛淇℃伅锛岃鏇存崲鍗$墖");
+                        binding.textView.setTextColor(getResources().getColor(R.color.red));
+                        stopAnim();
+                        break;
+                    case NO_USER://娌℃湁鍐欒繃鐢ㄦ埛缁х画淇濆瓨
+                        saveData();
+                        break;
+                    default:
+                        stopAnim();
+                        TipUtil.show(NFCWreatActivity.this, "鍗$墖璇诲彇澶辫触");
+                        break;
+
+                }
+                return false;
+            }
+        });
+    }
+
 
     private void getData() {
         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");
@@ -155,6 +167,7 @@
             }
             if (this.getIntent().hasExtra("dbUserCard")) {
                 userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
+                isUser = true;
             }
             if (this.getIntent().hasExtra("cleanUserCard")) {
                 cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
@@ -177,8 +190,13 @@
                 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 {
@@ -239,8 +257,8 @@
                     || domainCard != null || testCard != null
                     || configureDeviceRegistrationCrad != null
                     || configurationPowerCard != null) {
-                if (userCard != null) {
-                    setUser(intent, userCard);
+                if (userCard != null && TextUtils.isEmpty(morny)) {
+                    userFlag = WriteCardUtils.setUser(intent, userCard);
                 }
                 if (cleanCard != null) {
                     setClean(intent, cleanCard);
@@ -269,19 +287,14 @@
                 if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
                     try {
                         if (userFlag && userCardBean != null) {
-
-                            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("鍏呭�兼垚鍔�");
                         } else {
                             NFCWreatActivity.this.finish();
-                            ToastUtil.show(this, "鍐欏崱鎴愬姛");
+                            TipUtil.show("鍐欏崱鎴愬姛");
                         }
 
                     } catch (Exception e) {
@@ -289,17 +302,19 @@
                         CrashReport.postCatchedException(e);
                     }
                 } else {
-                    ToastUtil.show(this, "鍐欏崱澶辫触");
+                    TipUtil.show("鍐欏崱澶辫触");
                 }
                 stopAnim();
-            } else if (!TextUtils.isEmpty(morny)) {
-                readAllData(intent);
-            } else if (userCard == null && userCardBean != null) {
+            }
+//            else if (!TextUtils.isEmpty(morny)) {
+//
+//            }
+            else if (userCard == null && userCardBean != null) {
                 //琛ュ崱閫昏緫
                 selectBalance(userCardBean.getInitPeasantCode());
             } else {
                 stopAnim();
-                ToastUtil.show(this, "鍙傛暟閿欒");
+                TipUtil.show(this, "鍙傛暟閿欒");
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -309,11 +324,19 @@
 
     @Override
     public void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
         try {
             this.intent = intent;
             startAnim();
             if (isUser) {
                 checkHasUser();
+            } else if (isRecharge) {
+                if (rechargeIsOk) {
+                    rechargeWrratCard();
+                } else {
+                    Toast.makeText(this, "姝e湪閫氫俊璇风◢鍚�", Toast.LENGTH_SHORT).show();
+                }
+
             } else {
                 saveData();
             }
@@ -322,65 +345,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(int code) {
-                            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;
-        }
-    });
 
 
     /**
@@ -426,7 +390,7 @@
 
 
     //鍏呭�间笂浼狅紙Socket锛�
-    private void recharge(String initPeasantCode) {
+    private void recharge(String initPeasantCode, String name, String statu) {
         try {
             RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
             rechargeRequestBean.setControl("01");
@@ -436,46 +400,61 @@
             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 + MornyUtil.changeY2F(morny)) + "");
+                            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();
@@ -484,7 +463,7 @@
                 @Override
                 public void onSocketError(int code, String msg) {
                     stopAnim();
-                    ToastUtil.show(NFCWreatActivity.this, msg);
+                    TipUtil.show(NFCWreatActivity.this, msg);
                 }
             });
         } catch (Exception e) {
@@ -494,13 +473,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);
     }
 
     /**
@@ -510,41 +507,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;
-            }
-        });
-        if (!userFlag) {
-            return;
-        }
-        NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                userFlag = flag;
-            }
-        });
-        if (!userFlag) {
-            return;
-        }
-        NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                userFlag = flag;
-            }
-        });
-    }
 
     /**
      * 閲嶆柊娉ㄥ唽璁惧鍗�
@@ -553,12 +518,7 @@
      * @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;
-            }
-        });
+        registeredFlag = NFCWriteHelper.getInstence(intent).writeData(registeredCard.toByte(), 1, 0);
     }
 
     /**
@@ -568,12 +528,7 @@
      * @param cleanUserCard
      */
     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;
-            }
-        });
+        cleanUserCardFlag = NFCWriteHelper.getInstence(intent).writeData(cleanUserCard.toByte(), 1, 0);
     }
 
     /**
@@ -584,30 +539,15 @@
      */
     private void setDomainCard(Intent intent, DomainCard domainCard) {
         try {
-            NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-                @Override
-                public void isSusses(boolean flag) {
-                    domainCrdFlag = flag;
-                }
-            });
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getZeroByte(), 1, 0);
             if (!domainCrdFlag) {
                 return;
             }
-            NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1, new NFCWriteHelper.NFCCallback() {
-                @Override
-                public void isSusses(boolean flag) {
-                    domainCrdFlag = flag;
-                }
-            });
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getOneByte(), 1, 1);
             if (!domainCrdFlag) {
                 return;
             }
-            NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2, new NFCWriteHelper.NFCCallback() {
-                @Override
-                public void isSusses(boolean flag) {
-                    domainCrdFlag = flag;
-                }
-            });
+            domainCrdFlag = NFCWriteHelper.getInstence(intent).writeData(domainCard.getTwoByte(), 1, 2);
         } catch (Exception e) {
             domainCrdFlag = false;
             throw new RuntimeException(e);
@@ -615,38 +555,41 @@
     }
 
     private void setTestCard(Intent intent, TestCard testCard) {
-        NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                testCardFlag = flag;
-            }
-        });
+        testCardFlag = NFCWriteHelper.getInstence(intent).writeData(testCard.toByte(), 1, 0);
     }
 
 
     private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) {
-        NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-            @Override
-            public void isSusses(boolean flag) {
-                configDeviceRegiestFlag = flag;
-            }
-        });
+        configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent).writeData(configureDeviceRegistrationCrad.toByte(), 1, 0);
     }
 
     private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) {
         try {
-            NFCWriteHelper.getInstence(intent).writeData(configurationPowerCard.toByte(), 1, 0, new NFCWriteHelper.NFCCallback() {
-                @Override
-                public void isSusses(boolean flag) {
-                    configPowerFlag = flag;
-                }
-            });
+            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();
+    }
 
     /**
      * 鏌ヨ浣欓
@@ -672,7 +615,6 @@
 
                         try {
                             stateText = new StringBuffer();
-                            stateText.append("鐘�    鎬侊細");
                             String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                             if (userCard == null) {
                                 userCard = new UserCard();
@@ -691,57 +633,32 @@
                                 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)) {
-                                //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
-                                //閲戦
-                                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));
-                                userCard.setBalance(balance);
-                                //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
-
-                                if (!TextUtils.isEmpty(morny)) {
-                                    //鍏呭��
-                                    rechargeBean = new RechargeBean();
-                                    rechargeBean.setDate(System.currentTimeMillis());
-                                    rechargeBean.setMorny(morny);
-                                    if (userCardBean != null) {
-                                        rechargeBean.setUserName(userCardBean.getUserName());
-                                    } else {
-                                        rechargeBean.setUserName(name);
-                                    }
-                                    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.setRechargeDate(Calendar.getInstance());
-                                    rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
-                                    rechargeBean.setUserId(userId);
-                                    recharge(initPeasantCode);
-                                } else {
-                                    //琛ュ崱閫昏緫
-                                    setUser(intent, userCard);
-                                    if (userFlag) {
-                                        NFCWreatActivity.this.finish();
-                                        ToastUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
-                                    }
-                                }
-
                                 stateText.append("鍚敤");
+                                userCard.setBalance(balance);
+                                userCard.setState("00");
+                                //琛ュ崱閫昏緫
+                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                if (userFlag) {
+                                    NFCWreatActivity.this.finish();
+                                    TipUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
+                                }
                                 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)) {
@@ -749,21 +666,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) {
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
index 0d0cc7d..007a915 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -29,8 +29,7 @@
 import com.dayu.recharge.tools.Utils;
 import com.dayu.recharge.utils.CRC8;
 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.permissionx.guolindev.PermissionX;
 
 import org.json.JSONException;
@@ -67,7 +66,8 @@
     }
 
     private void initView() {
-        newCardBinding.newCardId.setFilters(new InputFilter[] { new AlphaNumericXFilter(),new InputFilter.LengthFilter(18) });
+        newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()});
+        newCardBinding.newCardId.setFilters(new InputFilter[]{new AlphaNumericXFilter(), new InputFilter.LengthFilter(18)});
         //韬唤璇佽瘑鍒�
         newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -91,13 +91,13 @@
                         && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID)
                 ) {
                     if (userName.length() <= 1 || !validateName(userName)) {
-                        ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
+                        TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭鍚�");
                         return;
                     } else if (phone.length() < 11) {
-                        ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
+                        TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭墜鏈哄彿");
                         return;
                     } else if (!Utils.check(userID)) {
-                        ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
+                        TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�");
                         return;
                     } else {
                         dialog = ProgressDialog.show(NewCardActivity.this, "", "姝e湪閫氫俊璇风◢鍚�", true, true);
@@ -111,7 +111,7 @@
                     }
 
                 } else {
-                    ToastUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
+                    TipUtil.show(NewCardActivity.this, "璇疯緭鍏ュ畬鏁村唴瀹�");
                 }
             }
         });
@@ -146,7 +146,7 @@
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (resultCode == RESULT_OK){
+        if (resultCode == RESULT_OK) {
             switch (requestCode) {
                 case SCAN_IDCARD_REQUEST:
                     String result = data.getStringExtra("OCRResult");
@@ -197,7 +197,7 @@
 
         String initCode = DeviceNumberUtils.getDeviceNumber();
         if (TextUtils.isEmpty(initCode)) {
-            ToastUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
+            TipUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
             IpBean ipBean = baseDao.ipDao().findFirst();
             if (ipBean != null && adminData != null) {
                 MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
@@ -259,21 +259,21 @@
                         intent.putExtra("dbUserCard", userCardBean);
                         startActivity(intent);
                     } else if (state.equalsIgnoreCase("01")) {
-                        ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--韬唤璇佸凡娉ㄥ唽");
+                        TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--韬唤璇佸凡娉ㄥ唽");
                     } else if (state.equalsIgnoreCase("02")) {
-                        ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--鍏朵粬鍘熷洜澶辫触");
+                        TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂�--鍏朵粬鍘熷洜澶辫触");
                     }
 
                 } else {
                     //鏍¢獙CRC閿欒
-                    ToastUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+                    TipUtil.show(NewCardActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
                 }
             }
 
             @Override
             public void onSocketError(int code, String msg) {
                 dialog.dismiss();
-                ToastUtil.show(NewCardActivity.this, msg);
+                TipUtil.show(NewCardActivity.this, msg);
             }
         });
 
@@ -300,4 +300,27 @@
             return null; // 鍏佽杈撳叆瀛楃
         }
     }
+
+    public class ChineseInputFilter implements InputFilter {
+        @Override
+        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+            StringBuilder builder = new StringBuilder();
+            for (int i = start; i < end; i++) {
+                char currentChar = source.charAt(i);
+                // 鍙厑璁告眽瀛�
+                if (isChineseCharacter(currentChar)) {
+                    builder.append(currentChar);
+                }
+            }
+            return builder.toString();
+        }
+
+        private boolean isChineseCharacter(char c) {
+            // 杩欓噷浣跨敤Unicode鑼冨洿鍒ゆ柇鏄惁涓烘眽瀛�
+            // 姹夊瓧鐨刄nicode鑼冨洿鏄細0x4e00 - 0x9fa5
+            return (c >= 0x4e00 && c <= 0x9fa5);
+        }
+    }
+
+
 }
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
index d8cbaf1..e959fbb 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
@@ -5,12 +5,11 @@
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.AdapterView;
 
 import com.dayu.recharge.adapter.NewCardAdapter;
 import com.dayu.recharge.databinding.ActivityNewcardListBinding;
 import com.dayu.recharge.dbBean.UserCardBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.datepicker.CustomDatePicker;
 import com.dayu.recharge.view.datepicker.DateFormatUtils;
 
@@ -90,7 +89,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    ToastUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(NewCardListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     try {
                         endTime = endTime + (1000 * 60 * 60 * 24) - 1;
diff --git a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
index 493f65d..e89fc9e 100644
--- a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
@@ -7,7 +7,7 @@
 
 import com.dayu.recharge.databinding.ActivityPswBinding;
 import com.dayu.recharge.dbBean.PassWordBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.utils.WSMD5;
 
 /**
@@ -44,16 +44,16 @@
                             if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) {
                                 passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString());
                                 baseDao.loginPsDao().insert(passWordBean);
-                                ToastUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚");
+                                TipUtil.show(PassWordActivity.this, "瀵嗙爜淇敼瀹屾垚");
                                 PassWordActivity.this.finish();
                             } else {
-                                ToastUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
+                                TipUtil.show(PassWordActivity.this, "涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
                             }
                         } else {
-                            ToastUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
+                            TipUtil.show(PassWordActivity.this, "鏃у瘑鐮佽緭鍏ラ敊璇�");
                         }
                     } else {
-                        ToastUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�");
+                        TipUtil.show(PassWordActivity.this, "璇疯緭瀹屽唴瀹�");
                     }
 
 
diff --git a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
index 8220dc7..91452f4 100644
--- a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
@@ -7,7 +7,7 @@
 
 import com.dayu.recharge.databinding.ActivityPowerBinding;
 import com.dayu.recharge.dbBean.PowerBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Copyright (C), 2023,
@@ -44,11 +44,11 @@
                 if (!TextUtils.isEmpty(data)) {
                     powerBean.setPower(data);
                     baseDao.powerDao().insert(powerBean);
-                    ToastUtil.show("淇濆瓨鎴愬姛");
+                    TipUtil.show("淇濆瓨鎴愬姛");
 //                    PowerActivity.this.finish();
                     initData();
                 } else {
-                    ToastUtil.show("璇疯緭鍏ユ按娉靛姛鐜�");
+                    TipUtil.show("璇疯緭鍏ユ按娉靛姛鐜�");
                 }
             }
         });
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
index 2913686..6c9fe1d 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -5,7 +5,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 
@@ -14,8 +13,6 @@
 import com.dayu.recharge.card.DomainCard;
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.databinding.ActivityRedCardBinding;
-import com.dayu.recharge.dbBean.RechargeBean;
-import com.dayu.recharge.dbBean.UserCardBean;
 import com.dayu.recharge.net.SocketCallBack;
 import com.dayu.recharge.net.SocketData;
 import com.dayu.recharge.net.SocketNet;
@@ -23,13 +20,13 @@
 import com.dayu.recharge.tools.BcdUtil;
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.WriteCardUtils;
 import com.dayu.recharge.utils.CRC8;
 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 java.util.Arrays;
 import java.util.Calendar;
@@ -60,6 +57,8 @@
 
     volatile UserCard userCard;
     ActivityRedCardBinding redCardBinding;
+
+    Intent intent;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -96,6 +95,8 @@
 
     @Override
     public void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        this.intent = intent;
         startAnim();
         if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
             readAllData(intent);
@@ -105,7 +106,8 @@
     /**
      * 璇诲彇鍏ㄩ儴鏁版嵁
      */
-    private void readAllData(Intent intent) {
+
+   public   void readAllData(Intent intent) {
         NfcReadHelper.getInstence(intent)
                 .getAllData(new NfcReadHelper.NFCCallListback() {
                     @Override
@@ -227,10 +229,10 @@
                     break;
                 case MyCommon.ERROR_MOVE:
                     stopAnim();
-                    ToastUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
+                    TipUtil.show("杩炴帴涓柇锛岃閲嶆柊璐村悎鍗$墖");
                     break;
                 default:
-                    ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
+                    TipUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
                     stopAnim();
                     break;
             }
@@ -281,11 +283,23 @@
 
                     try {
                         stateText = new StringBuffer();
-//                        stateText.append("鐘�    鎬侊細");
+                        //閲戦
+                        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));
+                        setUserData(name, balance, stateText.toString());
                         String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
                         if ("00".equals(state)) {
+                            userCard.setBalance(balance);
+                            userCard.setState("00");
+                            WriteCardUtils.setUser(intent, userCard);
                             stateText.append("鍚敤");
                         } else if ("01".equals(state)) {
+                            userCard.setBalance(balance);
+                            userCard.setState("01");
+                            WriteCardUtils.setUser(intent, userCard);
                             stateText.append("绂佺敤");
                         } else if ("02".equals(state)) {
                             stateText.append("闅跺睘淇℃伅涓嶇");
@@ -294,29 +308,22 @@
                         } else if ("04".equals(state)) {
                             stateText.append("鍏跺畠");
                         }
-                        //閲戦
-                        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));
 
 
-                        setUserData(name, balance, stateText.toString());
                         stopAnim();
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 } else {
                     //鏍¢獙CRC閿欒
-                    ToastUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+                    TipUtil.show(ReadCardAcitivy.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
                 }
                 stopAnim();
             }
 
             @Override
             public void onSocketError(int code, String msg) {
-                ToastUtil.show(ReadCardAcitivy.this, msg);
+                TipUtil.show(ReadCardAcitivy.this, msg);
             }
         });
 
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
index 50ca2b4..a0b2a39 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -10,10 +10,22 @@
 import android.widget.EditText;
 
 import com.dayu.recharge.databinding.ActivityRechargeBinding;
+import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.net.SocketCallBack;
+import com.dayu.recharge.net.SocketData;
+import com.dayu.recharge.net.SocketNet;
+import com.dayu.recharge.socketBean.BalanceSelecteRequestBean;
+import com.dayu.recharge.tools.BcdUtil;
+import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.WriteCardUtils;
+import com.dayu.recharge.utils.CRC8;
 import com.dayu.recharge.utils.DeviceNumberUtils;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
+import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.SocketUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.tencent.bugly.crashreport.CrashReport;
+
+import java.util.Arrays;
 
 
 /**
@@ -22,11 +34,16 @@
  * Date: 2023-11-5 09:52
  * Description: 鍏呭�肩晫闈�
  */
-public class RechargeActivity extends BaseActivity {
+public class RechargeActivity extends BaseNfcActivity {
 
+    Intent intent;
 
+    boolean userFlag;
     ActivityRechargeBinding binding;
     public static RechargeActivity rechargeActivity;
+
+    AdminDataBean adminData;
+    String userName;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -43,7 +60,33 @@
         }
     }
 
+    public void onNewIntent(Intent intent) {
+
+        try {
+            this.intent = intent;
+            userCard = NfcReadHelper.getInstence(intent).getUserCardData();
+            if (userCard != null) {
+
+                selectBalance(userCard.getInitPeasantCode());
+            } else {
+                TipUtil.show(RechargeActivity.this, "鍗$墖璇诲彇澶辫触");
+            }
+
+            readAllData(intent);
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+        super.onNewIntent(intent);
+    }
+
     private void initView() {
+        try {
+            adminData = baseDao.adminDao().findFirst();
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
         binding.rechargeRegistBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -51,20 +94,22 @@
                 if (!TextUtils.isEmpty(morny)) {
                     String initCode = DeviceNumberUtils.getDeviceNumber();
                     if (TextUtils.isEmpty(initCode)) {
-                        ToastUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
-//                return;
+                        TipUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
                     }
                     Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class);
                     intent.putExtra("morny", morny);
+                    intent.putExtra("userName", userName);
+                    intent.putExtra("userCard", userCard);
                     startActivity(intent);
                 } else {
-                    ToastUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
+                    TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級");
                 }
             }
         });
     }
 
 
+    //鏍¢獙閲戦
     public static void setPricePoint(final EditText editText) {
         editText.addTextChangedListener(new TextWatcher() {
             @Override
@@ -110,5 +155,81 @@
 
     }
 
+    /**
+     * 鏌ヨ浣欓
+     *
+     * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
+     */
+    private void selectBalance(String initPeasantCode) {
+        try {
+            BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
+            requestBean.setAFN("94");
+            requestBean.setControl("01");
+            String initCode = DeviceNumberUtils.getDeviceNumber();
+            requestBean.setInitCode(initCode);
+            requestBean.setInitPeasantCode(initPeasantCode);
+            requestBean.setXuLie(SocketUtil.getXuLie(this));
+            SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() {
+                @Override
+                public void onSocketResponse(SocketData readData) {
+                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+                        StringBuffer stateText = null;
+                        try {
+                            stateText = new StringBuffer();
+                            String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]);  //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
+
+                            //鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
+                            //閲戦
+                            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));
+                            if ("00".equals(state)) {
+                                stateText.append("鍚敤");
+                                binding.rechargeReadLL.setVisibility(View.GONE);
+                                binding.rechargeTextLL.setVisibility(View.VISIBLE);
+
+                                binding.userName.setText(userName);
+                                binding.redRemainderBlance.setText(MornyUtil.changeF2Y(balance));
+                                binding.redStatu.setText(stateText.toString());
+                                binding.redInitCode.setText(initPeasantCode);
+                                userCard.setState("00");
+                                userCard.setBalance(balance);
+                                return;
+                            } else if ("01".equals(state)) {
+                                stateText.append("绂佺敤");
+                                userCard.setState("01");
+                                userCard.setBalance(balance);
+                                userFlag = WriteCardUtils.setUser(intent, userCard);
+                                TipUtil.show("璇ュ崱宸茶绂佺敤");
+                            } else if ("02".equals(state)) {
+                                stateText.append("闅跺睘淇℃伅涓嶇");
+                            } else if ("03".equals(state)) {
+                                stateText.append("鏃犳鍗′俊鎭�");
+                            } else if ("04".equals(state)) {
+                                stateText.append("鍏跺畠");
+                            }
+                            TipUtil.show(RechargeActivity.this, stateText.toString());
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    } else {
+                        //鏍¢獙CRC閿欒
+                        TipUtil.show(RechargeActivity.this, "寮�鍗℃姤鏂囨牎楠孋RC閿欒");
+                    }
+                }
+
+                @Override
+                public void onSocketError(int code, String msg) {
+                    TipUtil.show(RechargeActivity.this, msg);
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+
+    }
 
 }
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java
new file mode 100644
index 0000000..7d1f2ac
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeDetail.java
@@ -0,0 +1,81 @@
+package com.dayu.recharge.activity;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.dayu.recharge.card.UserCard;
+import com.dayu.recharge.databinding.ActivityRechargeDetailBinding;
+import com.dayu.recharge.utils.MornyUtil;
+
+import java.util.Calendar;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-21
+ * Time: 15:01
+ * 澶囨敞锛氬啓鍗″悗鐨勮鎯呴〉
+ */
+public class RechargeDetail extends BaseActivity {
+
+    ActivityRechargeDetailBinding binding;
+    UserCard userCard;
+    String statu;
+    String userName;
+    String morny;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        binding = ActivityRechargeDetailBinding.inflate(LayoutInflater.from(this));
+        setContentView(binding.getRoot());
+
+        try {
+            userCard = (UserCard) getIntent().getSerializableExtra("userCard");
+            statu = getIntent().getStringExtra("statu");
+            userName = getIntent().getStringExtra("userName");
+            if (getIntent().hasExtra("morny")) {
+                morny = getIntent().getStringExtra("morny");
+            }
+            setUserData(userName, statu);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    private void setUserData(String userName, String statu) {
+        int balance = userCard.getBalance();
+        if (!TextUtils.isEmpty(morny)) {
+            balance = userCard.getBalance() + MornyUtil.changeY2F(morny);
+            binding.redRemainderMorny.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�");
+        } else {
+            balance = userCard.getBalance();
+            binding.redRemainderMorny.setVisibility(View.GONE);
+        }
+        binding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName);
+        binding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�");
+        binding.redStatu.setText("鍗$姸鎬侊細" + statu);
+        if (userCard != null) {
+            binding.redInitCode.setText("鐢ㄦ埛娉ㄥ唽缂栧彿锛�" + userCard.getInitPeasantCode());
+            Calendar calendar = userCard.getRechargeDate();
+            if (calendar != null) {
+                int year = calendar.get(Calendar.YEAR);
+                int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1
+                int day = calendar.get(Calendar.DAY_OF_MONTH);
+                int hour = calendar.get(Calendar.HOUR_OF_DAY);
+                int minute = calendar.get(Calendar.MINUTE);
+                int second = calendar.get(Calendar.SECOND);
+                binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day + " " + hour + ":" + minute + ":" + second);
+            } else {
+                binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
+            }
+
+            binding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + "");
+        }
+    }
+}
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
index 9dd6132..6c0b70e 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
@@ -10,7 +10,7 @@
 import com.dayu.recharge.databinding.ActivityRechargeListBinding;
 import com.dayu.recharge.dbBean.RechargeBean;
 import com.dayu.recharge.utils.ArithUtil;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.datepicker.CustomDatePicker;
 import com.dayu.recharge.view.datepicker.DateFormatUtils;
 
@@ -100,7 +100,7 @@
             public void onTimeSelected(long timestamp) {
                 endTime = timestamp;
                 if ((endTime < beginTime) && endTime != beginTime) {
-                    ToastUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                    TipUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
                 } else {
                     endTime = endTime + (1000 * 60 * 60 * 24) - 1;
                     List<RechargeBean> userList = baseDao.rechargeDao().findByTime(beginTime, endTime);
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
index 47b2e64..f0aa5d6 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
@@ -11,7 +11,7 @@
 import com.dayu.recharge.adapter.NewCardAdapter;
 import com.dayu.recharge.databinding.ActivityReplacementBinding;
 import com.dayu.recharge.dbBean.UserCardBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.EdtDialog;
 
 import java.util.List;
@@ -73,7 +73,7 @@
                             userCardBeanList.addAll(beans);
                             adapter.notifyDataSetChanged();
                         } else {
-                            ToastUtil.show("鏈壘鍒拌鐢ㄦ埛");
+                            TipUtil.show("鏈壘鍒拌鐢ㄦ埛");
                         }
                     }
 
diff --git a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
index be7ad6f..5bffa64 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
@@ -1,9 +1,7 @@
 package com.dayu.recharge.activity;
 
-import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.telephony.TelephonyManager;
 import android.view.LayoutInflater;
 import android.view.View;
 
@@ -18,7 +16,7 @@
 import com.dayu.recharge.databinding.ActivityAdminBinding;
 import com.dayu.recharge.dbBean.DomainBean;
 import com.dayu.recharge.dbBean.PowerBean;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Copyright (C), 2023,
@@ -131,7 +129,7 @@
                     intent.putExtra("configurationPowerCard", configurationPowerCard);
                     startActivity(intent);
                 } else {
-                    ToastUtil.show("璇峰厛璁剧疆姘存车鍔熺巼");
+                    TipUtil.show("璇峰厛璁剧疆姘存车鍔熺巼");
                 }
 
             }
diff --git a/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java b/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java
index 08b5f6c..c2b8225 100644
--- a/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java
+++ b/app/src/main/java/com/dayu/recharge/dbBean/RechargeBean.java
@@ -16,11 +16,33 @@
     public long id;
     private String serial;//璁惧搴忓垪鍙�
     public String userName;
-
     public String userId;//鐢ㄦ埛韬唤璇佸彿
     public long date;
     public String morny;//鍏呭�奸噾棰�
     public String balance;//浣欓
+    public String total_morn;//鎬诲厖鍊奸噾棰�
+    //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶
+    public String orderID;//璁㈠崟鍙�
+    //鏈嶅姟鍣ㄨ繑鍥炵殑鍐滄埛娉ㄥ唽缂栧彿
+    private String initPeasantCode;
+
+    public int state = 0;
+
+    public String getOrderID() {
+        return orderID;
+    }
+
+    public void setOrderID(String orderID) {
+        this.orderID = orderID;
+    }
+
+    public String getInitPeasantCode() {
+        return initPeasantCode;
+    }
+
+    public void setInitPeasantCode(String initPeasantCode) {
+        this.initPeasantCode = initPeasantCode;
+    }
 
     public String getTotal_morn() {
         return total_morn;
@@ -33,12 +55,6 @@
     public void setUserId(String userId) {
         this.userId = userId;
     }
-
-    public String total_morn;//鎬诲厖鍊奸噾棰�
-    //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶
-
-
-    public int state = 0;
 
     public void setTotal_morn(String total_morn) {
         this.total_morn = total_morn;
diff --git a/app/src/main/java/com/dayu/recharge/net/SocketNet.java b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
index 481b320..fe1e5cb 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -2,7 +2,6 @@
 
 import android.content.Context;
 import android.os.Handler;
-import android.text.TextUtils;
 import android.util.Log;
 
 import com.dayu.recharge.dao.BaseDaoSingleton;
@@ -15,9 +14,6 @@
 import com.easysocket.interfaces.conn.ISocketActionListener;
 import com.easysocket.interfaces.conn.SocketActionListener;
 import com.dayu.recharge.MyApplication;
-import com.dayu.recharge.utils.ToastUtil;
-import com.dayu.recharge.utils.WSHelper;
-import com.easysocket.utils.LogUtil;
 
 
 /**
@@ -29,7 +25,7 @@
 public class SocketNet {
     public static SocketNet socketNet;
     SocketCallBack myCallBack;
-    byte[] dataMessage;
+    //    byte[] dataMessage;
     boolean isTest = false;
     Context mContext;
 
@@ -53,9 +49,10 @@
         // 鍙戦��
 //        EasySocket.getInstance().upMessage(dataMessage);
         if (EasySocket.getInstance().getDefconnection() != null) {
-            EasySocket.getInstance().disconnect(false);
-            EasySocket.getInstance().connect();
-            this.dataMessage = dataMessage;
+//            EasySocket.getInstance().disconnect(false);
+//            EasySocket.getInstance().connect();
+            EasySocket.getInstance().upMessage(dataMessage);
+//            this.dataMessage = dataMessage;
         } else {
             MyApplication.myApplication.initEasySocket(false, null);
         }
@@ -72,8 +69,8 @@
         isTest = true;
         mContext = context;
         if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null && !MyApplication.myApplication.isDoInitMachine) {
-            EasySocket.getInstance().disconnect(false);
-            EasySocket.getInstance().connect();
+//            EasySocket.getInstance().disconnect(false);
+//            EasySocket.getInstance().connect();
         } else {
 //            ToastUtil.show(mContext, "Socket鍦板潃涓虹┖");
         }
@@ -97,8 +94,9 @@
         @Override
         public void onSocketConnSuccess(SocketAddress socketAddress) {
             Log.i("SocketActionListener", "杩炴帴鎴愬姛");
+            MyApplication.myApplication.isConncet = true;
             DeviceNumber initCode = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
-            if (initCode==null && !MyApplication.myApplication.isDoInitMachine) {
+            if (initCode == null && !MyApplication.myApplication.isDoInitMachine) {
                 new Handler().postDelayed(new Runnable() {
                     @Override
                     public void run() {
@@ -111,12 +109,12 @@
                 }, 500);
 
             }
-            if (dataMessage != null) {
-                EasySocket.getInstance().upMessage(dataMessage);
-            }
+//            if (dataMessage != null) {
+//                EasySocket.getInstance().upMessage(dataMessage);
+//            }
             if (isTest) {
                 MyApplication.myApplication.isConncet = true;
-                EasySocket.getInstance().disconnect(false);
+//                EasySocket.getInstance().disconnect(false);
             } else {
 
             }
@@ -130,7 +128,7 @@
          */
         @Override
         public void onSocketConnFail(SocketAddress socketAddress, boolean isNeedReconnect) {
-//            isConnected = false;
+            MyApplication.myApplication.isConncet = false;
             Log.i("SocketActionListener", "socket杩炴帴澶辫触");
             if (isTest) {
 //                ToastUtil.show(mContext, "杩炴帴澶辫触,璇锋鏌ョ綉缁�");
@@ -170,7 +168,7 @@
             SocketData socketData = new SocketData();
             socketData.setBodyData(originReadData.getBodyBytes());
             socketData.setHeaderData(originReadData.getHeaderData());
-            dataMessage = null;
+//            dataMessage = null;
             if (myCallBack != null) {
                 myCallBack.onSocketResponse(socketData);
             }
diff --git a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
index 449ebe7..856fc30 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NFCWriteHelper.java
@@ -24,10 +24,10 @@
  * email 1058083107@qq.com
  * description
  */
-public class NFCWriteHelper extends BaseNFCHelper{
+public class NFCWriteHelper extends BaseNFCHelper {
 
     private Tag tag;
-    private NFCWriteHelper.NFCCallback callback;
+
     private static NFCWriteHelper helper;
     private static int PASSWORD_LENTH = 6;
 
@@ -67,12 +67,12 @@
     /**
      * 鍐欏崱
      *
-     * @param str      涔﹀啓鍐呭锛�16涓瓧鑺�
-     * @param a        涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟)
-     * @param b        涔﹀啓鐨勫潡(浠�0寮�濮嬫暟)
-     * @param callback 杩斿洖鐩戝惉
+     * @param str 涔﹀啓鍐呭锛�16涓瓧鑺�
+     * @param a   涔﹀啓鐨勬墖鍖� (浠�0寮�濮嬫暟)
+     * @param b   涔﹀啓鐨勫潡(浠�0寮�濮嬫暟)
+     * @param
      */
-    public void writeData(byte[] str, int a, int b, NFCWriteHelper.NFCCallback callback) {
+    public boolean writeData(byte[] str, int a, int b) {
         if (str.length <= 16) {
             try {
                 MifareClassic mfc = MifareClassic.get(tag);
@@ -84,15 +84,13 @@
                         int count = mfc.getSectorCount();
                         //濡傛灉浼犺繘鏉ョ殑鎵囧尯澶т簡鎴栬�呭皬浜嗙洿鎺ラ��鍑烘柟娉�
                         if (a > count - 1 || a < 0) {
-                            callback.isSusses(false);
-                            return;
+                            return false;
                         }
                         //鑾峰彇鍐欑殑鎵囧尯鐨勫潡鐨勬暟閲�
                         int bCount = mfc.getBlockCountInSector(a);
                         //濡傛灉杈撳叆鐨勫潡澶т簡鎴栬�呭皬浜嗕篃鏄洿鎺ラ��鍑�
                         if (b > bCount - 1 || b < 0) {
-                            callback.isSusses(false);
-                            return;
+                            return false;
                         }
                         //楠岃瘉鎵囧尯瀵嗙爜
                         boolean isOpen = mfc.authenticateSectorWithKeyA(a, bytes);
@@ -100,13 +98,12 @@
                             int bIndex = mfc.sectorToBlock(a);
                             //鍐欏崱
                             mfc.writeBlock(bIndex + b, str);
-                            callback.isSusses(true);
-                            return;
+                            return true;
                         }
-                        callback.isSusses(false);
+                        return false;
                     } catch (Exception e) {
                         e.printStackTrace();
-                        callback.isSusses(false);
+                        return false;
                     } finally {
                         try {
                             mfc.close();
@@ -117,8 +114,10 @@
                 }
             } catch (Exception e) {
                 e.printStackTrace();
+                return false;
             }
         }
+        return false;
     }
 
 
diff --git a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
index 5e3b08d..428cfd8 100644
--- a/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
+++ b/app/src/main/java/com/dayu/recharge/tools/NfcReadHelper.java
@@ -5,6 +5,7 @@
 import android.nfc.Tag;
 import android.nfc.tech.MifareClassic;
 
+import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.utils.MyCommon;
 
 import java.io.IOException;
@@ -45,6 +46,64 @@
         return helper;
     }
 
+
+    public UserCard getUserCardData() {
+        UserCard userCard = null;
+        Map<String, List<byte[]>> map = new HashMap<>();
+        MifareClassic mfc = MifareClassic.get(tag);
+        if (null != mfc) {
+            try {
+                //閾炬帴NFC
+                mfc.connect();
+                //鑾峰彇鎵囧尯鏁伴噺
+                int count = mfc.getSectorCount();
+                //瀛樺偍绌洪棿
+                int size = mfc.getSize();
+                //鐢ㄤ簬鍒ゆ柇鏃跺�欐湁鍐呭璇诲彇鍑烘潵
+                boolean flag = false;
+                List<byte[]> list = new ArrayList<>();
+                //楠岃瘉鎵囧尯瀵嗙爜锛屽惁鍒欎細鎶ラ敊锛堥摼鎺ュけ璐ラ敊璇級
+                boolean isOpen = mfc.authenticateSectorWithKeyA(1, bytes);
+                if (isOpen) {
+                    //鑾峰彇鎵囧尯閲岄潰鍧楃殑鏁伴噺
+                    int bCount = mfc.getBlockCountInSector(1);
+                    //鑾峰彇鎵囧尯绗竴涓潡瀵瑰簲鑺墖瀛樺偍鍣ㄧ殑浣嶇疆锛堟垜鏄繖鏍风悊瑙g殑锛屽洜涓虹0鎵囧尯鐨勮繖涓�兼槸4鑰屼笉鏄�0锛�
+                    int bIndex = mfc.sectorToBlock(1);
+                    //String data1 = "";
+                    for (int j = 0; j < bCount; j++) {
+                        //璇诲彇鏁版嵁
+                        byte[] data = null;
+                        try {
+                            data = mfc.readBlock(bIndex);
+                            bIndex++;
+                            list.add(data);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    flag = true;
+                }
+
+                if (flag) {
+                    userCard = UserCard.getBean(list);
+                    return userCard;
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    mfc.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+
+
     /**
      * 璇诲彇NFC鍗$殑鍏ㄩ儴淇℃伅
      *
diff --git a/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java b/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java
new file mode 100644
index 0000000..8409f34
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/tools/WriteCardUtils.java
@@ -0,0 +1,30 @@
+package com.dayu.recharge.tools;
+
+import android.content.Intent;
+
+import com.dayu.recharge.card.UserCard;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-21
+ * Time: 14:46
+ * 澶囨敞锛�
+ */
+public class WriteCardUtils {
+    static boolean userFlag = false;
+
+    //鍚戝崱鍐欏叆鐢ㄦ埛淇℃伅
+    public static boolean setUser(Intent intent, UserCard userCard) {
+        userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getZeroBytes(), 1, 0);
+        if (!userFlag) {
+            return false;
+        }
+        userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getOneBytes(), 1, 1);
+        if (!userFlag) {
+            return false;
+        }
+        userFlag = NFCWriteHelper.getInstence(intent).writeData(userCard.getTwoBytes(), 1, 2);
+        return userFlag;
+    }
+}
diff --git a/app/src/main/java/com/dayu/recharge/utils/TipUtil.java b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java
new file mode 100644
index 0000000..50b80af
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/utils/TipUtil.java
@@ -0,0 +1,38 @@
+package com.dayu.recharge.utils;
+
+import android.content.Context;
+
+import com.dayu.recharge.activity.HomeActivity;
+import com.dayu.recharge.view.TipDialog;
+
+public class TipUtil {
+    public interface TipListener {
+        public void onCancle();
+    }
+
+    public static void show(Context context, String data) {
+//        Toast.makeText(context, data, Toast.LENGTH_LONG).show();
+        TipDialog tipDialog = new TipDialog(context, data);
+        tipDialog.show();
+
+    }
+
+    public static void show(Context context, String data, TipListener tipListener) {
+//        Toast.makeText(context, data, Toast.LENGTH_LONG).show();
+        TipDialog tipDialog = new TipDialog(context, data, tipListener);
+        tipDialog.show();
+
+    }
+
+    public static void show(String data) {
+//        Toast.makeText(, data, Toast.LENGTH_LONG).show();
+        TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data);
+        tipDialog.show();
+    }
+
+    public static void show(String data, TipListener tipListener) {
+//        Toast.makeText(, data, Toast.LENGTH_LONG).show();
+        TipDialog tipDialog = new TipDialog(HomeActivity.homeActivity, data, tipListener);
+        tipDialog.show();
+    }
+}
diff --git a/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java b/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java
index 02f2b15..6a9965a 100644
--- a/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java
+++ b/app/src/main/java/com/dayu/recharge/utils/ToastUtil.java
@@ -1,18 +1,18 @@
 package com.dayu.recharge.utils;
 
-import android.content.Context;
 import android.widget.Toast;
 
 import com.dayu.recharge.MyApplication;
 
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-22
+ * Time: 11:49
+ * 澶囨敞锛�
+ */
 public class ToastUtil {
-
-
-    public static void show(Context context, String data) {
-        Toast.makeText(context, data, Toast.LENGTH_LONG).show();
-    }
-
     public static void show(String data) {
-        Toast.makeText(MyApplication.myApplication, data, Toast.LENGTH_LONG).show();
+        Toast.makeText(MyApplication.myApplication, data, Toast.LENGTH_SHORT).show();
     }
 }
diff --git a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
index db16808..544ba21 100644
--- a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
@@ -12,7 +12,7 @@
 import android.widget.TextView;
 
 import com.dayu.recharge.R;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 
 /**
  * Copyright (C), 2022,
@@ -52,7 +52,7 @@
             public void onClick(View v) {
                 if (intent!=null){
                     if (TextUtils.isEmpty(editText.getText().toString())) {
-                        ToastUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
+                        TipUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
                     } else {
                         if (Integer.valueOf(editText.getText().toString()) <= 16777215) {
 //                        EquipmentNumber equipmentNumber = (EquipmentNumber) intent.getSerializableExtra("equipmentNumber");
@@ -60,7 +60,7 @@
                             mContext.startActivity(intent);
                             EdtDialog.this.dismiss();
                         } else {
-                            ToastUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+                            TipUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
                         }
 
                     }
diff --git a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
index ae91165..634ec23 100644
--- a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
@@ -1,6 +1,5 @@
 package com.dayu.recharge.view;
 
-import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
@@ -13,7 +12,7 @@
 
 import com.tencent.bugly.crashreport.CrashReport;
 import com.dayu.recharge.R;
-import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.utils.WSMD5;
 
 /**
@@ -46,7 +45,7 @@
                         mContext.startActivity(intent);
                         PassWordDialog.this.dismiss();
                     } else {
-                        ToastUtil.show(mContext, "瀵嗙爜閿欒");
+                        TipUtil.show(mContext, "瀵嗙爜閿欒");
                     }
                 } catch (Exception e) {
                     CrashReport.postCatchedException(e);
diff --git a/app/src/main/java/com/dayu/recharge/view/TipDialog.java b/app/src/main/java/com/dayu/recharge/view/TipDialog.java
new file mode 100644
index 0000000..e1a540d
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/view/TipDialog.java
@@ -0,0 +1,91 @@
+package com.dayu.recharge.view;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.widget.TextView;
+
+import com.dayu.recharge.R;
+import com.dayu.recharge.utils.TipUtil;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-22
+ * Time: 9:12
+ * 澶囨敞锛�
+ */
+public class TipDialog extends Dialog {
+
+
+    Context mContext;
+    EdtDialog.DialogBack mDialogBack;
+    String mData;
+    TipUtil.TipListener listener;
+
+    public TipDialog(Context context, String data, TipUtil.TipListener tipListener) {
+        super(context, R.style.ws_pay_showSelfDialog);
+        mContext = context;
+        mData = data;
+        listener = tipListener;
+        initView();
+    }
+
+    public TipDialog(Context context, String data) {
+        super(context, R.style.ws_pay_showSelfDialog);
+        mContext = context;
+        mData = data;
+        initView();
+    }
+
+    public TipDialog(Context context, EdtDialog.DialogBack dialogBack) {
+        super(context, R.style.ws_pay_showSelfDialog);
+        mContext = context;
+        mDialogBack = dialogBack;
+        initView();
+    }
+
+    private void initView() {
+        getWindow().setGravity(Gravity.CENTER);
+        setContentView(R.layout.text_dialog);
+        setCanceledOnTouchOutside(false);
+        final TextView editText = (TextView) this.findViewById(R.id.textData);
+        editText.setText(mData);
+        TextView cannel = (TextView) this.findViewById(R.id.cannel);
+
+        cannel.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                if (listener != null) {
+                    listener.onCancle();
+                }
+                TipDialog.this.dismiss();
+            }
+        });
+
+    }
+
+    @Override
+    public void show() {
+
+        super.show();
+        /**
+         * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈�
+         */
+        WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
+        layoutParams.gravity = Gravity.CENTER;
+        layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
+        layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
+        getWindow().getDecorView().setPadding(0, 0, 0, 0);
+        getWindow().setAttributes(layoutParams);
+    }
+
+    public interface DialogBack {
+        void onOk(String data);
+
+        void onCancel();
+    }
+}
diff --git a/app/src/main/res/layout/activity_admin_setup.xml b/app/src/main/res/layout/activity_admin_setup.xml
index 4bc09db..44fa307 100644
--- a/app/src/main/res/layout/activity_admin_setup.xml
+++ b/app/src/main/res/layout/activity_admin_setup.xml
@@ -45,48 +45,8 @@
 
 
             </LinearLayout>
-            <LinearLayout
-                style="@style/newCardLL"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="绠$悊鍛樺悕绉帮細"
-                    android:textSize="@dimen/new_card_size" />
-
-                <EditText
-                    android:id="@+id/admin_name"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:maxLength="5"
-                    android:textSize="@dimen/new_card_size" />
 
 
-            </LinearLayout>
-
-            <LinearLayout
-                style="@style/newCardLL"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="鐢佃瘽锛�"
-                    android:textSize="@dimen/new_card_size" />
-
-                <EditText
-                    android:id="@+id/admin_phone"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:inputType="number"
-                    android:maxLength="11"
-                    android:textSize="@dimen/new_card_size" />
-
-
-            </LinearLayout>
 
             <LinearLayout
                 android:id="@+id/chose_address"
@@ -109,6 +69,24 @@
                     android:textSize="@dimen/new_card_size" />
             </LinearLayout>
 
+            <LinearLayout
+                android:id="@+id/chose_address_code"
+                style="@style/newCardLL"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="鍦板潃缂栫爜锛�"
+                    android:textSize="@dimen/new_card_size" />
+
+                <TextView
+                    android:id="@+id/admin_address_code"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:textSize="@dimen/new_card_size" />
+            </LinearLayout>
 
         </LinearLayout>
 
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index ea0c492..4eeafd8 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -25,7 +25,7 @@
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:gravity="center"
-            android:text="鏂板崱娉ㄥ唽"
+            android:text="鏂板崱寮�鎴�"
             android:textSize="@dimen/home_text_size" />
 
         <TextView
diff --git a/app/src/main/res/layout/activity_my.xml b/app/src/main/res/layout/activity_my.xml
index 5763811..3e5c97c 100644
--- a/app/src/main/res/layout/activity_my.xml
+++ b/app/src/main/res/layout/activity_my.xml
@@ -56,7 +56,7 @@
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:text="绠$悊鍛橈細"
+                    android:text="鍦板潃淇℃伅锛�"
                     android:textSize="@dimen/text_size" />
 
                 <TextView
diff --git a/app/src/main/res/layout/activity_new_card.xml b/app/src/main/res/layout/activity_new_card.xml
index 40d0c61..c365bc9 100644
--- a/app/src/main/res/layout/activity_new_card.xml
+++ b/app/src/main/res/layout/activity_new_card.xml
@@ -9,7 +9,7 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/dimen_title_height"
         android:background="@drawable/title_bar_bg"
-        app:centerText="鏂板崱娉ㄥ唽"
+        app:centerText="鏂板崱寮�鎴�"
         app:leftImage="@mipmap/icon_back" />
 
     <ScrollView
@@ -163,7 +163,7 @@
         android:layout_alignParentBottom="true"
         android:background="@color/title_bg"
         android:gravity="center"
-        android:text="娉ㄥ唽"
+        android:text="寮�鎴�"
         android:textColor="#000000"
         android:textSize="@dimen/new_card_size" />
 </RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_recharge.xml b/app/src/main/res/layout/activity_recharge.xml
index 3ed91c1..1cbff10 100644
--- a/app/src/main/res/layout/activity_recharge.xml
+++ b/app/src/main/res/layout/activity_recharge.xml
@@ -12,44 +12,149 @@
         app:centerText="鍏呭��"
         app:leftImage="@mipmap/icon_back" />
 
-    <ScrollView
+    <LinearLayout
+        android:id="@+id/recharge_read_LL"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_above="@+id/recharge_registBtn"
-        android:layout_below="@+id/titleBar">
+        android:layout_below="@+id/titleBar"
+        android:orientation="vertical"
+        android:visibility="visible">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:gravity="center"
+            android:text="璇峰皢鍗¤创鍦ㄨ澶囦笂杩涜璇诲崱"
+            android:textSize="@dimen/text_size" />
+
+        <ImageView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_below="@id/textView"
+            android:scaleType="center"
+            android:src="@mipmap/nfc_write" />
+
+
+    </LinearLayout>
+
+
+    <LinearLayout
+        android:id="@+id/recharge_text_LL"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/titleBar"
+        android:orientation="vertical"
+        android:padding="20dp"
+        android:visibility="gone">
+
 
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:orientation="vertical">
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
 
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="鐢ㄦ埛濮撳悕锛�"
+                android:textSize="@dimen/new_card_size" />
 
-            <LinearLayout
-                style="@style/newCardLL"
+            <TextView
+                android:id="@+id/userName"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-
-                <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="閲戦锛堝厓锛夛細"
-                    android:textSize="@dimen/new_card_size" />
-
-                <EditText
-                    android:id="@+id/recharge_water"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:inputType="numberDecimal"
-                    android:textSize="@dimen/new_card_size" />
-
-
-            </LinearLayout>
-
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/new_card_size" />
 
         </LinearLayout>
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:orientation="horizontal">
 
-    </ScrollView>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="鐢ㄦ埛娉ㄥ唽缂栧彿锛�"
+                android:textSize="@dimen/text_size" />
+
+            <TextView
+                android:id="@+id/red_initCode"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text=""
+                android:textSize="@dimen/new_card_size" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:orientation="horizontal">
+
+            <TextView
+
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="鍓╀綑閲戦锛�"
+                android:textSize="@dimen/text_size" />
+
+            <TextView
+                android:id="@+id/red_remainder_blance"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/new_card_size" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="鍗$姸鎬侊細"
+                android:textSize="@dimen/text_size" />
+
+            <TextView
+                android:id="@+id/red_statu"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/new_card_size" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/recharge_LL"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/recharge_tx"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="閲戦锛堝厓锛夛細"
+                android:textColor="@color/red"
+                android:textSize="@dimen/new_card_size" />
+
+            <EditText
+                android:id="@+id/recharge_water"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:hint="璇疯緭鍏ュ厖鍊肩殑閲戦"
+                android:inputType="numberDecimal"
+                android:textSize="@dimen/new_card_size" />
+        </LinearLayout>
+    </LinearLayout>
+
 
     <TextView
         android:id="@+id/recharge_registBtn"
diff --git a/app/src/main/res/layout/activity_recharge_detail.xml b/app/src/main/res/layout/activity_recharge_detail.xml
new file mode 100644
index 0000000..a923fd1
--- /dev/null
+++ b/app/src/main/res/layout/activity_recharge_detail.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <com.dayu.recharge.view.TitleBar
+        android:id="@+id/titleBar"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dimen_title_height"
+        android:background="@drawable/title_bar_bg"
+        app:centerText="鍐欏崱璇︽儏椤�"
+        app:leftImage="@mipmap/icon_back" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:padding="30dp">
+
+        <TextView
+            android:id="@+id/red_name"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+
+            android:text="鐢ㄦ埛濮撳悕锛�"
+            android:textSize="@dimen/text_size" />
+
+        <TextView
+            android:id="@+id/red_initCode"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鐢ㄦ埛娉ㄥ唽缂栧彿锛�"
+            android:textSize="@dimen/text_size" />
+
+
+        <TextView
+            android:id="@+id/red_remainder_morny"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鍏呭�奸噾棰濓細"
+            android:textSize="@dimen/text_size" />
+        <TextView
+            android:id="@+id/red_remainder_blance"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鍓╀綑閲戦锛�"
+            android:textSize="@dimen/text_size" />
+
+        <TextView
+            android:id="@+id/red_rechargeDate"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鏈崱鏈�鍚庤喘姘存棩鏈燂細"
+            android:textSize="@dimen/text_size"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/red_rechargeNumber"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鏈崱鍏呭�兼鏁帮細"
+            android:textSize="@dimen/text_size"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/red_statu"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:text="鍗$姸鎬侊細"
+            android:textSize="@dimen/text_size" />
+    </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_red_card.xml b/app/src/main/res/layout/activity_red_card.xml
index 6b36e64..985f6d9 100644
--- a/app/src/main/res/layout/activity_red_card.xml
+++ b/app/src/main/res/layout/activity_red_card.xml
@@ -57,7 +57,8 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
                 android:text="鏈崱鏈�鍚庤喘姘存棩鏈燂細"
-                android:textSize="@dimen/text_size" />
+                android:textSize="@dimen/text_size"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/red_rechargeNumber"
@@ -65,7 +66,8 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
                 android:text="鏈崱鍏呭�兼鏁帮細"
-                android:textSize="@dimen/text_size" />
+                android:textSize="@dimen/text_size"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/red_statu"
diff --git a/app/src/main/res/layout/text_dialog.xml b/app/src/main/res/layout/text_dialog.xml
new file mode 100644
index 0000000..bece331
--- /dev/null
+++ b/app/src/main/res/layout/text_dialog.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#00ffffff"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/ws_pay_bg_dialog_top_stroke"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:padding="20dp">
+
+
+        <TextView
+            android:id="@+id/textData"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:gravity="center"
+            android:textColor="#000000"
+            android:textSize="20sp" />
+
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/cannel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="20dp"
+                android:background="@drawable/ws_login_red_btn_one"
+                android:paddingLeft="15dp"
+                android:paddingTop="5dp"
+                android:paddingRight="15dp"
+                android:paddingBottom="5dp"
+                android:text="纭"
+                android:textSize="@dimen/text_size" />
+
+
+        </LinearLayout>
+
+
+    </LinearLayout>
+
+</LinearLayout>
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index e74c198..467f1cb 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -19,4 +19,5 @@
     <color name="date_picker_text_light">#59B29C</color>
     <color name="date_picker_text_dark">#333333</color>
     <color name="ws_pay_alpha">#00000000</color>
+    <color name="red">#ff0000</color>
 </resources>

--
Gitblit v1.8.0