From 7b80692e038ec9b1f06fbfdc61498c6ff3f97d71 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 28 三月 2024 15:13:25 +0800
Subject: [PATCH] 修改卡结构

---
 app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java    |   69 +++++++++++++++++
 app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java       |    4 
 app/src/main/res/layout/activity_region.xml                           |    2 
 app/src/main/AndroidManifest.xml                                      |    1 
 app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java |    7 +
 app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java              |   36 +++++++++
 app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java          |   37 +++++++++
 app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java            |   28 ++++++
 8 files changed, 181 insertions(+), 3 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a6fab18..d955331 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -117,6 +117,7 @@
         <activity android:name="com.dayu.rechargeqh.activity.ReplacementActivity" />
         <activity android:name="com.dayu.rechargeqh.activity.RechargeDetail" />
         <activity android:name="com.dayu.rechargeqh.activity.PasswordCardActivity" />
+        <activity android:name="com.dayu.rechargeqh.activity.RegionActivity"/>
 
 
         <meta-data
diff --git a/app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java b/app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java
index 5ce52da..b1b4d29 100644
--- a/app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java
+++ b/app/src/main/java/com/dayu/rechargeqh/activity/ParameterActivity.java
@@ -65,5 +65,12 @@
                 startActivity(intent);
             }
         });
+        binding.parameterRegion.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent(ParameterActivity.this, RegionActivity.class);
+                startActivity(intent);
+            }
+        });
     }
 }
diff --git a/app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java b/app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java
new file mode 100644
index 0000000..0edc729
--- /dev/null
+++ b/app/src/main/java/com/dayu/rechargeqh/activity/RegionActivity.java
@@ -0,0 +1,69 @@
+package com.dayu.rechargeqh.activity;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.dayu.rechargeqh.databinding.ActivityRegionBinding;
+import com.dayu.rechargeqh.dbBean.PowerBean;
+import com.dayu.rechargeqh.dbBean.RegionBean;
+import com.dayu.rechargeqh.utils.TipUtil;
+
+/**
+ * author: zuo
+ * Date: 2024-03-06
+ * Time: 17:28
+ * 澶囨敞锛氬尯鍩熸爣鍙峰崱璁剧疆鐣岄潰
+ */
+public class RegionActivity extends BaseActivity {
+
+
+    ActivityRegionBinding binding;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        binding = ActivityRegionBinding.inflate(LayoutInflater.from(this));
+        setContentView(binding.getRoot());
+        initView();
+        initData();
+    }
+
+    private void initData() {
+        RegionBean regionBean = baseDao.regionDao().findFirst();
+        if (regionBean!=null){
+            binding.controllerOldText.setText(regionBean.getControllerCodel());
+            binding.regionOldText.setText(regionBean.getRegion());
+        }else {
+            binding.controllerOldText.setText("褰撳墠涓洪粯璁ゅ��");
+            binding.regionOldText.setText("褰撳墠涓洪粯璁ゅ��");
+        }
+    }
+
+    private void initView() {
+
+
+        binding.electricOk.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String region = binding.regionNewET.getText().toString();
+                String controller = binding.controllerNewET.getText().toString();
+                if (TextUtils.isEmpty(region)) {
+                    TipUtil.show("璇疯緭鍏ユ柊鍖哄煙鍦板潃");
+                    return;
+                }
+                if (TextUtils.isEmpty(controller)) {
+                    TipUtil.show("璇疯緭鍏ユ柊鎺у埗鍣ㄧ紪鍙�");
+                    return;
+                }
+                RegionBean regionBean=new RegionBean();
+                regionBean.setRegion(region);
+                regionBean.setControllerCodel(controller);
+                baseDao.regionDao().insert(regionBean);
+                TipUtil.show("淇濆瓨鎴愬姛");
+                initData();
+            }
+        });
+    }
+}
diff --git a/app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java b/app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java
index 7839100..9920523 100644
--- a/app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java
+++ b/app/src/main/java/com/dayu/rechargeqh/dao/AppDatabase.java
@@ -1,7 +1,10 @@
 package com.dayu.rechargeqh.dao;
 
+import androidx.annotation.NonNull;
 import androidx.room.Database;
 import androidx.room.RoomDatabase;
+import androidx.room.migration.Migration;
+import androidx.sqlite.db.SupportSQLiteDatabase;
 
 import com.dayu.rechargeqh.dbBean.AdminDataBean;
 import com.dayu.rechargeqh.dbBean.CardData;
@@ -14,6 +17,7 @@
 import com.dayu.rechargeqh.dbBean.PassWordCardBean;
 import com.dayu.rechargeqh.dbBean.PowerBean;
 import com.dayu.rechargeqh.dbBean.RechargeBean;
+import com.dayu.rechargeqh.dbBean.RegionBean;
 import com.dayu.rechargeqh.dbBean.UserCardBean;
 
 /**
@@ -22,7 +26,7 @@
  * Date: 2023-11-05 16:23
  * Description:
  */
