From 61a4ae8b08652f24916218037beeef594bcde83b Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期三, 15 十一月 2023 15:36:32 +0800
Subject: [PATCH] 读取卡片相关 读取卡片byte转bean相关

---
 app/src/main/java/com/dayu/recharge/activity/MyActivity.java                  |    7 
 app/src/main/res/layout/activity_ip.xml                                       |    9 
 app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java             |  190 +++++++++----
 app/src/main/java/com/dayu/recharge/tools/HexUtil.java                        |    2 
 app/src/main/java/com/dayu/recharge/card/CleanCard.java                       |    3 
 app/src/main/java/com/dayu/recharge/card/DomainCard.java                      |   51 +++
 app/src/main/res/layout/activity_domain.xml                                   |   24 +
 app/src/main/java/com/dayu/recharge/activity/SysActivity.java                 |   12 
 app/src/main/java/com/dayu/recharge/card/TestCard.java                        |    3 
 app/src/main/java/com/dayu/recharge/card/ManageCard.java                      |    3 
 app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java          |   18 +
 app/src/main/java/com/dayu/recharge/activity/DomainActivity.java              |   19 +
 app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java |    3 
 app/src/main/java/com/dayu/recharge/utils/MyCommon.java                       |   44 ++
 app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java       |   27 +
 app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java           |    7 
 app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java             |    3 
 easysocket/src/main/java/com/easysocket/EasySocket.java                       |    4 
 app/src/main/java/com/dayu/recharge/activity/PowerActivity.java               |    3 
 app/src/main/java/com/dayu/recharge/card/RegisteredCard.java                  |    3 
 app/src/main/AndroidManifest.xml                                              |    3 
 app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java        |   36 +-
 app/src/main/java/com/dayu/recharge/card/PassWordCard.java                    |    3 
 app/src/main/java/com/dayu/recharge/dao/RechargeDao.java                      |    4 
 app/src/main/java/com/dayu/recharge/dbBean/DomainBean.java                    |   11 
 app/src/main/java/com/dayu/recharge/MyApplication.java                        |  114 ++++----
 app/src/main/java/com/dayu/recharge/net/SocketNet.java                        |    8 
 app/src/main/java/com/dayu/recharge/card/CleanUserCard.java                   |    8 
 app/src/main/java/com/dayu/recharge/card/UserCard.java                        |    3 
 app/src/main/res/layout/activity_parameter.xml                                |   15 
 app/src/main/res/layout/activity_red_card.xml                                 |  139 ++++------
 app/src/main/res/mipmap-xhdpi/logo.jpg                                        |    0 
 32 files changed, 486 insertions(+), 293 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 95b1bec..c4679d7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -36,7 +36,7 @@
     <application
         android:name=".MyApplication"
         android:allowBackup="true"
-        android:icon="@mipmap/ic_launcher"
+        android:icon="@mipmap/logo"
         android:label="@string/app_name"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
@@ -103,6 +103,7 @@
         <activity android:name=".activity.ParameterActivity" />
         <activity android:name=".activity.PowerActivity" />
         <activity android:name=".activity.DomainActivity"/>
+        <activity android:name=".activity.ElectricPriceActivity"/>
 
 
         <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 d1f2172..1b1ca34 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -10,6 +10,7 @@
 import com.dayu.recharge.dbBean.IpBean;
 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;
@@ -52,7 +53,7 @@
         AidlUtil.getInstance().connectPrinterService(this);
         initEasySocket(false, null);
         socketConnect();
-        CrashReport.initCrashReport(getApplicationContext(), "846987eae9", true);
+        CrashReport.initCrashReport(getApplicationContext(), "45551598b8", true);
     }
 
     private boolean isAidl;
@@ -135,72 +136,77 @@
         if (!TextUtils.isEmpty(ip)
                 && !TextUtils.isEmpty(String.valueOf(port))
                 && !TextUtils.isEmpty(addressCode)) {
-            isDoInitMachine = true;
-            InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
-            initMachineRequestBean.setControl("01");
-            //130107200008	112	闈掓硥灞呭浼�
-            initMachineRequestBean.setAddress(addressCode);
-            initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
-            initMachineRequestBean.setAFN("91");
+            if (EasySocket.getInstance().getDefconnection() != null) {
+                isDoInitMachine = true;
+                InitMachineRequestBean initMachineRequestBean = new InitMachineRequestBean();
+                initMachineRequestBean.setControl("01");
+                //130107200008	112	闈掓硥灞呭浼�
+                initMachineRequestBean.setAddress(addressCode);
+                initMachineRequestBean.setXuLie(SocketUtil.getXuLie(this));
+                initMachineRequestBean.setAFN("91");
 //
-            Log.i("Socket", "娉ㄥ唽鎶ユ枃");
-            SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
-                @Override
-                public void onSocketResponse(SocketData readData) {
+                Log.i("Socket", "娉ㄥ唽鎶ユ枃");
+                SocketNet.getInstance().sendTestMessage(initMachineRequestBean.pack(), new SocketCallBack() {
+                    @Override
+                    public void onSocketResponse(SocketData readData) {
 
-                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-                        //鏍¢獙CRC鎴愬姛
-                        InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
+                        if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+                            //鏍¢獙CRC鎴愬姛
+                            InitMachineBackBean initMachineBackBean = new InitMachineBackBean();
 
-                        String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
-                        //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
-                        ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
-                        confirmMachineRequestBean.setControl("01");
-                        //130107200008	112	闈掓硥灞呭浼�
-                        confirmMachineRequestBean.setAddress(addressCode);
-                        confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
-                        confirmMachineRequestBean.setAFN("92");
-                        confirmMachineRequestBean.setInitCode(initCode);
-                        Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
-                        SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
+                            String initCode = HexUtil.bytesToHex(Arrays.copyOfRange(readData.getBodyBytes(), 2, 18));
+                            //纭鏀跺埌娉ㄥ唽鍙锋姤鏂�
+                            ConfirmMachineRequestBean confirmMachineRequestBean = new ConfirmMachineRequestBean();
+                            confirmMachineRequestBean.setControl("01");
+                            //130107200008	112	闈掓硥灞呭浼�
+                            confirmMachineRequestBean.setAddress(addressCode);
+                            confirmMachineRequestBean.setXuLie(SocketUtil.getXuLie(MyApplication.this));
+                            confirmMachineRequestBean.setAFN("92");
+                            confirmMachineRequestBean.setInitCode(initCode);
+                            Log.i("Socket", "纭娉ㄥ唽鎶ユ枃");
+                            SocketNet.getInstance().sendTestMessage(confirmMachineRequestBean.pack(), new SocketCallBack() {
 
-                            @Override
-                            public void onSocketResponse(SocketData readData) {
-                                isDoInitMachine = false;
-                                if (CRC8.isCRC8(readData.getOriginDataBytes())) {
-                                    byte stateByte = readData.getBodyBytes()[2];
-                                    String state = BcdUtil.bcdToStr(stateByte);
-                                    //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
-                                    if (state.equalsIgnoreCase("00")) {
-                                        //淇濆瓨璁惧娉ㄥ唽鍙�
-                                        BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
-                                        WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
-                                        ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+                                @Override
+                                public void onSocketResponse(SocketData readData) {
+                                    isDoInitMachine = false;
+                                    if (CRC8.isCRC8(readData.getOriginDataBytes())) {
+                                        byte stateByte = readData.getBodyBytes()[2];
+                                        String state = BcdUtil.bcdToStr(stateByte);
+                                        //BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
+                                        if (state.equalsIgnoreCase("00")) {
+                                            //淇濆瓨璁惧娉ㄥ唽鍙�
+                                            BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
+                                            WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
+                                            ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
+                                        } else {
+                                            //鏍¢獙CRC閿欒
+                                            ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                        }
                                     } else {
                                         //鏍¢獙CRC閿欒
-                                        ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鐘舵�佸け璐�");
+                                        ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                     }
-                                } else {
-                                    //鏍¢獙CRC閿欒
-                                    ToastUtil.show(MyApplication.this, "纭鏀跺埌娉ㄥ唽鎶ユ枃鏍¢獙CRC閿欒");
                                 }
-                            }
 
-                            @Override
-                            public void onSocketError(int code, String msg) {
+                                @Override
+                                public void onSocketError(int code, String msg) {
 
-                            }
-                        });
-                    } else {//鏍¢獙CRC閿欒
-                        ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+                                }
+                            });
+                        } else {//鏍¢獙CRC閿欒
+                            ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囨牎楠孋RC閿欒");
+                        }
                     }
-                }
 
-                @Override
-                public void onSocketError(int code, String msg) {
+                    @Override
+                    public void onSocketError(int code, String msg) {
 
-                }
-            });
+                    }
+                });
+
+            }
+
+
         }
     }
 
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 c24ce79..6983e9f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
@@ -29,12 +29,17 @@
         binding.electricOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-
