From d09bdcac6830afaad6e277fb558c16d2aa6187a7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 十二月 2023 11:13:21 +0800
Subject: [PATCH] 卡标识码列表功能相关,可分辨设置不同类型卡标识码

---
 app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java         |  100 +++++++++++++++++++++---
 app/src/main/java/com/dayu/recharge/dbBean/CardData.java                      |   43 ++++++++++
 app/src/main/java/com/dayu/recharge/card/RegisteredCard.java                  |    4 +
 app/src/main/res/layout/activity_identyfying.xml                              |    3 
 app/src/main/res/layout/pickerview_choose.xml                                 |   10 +-
 app/src/main/java/com/dayu/recharge/card/CleanCard.java                       |    6 +
 app/src/main/java/com/dayu/recharge/card/TestCard.java                        |    4 +
 app/src/main/java/com/dayu/recharge/card/ManageCard.java                      |    5 
 app/src/main/java/com/dayu/recharge/dao/CardDataDao.java                      |   30 +++++++
 app/src/main/java/com/dayu/recharge/dao/AppDatabase.java                      |    5 +
 app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java          |    4 +
 local.properties                                                              |    4 
 app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java |    4 +
 13 files changed, 195 insertions(+), 27 deletions(-)

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 9786eb7..520ed07 100644
--- a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
@@ -5,8 +5,16 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
+import com.dayu.recharge.card.CleanCard;
+import com.dayu.recharge.card.ConfigurationPowerCard;
+import com.dayu.recharge.card.ConfigureDeviceRegistrationCrad;
+import com.dayu.recharge.card.ManageCard;
+import com.dayu.recharge.card.RegisteredCard;
+import com.dayu.recharge.card.TestCard;
 import com.dayu.recharge.databinding.ActivityIdentyfyingBinding;
+import com.dayu.recharge.dbBean.CardData;
 import com.dayu.recharge.dbBean.IdentityBean;
+import com.dayu.recharge.utils.MyCommon;
 import com.dayu.recharge.utils.TipUtil;
 import com.dayu.recharge.view.ChooseView;
 
@@ -22,10 +30,15 @@
 public class IdentifyingActivity extends BaseActivity {
 
     ActivityIdentyfyingBinding binding;
-    IdentityBean myIdentityBean;
 
-    String[] nianfen = {"绠$悊鍗�", "娓呴浂鍗�", "閲嶆柊娉ㄥ唽璁惧鍗�", "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�", "璁剧疆鍩熷悕鍗�", "娴嬭瘯鍗�", "璁惧淇℃伅鍗�", "姘存车鍔熺巼鍗�"};
 
+    String[] nianfen = {"绠$悊鍗�", "娓呴浂鍗�", "閲嶆柊娉ㄥ唽璁惧鍗�", "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�", "娴嬭瘯鍗�", "璁惧淇℃伅鍗�", "姘存车鍔熺巼鍗�"};
+
+    /**
+     * 褰撳墠閫変腑鐨勫崱绫诲瀷
+     */
+    String cardType;
+    CardData cardData;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -38,7 +51,8 @@
                 ChooseView.getIntence(IdentifyingActivity.this, Arrays.asList(nianfen.clone()), new ChooseView.ChooseCallBack() {
                     @Override
                     public void onOptionsSelect(int options1) {
-
+                        chooseData(nianfen[options1]);
+                        binding.chooseCardTypeText.setText(nianfen[options1]);
                     }
                 }).show();
             }
@@ -46,49 +60,105 @@
 
 
         IdentityBean identityBean = baseDao.identityDao().findFirst();
-        if (identityBean != null) {
-            myIdentityBean = identityBean;
-            binding.electricOldNumber.setText(myIdentityBean.getIdentity());
-        } else {
-            myIdentityBean = new IdentityBean();
-            binding.electricOldNumber.setText("3668F7A30119");
-        }
+
         binding.electricOk.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (TextUtils.isEmpty(cardType)) {
+                    TipUtil.show("璇烽�夋嫨鍗$被鍨�");
+                    return;
+                }
                 String data = binding.electricOldNumber.getText().toString();
                 if (!TextUtils.isEmpty(data)) {
-                    myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString());
-                    baseDao.identityDao().insert(myIdentityBean);
+                    if (cardData == null) {
+                        cardData = new CardData();
+                        cardData.setCardType(cardType);
+                    }
+                    cardData.setCardIdentifying(data);
+                    baseDao.cardDataDao().insert(cardData);
                     TipUtil.show("淇濆瓨鎴愬姛");
                 } else {
                     TipUtil.show("璇疯緭鍏ュ崱鏍囪瘑");
                 }