-@Database(entities = {PassWordCardBean.class,CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 3, exportSchema = false)
+@Database(entities = {RegionBean.class, PassWordCardBean.class, CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 4, exportSchema = false)
 public abstract class AppDatabase extends RoomDatabase {
 
 
@@ -49,4 +53,26 @@
     public abstract CardDataDao cardDataDao();
 
     public abstract PassWordCardDao passWordCardDao();
+
+    public abstract RegionDao regionDao();
+
+    public static final Migration MIGRATION_3_4 = new Migration(3, 4) {
+        @Override
+        public void migrate(@NonNull SupportSQLiteDatabase database) {
+            // 鍦ㄨ繖閲屾坊鍔犳偍鐨勮縼绉讳唬鐮�
+            database.execSQL("CREATE TABLE IF NOT EXISTS `RegionBean_temp` " +
+                    "(`region` TEXT, `controllerCodel` TEXT, `id` INTEGER, PRIMARY KEY(`id`))");
+
+            // 澶嶅埗鏁版嵁鍒版柊琛�
+            database.execSQL("INSERT INTO RegionBean_temp (region, controllerCodel, id) " +
+                    "SELECT region, controllerCodel, id FROM RegionBean");
+
+            // 鍒犻櫎鏃ц〃
+            database.execSQL("DROP TABLE RegionBean");
+
+            // 閲嶅懡鍚嶆柊琛ㄤ负鏃ц〃鍚�
+            database.execSQL("ALTER TABLE RegionBean_temp RENAME TO RegionBean");
+        }
+    };
+
 }
diff --git a/app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java b/app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java
index 7987609..bdefc9c 100644
--- a/app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java
+++ b/app/src/main/java/com/dayu/rechargeqh/dao/BaseDaoSingleton.java
@@ -25,7 +25,7 @@
                     context,
                     AppDatabase.class,
                     SqlitePath + "ConfigurationData"
-            ).allowMainThreadQueries().build();
+            ).allowMainThreadQueries().addMigrations(AppDatabase.MIGRATION_3_4).build();
         }
         return baseDao;
     }
@@ -37,7 +37,7 @@
                     context,
                     AppDatabase.class,
                     SqlitePath + "ConfigurationData"
-            ).build();
+            ).addMigrations(AppDatabase.MIGRATION_3_4).build();
         }
         return AsynchBaseDao;
 
diff --git a/app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java b/app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java
new file mode 100644
index 0000000..a1e62f0
--- /dev/null
+++ b/app/src/main/java/com/dayu/rechargeqh/dao/RegionDao.java
@@ -0,0 +1,36 @@
+package com.dayu.rechargeqh.dao;
+
+import androidx.room.Dao;
+import androidx.room.Delete;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+import androidx.room.Update;
+
+import com.dayu.rechargeqh.dbBean.RegionBean;
+
+/**
+ * author: zuo
+ * Date: 2024-03-07
+ * Time: 14:17
+ * 澶囨敞锛氬尯鍩熻〃鍙蜂繚瀛�
+ */
+
+@Dao
+public interface RegionDao {
+
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    void insert(RegionBean adminData);
+
+    @Update
+    void update(RegionBean adminData);
+
+    @Delete
+    void delete(RegionBean adminData);
+
+    @Query("select  * from RegionBean limit 1")
+    RegionBean findFirst();
+
+
+}
diff --git a/app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java b/app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java
new file mode 100644
index 0000000..aee1ba2
--- /dev/null
+++ b/app/src/main/java/com/dayu/rechargeqh/dbBean/RegionBean.java
@@ -0,0 +1,37 @@
+package com.dayu.rechargeqh.dbBean;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+/**
+ * author: zuo
+ * Date: 2024-03-07
+ * Time: 12:05
+ * 澶囨敞锛�
+ */
+@Entity
+public class RegionBean {
+    @PrimaryKey(autoGenerate = true)
+    public long id;
+
+    public String region;//鍖哄煙鍦板潃
+
+    public String controllerCodel;//鎺у埗鍣ㄧ紪鍙�(浣庡墠楂樺悗) 鏈尯鍩熷唴鎺у埗鍣ㄧ紪鍙�
+
+
+    public String getRegion() {
+        return region;
+    }
+
+    public void setRegion(String region) {
+        this.region = region;
+    }
+
+    public String getControllerCodel() {
+        return controllerCodel;
+    }
+
+    public void setControllerCodel(String controllerCodel) {
+        this.controllerCodel = controllerCodel;
+    }
+}
diff --git a/app/src/main/res/layout/activity_region.xml b/app/src/main/res/layout/activity_region.xml
index 3c2af80..90538ab 100644
--- a/app/src/main/res/layout/activity_region.xml
+++ b/app/src/main/res/layout/activity_region.xml
@@ -67,6 +67,7 @@
         android:layout_marginEnd="20dp"
         android:layout_marginBottom="20dp"
         android:hint="璇疯緭鍏ユ柊鍖哄煙鍦板潃锛堜袱浣�16杩涘埗瀛楃锛�"
+        android:maxLength="4"
         android:inputType="numberDecimal" />
 
     <EditText
@@ -76,6 +77,7 @@
         android:layout_below="@+id/region_newET"
         android:layout_alignParentStart="true"
         android:layout_marginStart="20dp"
+        android:maxLength="4"
         android:layout_marginTop="20dp"
         android:layout_marginEnd="20dp"
         android:layout_marginBottom="20dp"

--
Gitblit v1.8.0