+                String domainNumber = binding.domainNumber.getText().toString();
                 String domain = binding.domain.getText().toString();
                 String port = binding.port.getText().toString();
                 int portInt = 0;
+                if (TextUtils.isEmpty(domainNumber)) {
+                    ToastUtil.show("璇疯緭鍏ユ纭殑鍩熷悕搴忓彿");
+                    return;
+                }
                 if (TextUtils.isEmpty(port)) {
                     ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
+                    return;
                 } else {
                     portInt = Integer.valueOf(port);
                 }
@@ -45,7 +50,7 @@
                     ToastUtil.show("璇疯緭鍏ユ纭殑绔彛鍙�");
                     return;
                 }
-
+                domainBean.setDomainNumber(domainNumber);
                 domainBean.setDomain(domain);
                 domainBean.setPort(portInt);
                 baseDao.domainPortDao().insert(domainBean);
@@ -59,11 +64,13 @@
     private void initData() {
         domainBean = baseDao.domainPortDao().findFirst();
         if (domainBean != null) {
-            binding.domainOldTV.setText(domainBean.getDomain() + ":" + domainBean.getPort());
+            binding.domainOldTV.setText("搴忓彿锛�" + domainBean.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainBean.getDomain() + "\n" + "绔彛鍙凤細" + domainBean.getPort());
         } else {
-            domainBean = new DomainBean();
+            binding.domainOldTV.setText("璇疯缃柊鐨勫煙鍚嶅崱淇℃伅");
         }
+        domainBean = new DomainBean();
     }
-
-
 }
+
+
+
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 014f0fd..a49d247 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ElectricPriceActivity.java
@@ -13,30 +13,28 @@
  * Copyright (C), 2023,
  * Author: zuo
  * Date: 2023-11-10 10:18
- * Description:
+ * Description: 鐢甸噺鍗曚环
  */
 public class ElectricPriceActivity extends BaseActivity {
 
     ActivityElectricPriceBinding electricPriceBinding;
-    ElectricPriceBean priceBean;
+    ElectricPriceBean electricPriceBean;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         electricPriceBinding = ActivityElectricPriceBinding.inflate(LayoutInflater.from(this));
         setContentView(electricPriceBinding.getRoot());
+        initData();
 
-        ElectricPriceBean priceBean = baseDao.electricPriceDao().findFirst();
-        if (priceBean != null) {
-            this.priceBean = priceBean;
-            electricPriceBinding.electricOldNumber.setText(priceBean.getPrice() + "");
-        }
         electricPriceBinding.electricOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (!TextUtils.isEmpty(electricPriceBinding.electricNewNum.getText())) {
-                    priceBean.setPrice(Float.parseFloat(electricPriceBinding.electricNewNum.getText().toString()));
-                    baseDao.electricPriceDao().insert(priceBean);
+                    electricPriceBean.setPrice(Float.parseFloat(electricPriceBinding.electricNewNum.getText().toString()));
+                    baseDao.electricPriceDao().insert(electricPriceBean);
+                    ToastUtil.show("淇濆瓨鎴愬姛");
+                    initData();
                 } else {
                     ToastUtil.show("璇疯緭鍏ユ纭噾棰�");
                 }
@@ -46,5 +44,16 @@
 
     }
 
+    private void initData() {
+        ElectricPriceBean priceBean = baseDao.electricPriceDao().findFirst();
+        if (priceBean != null) {
+            electricPriceBean = priceBean;
+            electricPriceBinding.electricOldNumber.setText(priceBean.getPrice() + "鍏�");
+        } else {
+            electricPriceBean = new ElectricPriceBean();
+            electricPriceBinding.electricOldNumber.setText("1.000鍏�");
+        }
+    }
+
 
 }
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 a5e7f17..18d07ee 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -58,8 +58,9 @@
         myBinding.myAdmin.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