-
             }
         });
     }
 
 
     private void chooseData(String data) {
+
         switch (data) {
             case "绠$悊鍗�":
+                cardType = MyCommon.MANAGE_CRAD;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.MANAGE_CRAD);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new ManageCard().getCardData());
+                }
                 break;
             case "娓呴浂鍗�":
+                cardType = MyCommon.CLEAN_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.CLEAN_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new CleanCard().getCardData());
+                }
                 break;
             case "閲嶆柊娉ㄥ唽璁惧鍗�":
+                cardType = MyCommon.REGISTERED_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.REGISTERED_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new RegisteredCard().getCardData());
+                }
                 break;
             case "鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�":
-                break;
-            case "璁剧疆鍩熷悕鍗�":
+                cardType = MyCommon.CLEAN_ALL_USER_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.CLEAN_ALL_USER_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new RegisteredCard().getCardData());
+                }
                 break;
             case "娴嬭瘯鍗�":
+                cardType = MyCommon.TEST_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.TEST_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new TestCard().getCardData());
+                }
                 break;
             case "璁惧淇℃伅鍗�":
+                cardType = MyCommon.CONFIGURATION_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.CONFIGURATION_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new ConfigureDeviceRegistrationCrad().getCardData());
+                }
                 break;
             case "姘存车鍔熺巼鍗�":
+                cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE;
+                cardData = baseDao.cardDataDao().findFirst(MyCommon.CONFIGURATION_POWER_CARD_TYPE);
+                if (cardData != null) {
+                    setData(cardData);
+                } else {
+                    binding.electricOldNumber.setText(new ConfigurationPowerCard().getCardData());
+                }
                 break;
         }
     }
 
+    private void setData(CardData cardData) {
+        if (cardData != null) {
+            String Identifying = cardData.getCardIdentifying();
+            binding.electricOldNumber.setText(Identifying);
+        }
+    }
+
 }
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 6eba6a9..2a8ac77 100644
--- a/app/src/main/java/com/dayu/recharge/card/CleanCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/CleanCard.java
@@ -15,6 +15,12 @@
     public String cardType = MyCommon.CLEAN_CARD_TYPE;//鍗$被鍨�
     public String cardData = "3668F7A30119";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