-                passWordDialog.show();
+//                PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, AdminSetupActivity.class));
+//                passWordDialog.show();
+                startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
             }
         });
         myBinding.myPsw.setOnClickListener(new View.OnClickListener() {
@@ -187,7 +188,7 @@
             if (TextUtils.isEmpty(initCode)) {
                 msgData.append(",璁惧鏈敞鍐�");
             } else {
-                msgData.append(",璁惧宸叉敞鍐�" + initCode);
+                msgData.append(",璁惧宸叉敞鍐�,璁惧娉ㄥ唽鍙凤細" + initCode);
             }
             myBinding.myTestConnect.setText(msgData);
         } 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 46f9bb0..f7edf95 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -157,6 +157,9 @@
                         ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
                         if (electricPriceBean != null) {
                             userCard.setElectricityPrice(electricPriceBean.getPrice());
+                        } else {
+                            //榛樿鏄�1鍏�
+                            userCard.setElectricityPrice(1.000f);
                         }
                         userCard.setState("00");
                         userCard.setBalance(0);
diff --git a/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java b/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java
index 8a6dc7f..76505e8 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java
@@ -41,5 +41,12 @@
                 startActivity(intent);
             }
         });
+        binding.parameterElectricPrice.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(ParameterActivity.this, ElectricPriceActivity.class);
+                startActivity(intent);
+            }
+        });
     }
 }
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 cc2fe65..6d51c56 100644
--- a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
@@ -45,7 +45,8 @@
                     powerBean.setPower(data);
                     baseDao.powerDao().insert(powerBean);
                     ToastUtil.show("淇濆瓨鎴愬姛");
-                    PowerActivity.this.finish();
+//                    PowerActivity.this.finish();
+                    initData();
                 } else {
                     ToastUtil.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 c524104..cdb7633 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -10,6 +10,8 @@
 import android.view.View;
 
 
+import com.dayu.recharge.card.ConfigurationPowerCard;
+import com.dayu.recharge.card.DomainCard;
 import com.dayu.recharge.card.UserCard;
 import com.dayu.recharge.databinding.ActivityRedCardBinding;
 import com.dayu.recharge.dbBean.RechargeBean;
@@ -23,11 +25,13 @@
 import com.dayu.recharge.tools.NfcReadHelper;
 import com.dayu.recharge.utils.CRC8;
 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 java.util.Arrays;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Map;
 
@@ -41,13 +45,19 @@
 
     private static final int USER_CRAD = 1;
     private static final int MANAGE_CRAD = 2;
+    private static final int CLEAN_CARD = 3;
+    private static final int REGISTERED_CARD = 4;
+    private static final int CLEAN_ALL_USER = 5;
+    private static final int DOMAIN_CARD = 6;
+    private static final int TEST_CARD = 7;
 
+    private static final int CONFIGURATION_CARD = 8;
+
+    private static final int CONFIGURATION_POWER_CARD = 9;
+    private static final int PASS_WORD_CRAD = 10;
 
     private static final int ERROR = -1;
-    UserCard userCard;
-    UserCardBean waterCard;
-    RechargeBean rechargeBean;
-    //    鍐滄埛娉ㄥ唽缂栧彿
+    volatile UserCard userCard;
     ActivityRedCardBinding redCardBinding;
 
     @Override
@@ -57,17 +67,29 @@
         setContentView(redCardBinding.getRoot());
     }
 
-    private void setData(String statu) {
-        String initCode = WSHelper.getInstance(this).get("initCode", "");
-        if (TextUtils.isEmpty(initCode)) {
-            ToastUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
-            return;
-        }
-//        redCardBinding.redVillageNum.setText("璁惧搴忓垪鍙凤細" + initS.getANo() + "");
-        redCardBinding.redName.setText("鐢� 鎴� 鍚嶏細" + rechargeBean.getUserName());
-        redCardBinding.redRemainderMorny.setText("鍓╀綑閲戦锛�" + rechargeBean.getBalance() + "" + "鍏�");
-        redCardBinding.redStatu.setText("鐘�    鎬侊細" + statu);
 
+    private void setUserData(String userName, int blance, String statu) {
+        viweGone(true);
+        redCardBinding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName);
+        redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(blance) + "鍏�");
+        redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu);
+        if (userCard != null) {
+            redCardBinding.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);
+                redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + month + day + " " + hour + ":" + minute + ":" + second);
+            } else {
+                redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�");
+            }
+
+            redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + "");
+        }
     }
 
 
@@ -93,11 +115,41 @@
                         if (oneSector != null && oneSector.size() > 0) {
                             byte cardType = oneSector.get(0)[0];
                             String cardTypeStr = HexUtil.byteToHex(cardType);
-//                            switch (cardTypeStr){
-//                                case
-//                            }
+                            switch (cardTypeStr) {
+                                case MyCommon.USER_CARD_TYPE_1:
+                                case MyCommon.USER_CARD_TYPE_2:
+                                case MyCommon.USER_CARD_TYPE_3:
                                     userCard = UserCard.getBean(oneSector);
-                            message.what = USER_CRAD;
+                                    message.what = USER_CRAD;
+                                    break;
+                                case MyCommon.MANAGE_CRAD:
+                                    message.what = MANAGE_CRAD;
+                                    break;
+                                case MyCommon.CLEAN_CARD_TYPE:
+                                    message.what = CLEAN_CARD;
+                                    break;
+                                case MyCommon.REGISTERED_CARD_TYPE:
+                                    message.what = REGISTERED_CARD;
+                                    break;
+                                case MyCommon.CLEAN_ALL_USER_CARD_TYPE:
+                                    message.what = CLEAN_ALL_USER;
+                                    break;
+                                case MyCommon.DOMAIN_CARD_TYPE:
+                                    message.what = DOMAIN_CARD;
+                                    message.obj = oneSector;
+                                    break;
+                                case MyCommon.TEST_CARD_TYPE:
+                                    message.what = TEST_CARD;
+                                    break;
+                                case MyCommon.CONFIGURATION_CARD_TYPE:
+                                    message.what = CONFIGURATION_CARD;
+                                    break;
+                                case MyCommon.CONFIGURATION_POWER_CARD_TYPE:
+                                    message.what = CONFIGURATION_POWER_CARD;
+                                    message.obj = oneSector.get(0);
+                                    break;
+                            }
+
                         } else {
                             message.what = ERROR;
                         }
@@ -119,63 +171,79 @@
         public boolean handleMessage(Message msg) {
             switch (msg.what) {
                 case USER_CRAD:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.VISIBLE);
-                    redCardBinding.readSysLL.setVisibility(View.GONE);
-                    redCardBinding.readCleanLL.setVisibility(View.GONE);
-                    redCardBinding.readInitLL.setVisibility(View.GONE);
-//                    selectBalance(newUserCard.getPeasantCode());
+                    selectBalance(userCard.getInitPeasantCode());
                     break;
                 case MANAGE_CRAD:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.GONE);
-                    redCardBinding.readSysLL.setVisibility(View.VISIBLE);
-                    redCardBinding.readCleanLL.setVisibility(View.GONE);
-                    redCardBinding.readInitLL.setVisibility(View.GONE);
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱");
                     stopAnim();
                     break;
-                case 3:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.GONE);
-                    redCardBinding.readSysLL.setVisibility(View.GONE);
-                    redCardBinding.readCleanLL.setVisibility(View.VISIBLE);
-                    redCardBinding.readInitLL.setVisibility(View.GONE);
+                case CLEAN_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓烘竻闆跺崱");
                     stopAnim();
                     break;
-                case 4:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.GONE);
-                    redCardBinding.readSysLL.setVisibility(View.GONE);
-                    redCardBinding.readCleanLL.setVisibility(View.GONE);
-                    redCardBinding.readInitLL.setVisibility(View.VISIBLE);
+                case REGISTERED_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓洪噸鏂版敞鍐岃澶囧崱");
                     stopAnim();
                     break;
-                case 5:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.GONE);
-                    redCardBinding.readSysLL.setVisibility(View.GONE);
-                    redCardBinding.readCleanLL.setVisibility(View.GONE);
-                    redCardBinding.readInitLL.setVisibility(View.VISIBLE);
-                    redCardBinding.readInitLL.setText("褰撳墠涓鸿鏀垮尯鍩熷崱");
+                case CLEAN_ALL_USER:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓哄垹闄ゅ叏閮ㄧ敤鎴峰崱");
                     stopAnim();
                     break;
-                case 6:
-                    redCardBinding.readImgLL.setVisibility(View.GONE);
-                    redCardBinding.readUserLL.setVisibility(View.GONE);
-                    redCardBinding.readSysLL.setVisibility(View.GONE);
-                    redCardBinding.readCleanLL.setVisibility(View.GONE);
-                    redCardBinding.readInitLL.setVisibility(View.VISIBLE);
-                    redCardBinding.readInitLL.setText("褰撳墠涓鸿澶囧簭鍙峰崱");
+                case DOMAIN_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓鸿缃煙鍚嶅崱");
+                    List<byte[]> data = (List<byte[]>) msg.obj;
+                    DomainCard domainCard = DomainCard.toBean(data);
+                    redCardBinding.readCardDataTV.setText("搴忓彿锛�" + domainCard.getDomainNumber() + "\n" + "鍩熷悕锛�" + domainCard.getDomainName() + "\n" + "绔彛鍙凤細" + domainCard.getPort());
+                    stopAnim();
+                    break;
+                case TEST_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓烘祴璇曞崱");
+                    stopAnim();
+                    break;
+                case CONFIGURATION_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓洪厤缃澶囨敞鍐屼俊鎭崱");
+                    stopAnim();
+                    break;
+                case CONFIGURATION_POWER_CARD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠閰嶇疆姘存车鍔熺巼鍗�");
+                    byte[] powerData = (byte[]) msg.obj;
+                    ConfigurationPowerCard powerCard = ConfigurationPowerCard.toBean(powerData);
+                    redCardBinding.readCardDataTV.setText(powerCard.getPower());
+                    stopAnim();
+                    break;
+                case PASS_WORD_CRAD:
+                    viweGone(false);
+                    redCardBinding.readCardTypeTV.setText("褰撳墠涓哄瘑鐮佸崱");
                     stopAnim();
                     break;
                 default:
-                    ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏈敞鍐�");
+                    ToastUtil.show(ReadCardAcitivy.this, "鍗$墖鏃犳硶璇嗗埆");
                     stopAnim();
+                    break;
             }
-
             return false;
         }
     });