+
+
+
     public byte[] toByte() {
         Zero zero = new Zero();
         return zero.toByte();
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 533edfa..c727b4c 100644
--- a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
@@ -21,6 +21,10 @@
     public String cardType = MyCommon.CONFIGURATION_POWER_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
+
     public String power;//鍔熺巼
 
     public String getPower() {
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 049fcab..796d029 100644
--- a/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
+++ b/app/src/main/java/com/dayu/recharge/card/ConfigureDeviceRegistrationCrad.java
@@ -18,6 +18,10 @@
     public String cardType = MyCommon.CONFIGURATION_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
+
     public byte[] toByte() {
         Zero zero = new Zero();
         return zero.toByte();
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 451a8c8..4bea602 100644
--- a/app/src/main/java/com/dayu/recharge/card/ManageCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/ManageCard.java
@@ -1,8 +1,6 @@
 package com.dayu.recharge.card;
 
-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;
@@ -17,6 +15,9 @@
     public String cardType = MyCommon.MANAGE_CRAD;//鍗$被鍨�
     public String cardData = "3668F7A30119";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
 
     public byte[] toZeroByte() {
         Zero zero = new Zero();
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 e3652a8..de5c242 100644
--- a/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/RegisteredCard.java
@@ -15,6 +15,10 @@
     public String cardType = MyCommon.REGISTERED_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
+
     public byte[] toByte() {
         Zero zero = new Zero();
         return zero.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 f3f6915..c12f7e2 100644
--- a/app/src/main/java/com/dayu/recharge/card/TestCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/TestCard.java
@@ -15,6 +15,10 @@
     public String cardType = MyCommon.TEST_CARD_TYPE;//鍗$被鍨�
     public String cardData = "A0B1C289";//鏍囪瘑鐮�
 
+    public String getCardData() {
+        return cardData;
+    }
+
     public byte[] toByte() {
         Zero zero = new Zero();
         return zero.toByte();
diff --git a/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java b/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
index 7942211..e00689d 100644
--- a/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
+++ b/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
@@ -4,6 +4,7 @@
 import androidx.room.RoomDatabase;
 
 import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.CardData;
 import com.dayu.recharge.dbBean.DeviceNumber;
 import com.dayu.recharge.dbBean.DomainBean;
 import com.dayu.recharge.dbBean.ElectricPriceBean;
@@ -20,7 +21,7 @@
  * Date: 2023-11-05 16:23
  * Description:
  */
-@Database(entities = {DeviceNumber.class,IdentityBean.class,DomainBean.class,ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 1, exportSchema = false)
+@Database(entities = {CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 2, exportSchema = false)
 public abstract class AppDatabase extends RoomDatabase {
 
 
@@ -43,4 +44,6 @@
     public abstract IdentityDao identityDao();
 
     public abstract DeviceNumberDao deviceNumberDao();
+
+    public abstract CardDataDao cardDataDao();
 }
diff --git a/app/src/main/java/com/dayu/recharge/dao/CardDataDao.java b/app/src/main/java/com/dayu/recharge/dao/CardDataDao.java
new file mode 100644
index 0000000..07438d5
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/dao/CardDataDao.java
@@ -0,0 +1,30 @@
+package com.dayu.recharge.dao;
+
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
+
+import com.dayu.recharge.dbBean.CardData;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-12-14
+ * Time: 10:08
+ * 澶囨敞锛�
+ */
+@Dao
+public interface CardDataDao {
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    void insert(CardData cardData);
+
+    @Update
+    void update(CardData cardData);
+
+    @Query("select  * from CardData where cardType=:cardType limit 1")
+    CardData findFirst(String cardType);
+
+
+}
diff --git a/app/src/main/java/com/dayu/recharge/dbBean/CardData.java b/app/src/main/java/com/dayu/recharge/dbBean/CardData.java
new file mode 100644
index 0000000..749a91e
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/dbBean/CardData.java
@@ -0,0 +1,43 @@
+package com.dayu.recharge.dbBean;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-12-14
+ * Time: 10:05
+ * 澶囨敞锛� 鍗$浉鍏充俊鎭�
+ */
+@Entity
+public class CardData {
+    @PrimaryKey(autoGenerate = true)
+    public long id;
+
+    /**
+     * 鍗$墖绫诲瀷
+     */
+    public String cardType;
+
+    /**
+     * 鍗℃爣璇�
+     */
+    public String cardIdentifying;
+
+    public String getCardIdentifying() {
+        return cardIdentifying;
+    }
+
+    public void setCardIdentifying(String cardIdentifying) {
+        this.cardIdentifying = cardIdentifying;
+    }
+
+    public String getCardType() {
+        return cardType;
+    }
+
+    public void setCardType(String cardType) {
+        this.cardType = cardType;
+    }
+}
diff --git a/app/src/main/res/layout/activity_identyfying.xml b/app/src/main/res/layout/activity_identyfying.xml
index cb2323b..e72d9be 100644
--- a/app/src/main/res/layout/activity_identyfying.xml
+++ b/app/src/main/res/layout/activity_identyfying.xml
@@ -10,7 +10,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" />
 
 
@@ -31,7 +31,6 @@
             android:layout_centerVertical="true"
             android:layout_marginLeft="10dp"
             android:hint="璇烽�夋嫨鍗$被鍨�"
-            android:text="@{data.getBuildYearStr}"
             android:textColor="#000000"
             android:textSize="18sp" />
 
diff --git a/app/src/main/res/layout/pickerview_choose.xml b/app/src/main/res/layout/pickerview_choose.xml
index 05d4fa4..109f32c 100644
--- a/app/src/main/res/layout/pickerview_choose.xml
+++ b/app/src/main/res/layout/pickerview_choose.xml
@@ -7,7 +7,7 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:background="@color/white"
+        android:background="#ffffff"
         android:layout_height="45dp">
 
         <TextView
@@ -17,8 +17,8 @@
             android:layout_marginLeft="20dp"
             android:gravity="center"
             android:text="鍙�  娑�"
-            android:textColor="@color/choose_grey"
-            android:textSize="@dimen/choose_pop_text" />
+            android:textColor="@color/title_bg"
+            android:textSize="19sp" />
 
         <TextView
             android:id="@+id/bt_add"
@@ -28,8 +28,8 @@
             android:layout_marginRight="20dp"
             android:gravity="center"
             android:text="纭�  瀹�"
-            android:textColor="@color/title_color"
-            android:textSize="@dimen/choose_pop_text" />
+            android:textColor="@color/title_bg"
+            android:textSize="19sp" />
 
 
     </RelativeLayout>
diff --git a/local.properties b/local.properties
index 90aa526..1f4d3ae 100644
--- a/local.properties
+++ b/local.properties
@@ -4,5 +4,5 @@
 # Location of the SDK. This is only used by Gradle.
 # For customization when using a Version Control System, please read the
 # header note.
-#Sat Nov 11 20:12:34 CST 2023
-sdk.dir=D\:\\sdk
+#Thu Dec 14 09:58:29 CST 2023
+sdk.dir=D\:\\AndroidStudio\\sdk

--
Gitblit v1.8.0