+
+    private void viweGone(boolean isUSerCard) {
+        redCardBinding.readImgLL.setVisibility(View.GONE);
+        if (isUSerCard) {
+            redCardBinding.readCardTypeLL.setVisibility(View.GONE);
+            redCardBinding.readUserLL.setVisibility(View.VISIBLE);
+        } else {
+            redCardBinding.readCardTypeLL.setVisibility(View.VISIBLE);
+            redCardBinding.readUserLL.setVisibility(View.GONE);
+        }
+
+    }
 
     void startAnim() {
         redCardBinding.avi.setVisibility(View.VISIBLE);
@@ -192,7 +260,6 @@
      * @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
      */
     private void selectBalance(String initPeasantCode) {
-
         BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
         requestBean.setAFN("94");
         requestBean.setControl("01");
@@ -230,12 +297,7 @@
                         String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
 
 
-                        rechargeBean = new RechargeBean();
-                        rechargeBean.setDate(System.currentTimeMillis());
-                        rechargeBean.setUserName(name);
-                        rechargeBean.setBalance(MornyUtil.changeF2Y(balance) + "");
-//                        rechargeBean.setTotal_morn(ArithUtil.changeF2Y(userCard.getValue() + ""));
-                        setData(stateText.toString());
+                        setUserData(name, balance, stateText.toString());
                         stopAnim();
                     } catch (Exception e) {
                         e.printStackTrace();
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 bd19709..9dd6132 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeListActivity.java
@@ -10,6 +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.view.datepicker.CustomDatePicker;
 import com.dayu.recharge.view.datepicker.DateFormatUtils;
 
@@ -44,11 +45,9 @@
     }
 
     private void setData() {
-//        try {
-//            rechargeList = SqLite_DB_Utile.getInit(this).findAll(RechargeBean.class);
-//        } catch (DbException e) {
-//            e.printStackTrace();
-//        }
+
+        rechargeList = baseDao.rechargeDao().findAll();
+
         adapter = new RechargeAdapter(this, rechargeList);
         rechargeListBinding.rechargeList.setAdapter(adapter);
     }
@@ -99,21 +98,18 @@
         endDatePicker = new CustomDatePicker(this, "閫夋嫨缁撴潫鏃堕棿", new CustomDatePicker.Callback() {
             @Override
             public void onTimeSelected(long timestamp) {
-//                endTime = timestamp;
-//                if ((endTime < beginTime) && endTime != beginTime) {
-//                    ToastUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
-//                } else {
-//                    try {
-//                        endTime = endTime + (1000 * 60 * 60 * 24) - 1;
-//                        List<RechargeBean> userList = SqLite_DB_Utile.getInit(RechargeListActivity.this).selector(RechargeBean.class).where("date", ">=", beginTime).and("date", "<=", endTime).findAll();
-//                        rechargeList.clear();
-//                        rechargeList.addAll(userList);
-//                        adapter.notifyDataSetChanged();
-//                        getTotal();
-//                    } catch (DbException e) {
-//                        e.printStackTrace();
-//                    }
-//                }
+                endTime = timestamp;
+                if ((endTime < beginTime) && endTime != beginTime) {
+                    ToastUtil.show(RechargeListActivity.this, "缁撴潫鏃堕棿涓嶈兘鏅氫簬寮�濮嬫椂闂�");
+                } else {
+                    endTime = endTime + (1000 * 60 * 60 * 24) - 1;
+                    List<RechargeBean> userList = baseDao.rechargeDao().findByTime(beginTime, endTime);
+                    rechargeList.clear();
+                    rechargeList.addAll(userList);
+                    adapter.notifyDataSetChanged();
+                    getTotal();
+
+                }
             }
         }, beginTimestamp, endTimestamp);
         // 涓嶅厑璁哥偣鍑诲睆骞曟垨鐗╃悊杩斿洖閿叧闂�
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 74853bd..9144d28 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
@@ -85,16 +85,18 @@
             public void onClick(View v) {
                 Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class);
                 DomainBean domainBean = baseDao.domainPortDao().findFirst();
+                DomainCard domainCard = new DomainCard();
                 if (domainBean != null) {
-                    DomainCard domainCard = new DomainCard();
+                    domainCard.setDomainNumber(domainBean.getDomainNumber());
                     domainCard.setDomainName(domainBean.getDomain());
                     domainCard.setPort(domainBean.getPort());
-                    intent.putExtra("domainCard", domainCard);
-                    startActivity(intent);
                 } else {
-                    ToastUtil.show("璇峰厛璁剧疆鍩熷悕");
+                    domainCard.setDomainNumber("1");
+                    domainCard.setDomainName("dayuyanjiuyuan.top");
+                    domainCard.setPort(8888);
                 }
-
+                intent.putExtra("domainCard", domainCard);
+                startActivity(intent);
             }
         });
         adminBinding.adminTest.setOnClickListener(new View.OnClickListener() {
diff --git a/app/src/main/java/com/dayu/recharge/card/CleanCard.java b/app/src/main/java/com/dayu/recharge/card/CleanCard.java
index 97f0630..6eba6a9 100644
--- a/app/src/main/java/com/dayu/recharge/card/CleanCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/CleanCard.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -11,7 +12,7 @@
  * Description:娓呴浂鍗�
  */
 public class CleanCard implements Serializable {
-    public String cardType = "C8";//鍗$被鍨�
+    public String cardType = MyCommon.CLEAN_CARD_TYPE;//鍗$被鍨�
     public String cardData = "3668F7A30119";//鏍囪瘑鐮�
 
     public byte[] toByte() {
diff --git a/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java b/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java
index 72b6bf5..3135f07 100644
--- a/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/CleanUserCard.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -11,13 +12,14 @@
  * Description:鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�
  */
 public class CleanUserCard implements Serializable {
-    public String cardType = "BB";//鍗$被鍨�
+    public String cardType = MyCommon.CLEAN_ALL_USER_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public byte[] toByte() {
-        Zero zero=new Zero();
-       return zero.toByte();
+        Zero zero = new Zero();
+        return zero.toByte();
     }
+
     public class Zero extends BaseCard {
         public byte[] toByte() {
             byte[] data = new byte[16];
diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
index 0275c80..2ddbd0d 100644
--- a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
@@ -1,6 +1,8 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
+import com.tencent.bugly.crashreport.CrashReport;
 
 import java.io.Serializable;
 
@@ -16,7 +18,7 @@
 public class ConfigurationPowerCard implements Serializable {
 
 
-    public String cardType = "BD";//鍗$被鍨�
+    public String cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public String power;//鍔熺巼
@@ -29,6 +31,20 @@
         this.power = power;
     }
 
+
+    public static ConfigurationPowerCard toBean(byte[] data) {
+        try {
+            ConfigurationPowerCard powerCard = new ConfigurationPowerCard();
+            int intPower = HexUtil.get16to10(HexUtil.byteToHex(data[5]));
+            powerCard.setPower(String.valueOf(intPower));
+            return powerCard;
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+            return null;
+        }
+    }
+
     public byte[] toByte() {
         Zero zero = new Zero();
         return zero.toByte();
diff --git a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
index 42480f3..049fcab 100644
--- a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
+++ b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -14,7 +15,7 @@
  * 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤
  */
 public class ConfigureDeviceRegistrationCrad implements Serializable {
-    public String cardType = "BC";//鍗$被鍨�
+    public String cardType = MyCommon.CONFIGURATION_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public byte[] toByte() {
diff --git a/app/src/main/java/com/dayu/recharge/card/DomainCard.java b/app/src/main/java/com/dayu/recharge/card/DomainCard.java
index bef709d..04e6ca7 100644
--- a/app/src/main/java/com/dayu/recharge/card/DomainCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/DomainCard.java
@@ -3,10 +3,14 @@
 import com.dayu.recharge.tools.BcdUtil;
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
+import com.tencent.bugly.crashreport.CrashReport;
 
 import java.io.Serializable;
 import java.net.IDN;
+import java.nio.charset.StandardCharsets;
 import java.util.Calendar;
+import java.util.List;
 
 /**
  * Copyright (C), 2023,
@@ -17,7 +21,7 @@
 public class DomainCard implements Serializable {
 
 
-    public String cardType = "C1";//鍗$被鍨�
+    public String cardType = MyCommon.DOMAIN_CARD_TYPE;//鍗$被鍨�
     public String domainNumber;//鍩熷悕搴忓彿 (BCD鏍煎紡)
     public int domainLength;//鍩熷悕闀垮害
 
@@ -33,6 +37,13 @@
         this.domainName = domainName;
     }
 
+    public String getDomainNumber() {
+        return domainNumber;
+    }
+
+    public void setDomainNumber(String domainNumber) {
+        this.domainNumber = domainNumber;
+    }
 
     public int getPort() {
         return port;
@@ -60,6 +71,44 @@
     }
 
 
+    public static DomainCard toBean(List<byte[]> data) {
+        try {
+            DomainCard domainCard = new DomainCard();
+            String domainNumber = BcdUtil.bcdToStr(data.get(0)[1]);
+            domainCard.domainNumber = domainNumber;
+            int domainLength = HexUtil.get16to10(HexUtil.byteToHex(data.get(0)[2]));
+            byte[] domainData = new byte[domainLength + 7];
+            int index = 0;
+            for (int i = 0; i < 3; i++) {
+                int jIndex;
+                if (i == 0) {
+                    jIndex = 3;
+                } else {
+                    jIndex = 0;
+                }
+                for (int j = jIndex; j < 15; j++) {
+                    if (index < domainData.length) {
+                        domainData[index] = data.get(i)[j];
+                        index++;
+                    }
+
+                }
+            }
+            String domainStr = new String(domainData, StandardCharsets.US_ASCII);
+            String domainName = domainStr.split(",")[0];
+            String port = domainStr.split(",")[1].replace("#", "");
+            domainCard.setDomainName(domainName);
+            domainCard.setPort(Integer.valueOf(port));
+
+            return domainCard;
+        } catch (Exception e) {
+            e.printStackTrace();
+            CrashReport.postCatchedException(e);
+        }
+        return null;
+    }
+
+
     /**
      * 鐢ㄦ埛鍗�0鍧�
      */
diff --git a/app/src/main/java/com/dayu/recharge/card/ManageCard.java b/app/src/main/java/com/dayu/recharge/card/ManageCard.java
index 2f8ed23..451a8c8 100644
--- a/app/src/main/java/com/dayu/recharge/card/ManageCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/ManageCard.java
@@ -3,6 +3,7 @@
 import com.dayu.recharge.tools.BcdUtil;
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -13,7 +14,7 @@
  * Description: 绠$悊鍗�  绗�1鎵囧尯 0鍧�
  */
 public class ManageCard implements Serializable {
-    public String cardType = "B2";//鍗$被鍨�
+    public String cardType = MyCommon.MANAGE_CRAD;//鍗$被鍨�
     public String cardData = "3668F7A30119";//鏍囪瘑鐮�
 
 
diff --git a/app/src/main/java/com/dayu/recharge/card/PassWordCard.java b/app/src/main/java/com/dayu/recharge/card/PassWordCard.java
index 775eebe..ff1e78f 100644
--- a/app/src/main/java/com/dayu/recharge/card/PassWordCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/PassWordCard.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 /**
  * Copyright (C), 2023,
@@ -9,7 +10,7 @@
  * Description:瀵嗙爜鍗�
  */
 public class PassWordCard {
-    public String cardType = "B3";//鍗$被鍨�
+    public String cardType = MyCommon.PASS_WORD_CRAD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public class Zero extends BaseCard {
diff --git a/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java b/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
index e76c846..e3652a8 100644
--- a/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -11,7 +12,7 @@
  * Description:閲嶆柊娉ㄥ唽璁惧鍗★細鐢ㄤ簬鍐欑敤鎴锋敞鍐屽彿
  */
 public class RegisteredCard implements Serializable {
-    public String cardType = "BA";//鍗$被鍨�
+    public String cardType = MyCommon.REGISTERED_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public byte[] toByte() {
diff --git a/app/src/main/java/com/dayu/recharge/card/TestCard.java b/app/src/main/java/com/dayu/recharge/card/TestCard.java
index cf17f85..f3f6915 100644
--- a/app/src/main/java/com/dayu/recharge/card/TestCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/TestCard.java
@@ -1,6 +1,7 @@
 package com.dayu.recharge.card;
 
 import com.dayu.recharge.tools.HexUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 
@@ -11,7 +12,7 @@
  * Description: 娴嬭瘯鍗�
  */
 public class TestCard implements Serializable {
-    public String cardType = "A4";//鍗$被鍨�
+    public String cardType = MyCommon.TEST_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
     public byte[] toByte() {
diff --git a/app/src/main/java/com/dayu/recharge/card/UserCard.java b/app/src/main/java/com/dayu/recharge/card/UserCard.java
index ed1151e..5233456 100644
--- a/app/src/main/java/com/dayu/recharge/card/UserCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/UserCard.java
@@ -3,6 +3,7 @@
 import com.dayu.recharge.tools.BcdUtil;
 import com.dayu.recharge.tools.HexUtil;
 import com.dayu.recharge.utils.MornyUtil;
+import com.dayu.recharge.utils.MyCommon;
 
 import java.io.Serializable;
 import java.util.Calendar;
@@ -15,7 +16,7 @@
  * Description: 鐢ㄦ埛鍗$粨鏋�
  */
 public class UserCard implements Serializable {
-    public String cardType = "A1";//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
+    public String cardType = MyCommon.USER_CARD_TYPE_1;//鍐欏崱鏍囧織 A1鍒峰崱寮�娉靛墠 A8鍒峰崱寮�娉靛悗  A2鍙犲姞鍏呭��
 
     public int rechargeTimes;//鍏呭�兼鏁�
 
diff --git a/app/src/main/java/com/dayu/recharge/dao/RechargeDao.java b/app/src/main/java/com/dayu/recharge/dao/RechargeDao.java
index 496736a..b67131a 100644
--- a/app/src/main/java/com/dayu/recharge/dao/RechargeDao.java
+++ b/app/src/main/java/com/dayu/recharge/dao/RechargeDao.java
@@ -9,6 +9,7 @@
 
 import com.dayu.recharge.dbBean.RechargeBean;
 import com.dayu.recharge.dbBean.RechargeBean;
+import com.dayu.recharge.dbBean.UserCardBean;
 
 import java.util.List;
 
@@ -31,4 +32,7 @@
 
     @Query("select  * from RechargeBean ")
     List<RechargeBean> findAll();
+
+    @Query("select  * from RechargeBean where date>=:beginTime and date<=:endTime")
+    List<RechargeBean> findByTime(long beginTime, long endTime);
 }
diff --git a/app/src/main/java/com/dayu/recharge/dbBean/DomainBean.java b/app/src/main/java/com/dayu/recharge/dbBean/DomainBean.java
index 715f3fc..ce57b7e 100644
--- a/app/src/main/java/com/dayu/recharge/dbBean/DomainBean.java
+++ b/app/src/main/java/com/dayu/recharge/dbBean/DomainBean.java
@@ -14,9 +14,20 @@
 public class DomainBean {
     @PrimaryKey(autoGenerate = true)
     public long id;
+
+    private String domainNumber;
     private int port;
     private String domain = "";
 
+
+    public String getDomainNumber() {
+        return domainNumber;
+    }
+
+    public void setDomainNumber(String domainNumber) {
+        this.domainNumber = domainNumber;
+    }
+
     public int getPort() {
         return port;
     }
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 a75d37f..1c497a1 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -51,12 +51,12 @@
         isTest = false;
         // 鍙戦��
 //        EasySocket.getInstance().upMessage(dataMessage);
-        if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null) {
+        if (EasySocket.getInstance().getDefconnection() != null) {
             EasySocket.getInstance().disconnect(false);
             EasySocket.getInstance().connect();
             this.dataMessage = dataMessage;
         } else {
-            LogUtil.w("Socket鍦板潃涓虹┖");
+            MyApplication.myApplication.initEasySocket(false, null);
         }
     }
 
@@ -107,7 +107,7 @@
                             MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode());
                         }
                     }
-                }, 2000);
+                }, 500);
 
             }
             if (dataMessage != null) {
@@ -170,7 +170,7 @@
             socketData.setBodyData(originReadData.getBodyBytes());
             socketData.setHeaderData(originReadData.getHeaderData());
             dataMessage = null;
-            if (myCallBack!=null){
+            if (myCallBack != null) {
                 myCallBack.onSocketResponse(socketData);
             }
 
diff --git a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
index 183296e..f7bc735 100644
--- a/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
+++ b/app/src/main/java/com/dayu/recharge/tools/HexUtil.java
@@ -62,7 +62,7 @@
         if (hex.length() < 2) {
             hex = "0" + hex;
         }
-        return hex;
+        return hex.toUpperCase();
     }
 
 
diff --git a/app/src/main/java/com/dayu/recharge/utils/MyCommon.java b/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
index 7bca8e9..8413e24 100644
--- a/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
+++ b/app/src/main/java/com/dayu/recharge/utils/MyCommon.java
@@ -8,31 +8,61 @@
  */
 public class MyCommon {
 
+    /**
+     * 鐢ㄦ埛鍒峰崱寮�娉靛墠
+     */
     public static final String USER_CARD_TYPE_1 = "A1";
+    /**
+     * 鐢ㄦ埛鍒峰崱寮�娉靛悗
+     */
     public static final String USER_CARD_TYPE_2 = "A8";
+    /**
+     * 鐢ㄦ埛鍙犲姞鍏呭��
+     */
     public static final String USER_CARD_TYPE_3 = "A2";
 
-    public static final String CLEAN_CARD_TYPE_3 = "C8";
+    /**
+     * 绠$悊鍗�
+     */
+    public static final String MANAGE_CRAD = "B2";
 
+    /**
+     * 娓呴浂鍗�
+     */
+    public static final String CLEAN_CARD_TYPE = "C8";
 
-    public static final String REGISTERED_CARD_TYPE_3 = "BA";
-
-    public static final String CLEAN_ALL_USER_CARD_TYPE_3 = "BB";
+    /**
+     * 閲嶆柊娉ㄥ唽璁惧鍗�
+     */
+    public static final String REGISTERED_CARD_TYPE = "BA";
+    /**
+     * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�
+     */
+    public static final String CLEAN_ALL_USER_CARD_TYPE = "BB";
 
     /**
      * 璁剧疆鍩熷悕鍗�
      */
-    public static final String DOMAIN_CARD_TYPE_3 = "C1";
+    public static final String DOMAIN_CARD_TYPE = "C1";
 
     /**
      * 娴嬭瘯鍗�
      */
-    public static final String TEST_CARD_TYPE_3 = "A4";
+    public static final String TEST_CARD_TYPE = "A4";
 
     /**
      * 閰嶇疆璁惧娉ㄥ唽淇℃伅鍗�
      */
-    public static final String CONFIGURATION_CARD_TYPE_3 = "BC";
+    public static final String CONFIGURATION_CARD_TYPE = "BC";
 
+    /**
+     * 閰嶇疆姘存车鍔熺巼鍗�
+     */
+    public static final String CONFIGURATION_POWER_CARD_TYPE = "BD";
+
+    /**
+     * 瀵嗙爜鍗�
+     */
+    public static final String PASS_WORD_CRAD_TYPE = "B3";
 
 }
diff --git a/app/src/main/res/layout/activity_domain.xml b/app/src/main/res/layout/activity_domain.xml
index e4e8627..a00ebd5 100644
--- a/app/src/main/res/layout/activity_domain.xml
+++ b/app/src/main/res/layout/activity_domain.xml
@@ -18,14 +18,12 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/titleBar"
-        android:layout_margin="20dp"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginEnd="20dp"
+        android:layout_marginBottom="20dp"
         android:orientation="vertical">
 
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="褰撳墠鍩熷悕鍜岀鍙o細"
-            android:textSize="@dimen/text_size" />
 
         <TextView
             android:id="@+id/domain_oldTV"
@@ -36,12 +34,22 @@
 
     </LinearLayout>
 
-
+    <EditText
+        android:id="@+id/domainNumber"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/domain_ll"
+        android:layout_alignParentStart="true"
+        android:layout_marginStart="20dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginEnd="20dp"
+        android:hint="璇疯緭鍏ユ柊鐨勫煙鍚嶅簭鍙�"
+        android:inputType="number" />
     <EditText
         android:id="@+id/domain"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_below="@+id/domain_ll"
+        android:layout_below="@+id/domainNumber"
         android:layout_alignParentStart="true"
         android:layout_marginStart="20dp"
         android:layout_marginTop="20dp"
diff --git a/app/src/main/res/layout/activity_ip.xml b/app/src/main/res/layout/activity_ip.xml
index e0c63d2..5804427 100644
--- a/app/src/main/res/layout/activity_ip.xml
+++ b/app/src/main/res/layout/activity_ip.xml
@@ -28,8 +28,9 @@
         <EditText
             android:id="@+id/ip"
             android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:hint="socket閫氫俊IP"
-            android:layout_height="wrap_content" />
+            android:text="dayuyanjiuyuan.top" />
 
 
     </LinearLayout>
@@ -49,11 +50,11 @@
         <EditText
             android:id="@+id/port"
             android:layout_width="match_parent"
-            android:inputType="number"
+            android:layout_height="wrap_content"
             android:hint="socket閫氫俊绔彛"
-            android:layout_height="wrap_content" />
+            android:inputType="number"
+            android:text="08888" />
     </LinearLayout>
-
 
 
     <TextView
diff --git a/app/src/main/res/layout/activity_parameter.xml b/app/src/main/res/layout/activity_parameter.xml
index 98f4d71..d19960c 100644
--- a/app/src/main/res/layout/activity_parameter.xml
+++ b/app/src/main/res/layout/activity_parameter.xml
@@ -17,8 +17,8 @@
         android:id="@+id/parameter_domain"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-         android:layout_marginLeft="20dp"
-                android:layout_marginTop="20dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="20dp"
         android:padding="5dp"
         android:text="鍩熷悕鍗¤缃�"
         android:textSize="@dimen/text_size" />
@@ -27,8 +27,8 @@
         android:id="@+id/parameter_power"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-         android:layout_marginLeft="20dp"
-                android:layout_marginTop="20dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="20dp"
         android:padding="5dp"
         android:text="姘存车鍔熺巼鍗¤缃�"
         android:textSize="@dimen/text_size" />
@@ -38,12 +38,11 @@
         android:id="@+id/parameter_electricPrice"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-         android:layout_marginLeft="20dp"
-                android:layout_marginTop="20dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="20dp"
         android:padding="5dp"
         android:text="鐢甸噺鍗曚环"
-        android:textSize="@dimen/text_size"
-        android:visibility="gone" />
+        android:textSize="@dimen/text_size" />
 
 
 </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 e5851a7..6b36e64 100644
--- a/app/src/main/res/layout/activity_red_card.xml
+++ b/app/src/main/res/layout/activity_red_card.xml
@@ -27,66 +27,52 @@
             android:orientation="vertical">
 
             <TextView
-                android:id="@+id/red_villageNum"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:text="璁惧搴忓垪鍙凤細"
-                android:textSize="@dimen/text_size" />
-
-            <TextView
                 android:id="@+id/red_name"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
-                android:text="鐢� 鎴� 鍚嶏細"
+                android:text="鐢ㄦ埛濮撳悕锛�"
                 android:textSize="@dimen/text_size" />
 
-<!--            <TextView-->
-<!--                android:id="@+id/red_userNum"-->
-<!--                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_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: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_total_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_rechargeDate"
+                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_electric"-->
-<!--                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_water"-->
-<!--                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_rechargeNumber"
+                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_statu"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
-                android:text="鐘�    鎬侊細"
+                android:text="鍗$姸鎬侊細"
                 android:textSize="@dimen/text_size" />
 
         </LinearLayout>
@@ -94,46 +80,38 @@
     </ScrollView>
 
 
-    <TextView
-        android:id="@+id/read_sysLL"
-        android:layout_width="wrap_content"
+    <LinearLayout
+        android:id="@+id/read_cardTypeLL"
+        android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_centerHorizontal="true"
-        android:layout_centerVertical="true"
-        android:layout_gravity="center"
+        android:layout_below="@id/titleBar"
         android:gravity="center"
-        android:text="褰撳墠涓虹鐞嗗崱"
-        android:textSize="30sp"
-        android:textStyle="bold"
-        android:visibility="gone" />
+        android:orientation="vertical"
+        android:visibility="visible">
 
+        <TextView
+            android:id="@+id/read_cardTypeTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:textSize="30sp"
+            android:textStyle="bold" />
 
-    <TextView
-        android:id="@+id/read_cleanLL"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_centerHorizontal="true"
-        android:layout_centerVertical="true"
-        android:layout_gravity="center"
-        android:gravity="center"
-        android:text="褰撳墠涓烘竻闆跺崱"
-        android:textSize="30sp"
-        android:textStyle="bold"
-        android:visibility="gone" />
-
-
-    <TextView
-        android:id="@+id/read_initLL"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:layout_centerHorizontal="true"
-        android:layout_centerVertical="true"
-        android:layout_gravity="center"
-        android:gravity="center"
-        android:text="褰撳墠涓哄嚭鍘傝缃崱"
-        android:textSize="30sp"
-        android:textStyle="bold"
-        android:visibility="gone" />
+        <TextView
+            android:id="@+id/read_cardDataTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:layout_gravity="center"
+            android:layout_marginTop="20dp"
+            android:gravity="left"
+            android:textSize="20sp"
+            android:textStyle="bold" />
+    </LinearLayout>
 
 
     <LinearLayout
@@ -142,7 +120,8 @@
         android:layout_height="match_parent"
         android:layout_below="@id/titleBar"
         android:background="#ffffff"
-        android:orientation="vertical">
+        android:orientation="vertical"
+        android:visibility="visible">
 
         <TextView
             android:layout_width="match_parent"
@@ -172,13 +151,5 @@
         android:visibility="gone"
         app:indicatorColor="@color/title_bg"
         app:indicatorName="BallClipRotatePulseIndicator" />
-
-    <TextView
-        android:id="@+id/textData"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        />
-
-
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xhdpi/logo.jpg b/app/src/main/res/mipmap-xhdpi/logo.jpg
new file mode 100644
index 0000000..d7ffc22
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/logo.jpg
Binary files differ
diff --git a/easysocket/src/main/java/com/easysocket/EasySocket.java b/easysocket/src/main/java/com/easysocket/EasySocket.java
index e0c158f..4aecbd3 100644
--- a/easysocket/src/main/java/com/easysocket/EasySocket.java
+++ b/easysocket/src/main/java/com/easysocket/EasySocket.java
@@ -268,8 +268,8 @@
      */
     public IConnectionManager getDefconnection() {
         if (defConnection == null) {
-            throw new NotNullException("浣犺繕娌℃湁鍒涘缓锛�" + defOptions.getSocketAddress().getIp() + ":" + defOptions.getSocketAddress().getPort()
-                    + "鐨凷ocket鐨勮繛鎺ワ紝璇蜂娇鐢╟om.easysocket.EasySocket.connect()鏂规硶鍒涘缓涓�涓粯璁ょ殑杩炴帴");
+//            throw new NotNullException("浣犺繕娌℃湁鍒涘缓锛�" + defOptions.getSocketAddress().getIp() + ":" + defOptions.getSocketAddress().getPort()
+//                    + "鐨凷ocket鐨勮繛鎺ワ紝璇蜂娇鐢╟om.easysocket.EasySocket.connect()鏂规硶鍒涘缓涓�涓粯璁ょ殑杩炴帴");
         }
         return defConnection;
     }

--
Gitblit v1.8.0