From fc6048b630901058ccd90529e32e031e612b8384 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期二, 21 十一月 2023 14:32:03 +0800
Subject: [PATCH] 补卡相关
---
app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java | 53 +++
app/src/main/res/layout/edt_dialog.xml | 4
app/src/main/java/com/dayu/recharge/activity/MyActivity.java | 21 +
app/src/main/res/layout/activity_admin_setup.xml | 2
app/src/main/res/layout/activity_write_text.xml | 13
app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java | 3
app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java | 88 ++++++
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java | 108 +++++-
app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java | 6
app/src/main/java/com/dayu/recharge/dao/DeviceNumberDao.java | 20 +
app/src/main/java/com/dayu/recharge/dao/UserCardDao.java | 2
app/dycz.jks | 0
app/src/main/java/com/dayu/recharge/view/PassWordDialog.java | 2
app/libs/oaid_sdk_1.0.25.aar | 0
app/src/main/res/layout/activity_domain.xml | 1
app/src/main/java/com/dayu/recharge/activity/SysActivity.java | 2
app/src/main/java/com/dayu/recharge/dao/AppDatabase.java | 8
app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java | 2
app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java | 53 +++
app/src/main/res/mipmap-xhdpi/icon_search.png | 0
app/src/main/java/com/dayu/recharge/activity/DomainActivity.java | 3
app/src/main/res/layout/activity_my.xml | 32 +
app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java | 5
app/build.gradle | 11
app/src/main/java/com/dayu/recharge/dao/IdentityDao.java | 33 ++
app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java | 11
app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java | 11
app/src/main/res/layout/activity_new_card.xml | 2
app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java | 24 +
app/src/main/java/com/dayu/recharge/activity/PowerActivity.java | 2
app/src/main/res/values/strings.xml | 1
app/src/main/AndroidManifest.xml | 20
app/src/main/res/layout/activity_identyfying.xml | 58 ++++
app/src/main/res/layout/activity_replacement.xml | 26 +
app/src/main/java/com/dayu/recharge/activity/HomeActivity.java | 19 +
app/src/main/java/com/dayu/recharge/MyApplication.java | 13
app/src/main/java/com/dayu/recharge/net/SocketNet.java | 5
app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java | 7
app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java | 36 ++
app/src/main/res/layout/activity_login.xml | 2
app/src/main/java/com/dayu/recharge/dbBean/IdentityBean.java | 34 ++
app/src/main/res/layout/activity_parameter.xml | 11
app/src/main/java/com/dayu/recharge/view/EdtDialog.java | 39 ++
43 files changed, 700 insertions(+), 93 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 02c2efb..4918915 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -7,11 +7,16 @@
defaultConfig {
applicationId "com.dayu.recharge"
minSdk 23
- targetSdk 33
+ targetSdk 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+
+ ndk{
+ abiFilters 'armeabi-v7a'
+ }
+
}
buildTypes {
@@ -33,7 +38,9 @@
// }
// }
}
-
+//ps:dycz@2023
+//alias:dayu
+//ps:dycz@2023
dependencies {
implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
diff --git a/app/dycz.jks b/app/dycz.jks
new file mode 100644
index 0000000..d8a85a0
--- /dev/null
+++ b/app/dycz.jks
Binary files differ
diff --git a/app/libs/oaid_sdk_1.0.25.aar b/app/libs/oaid_sdk_1.0.25.aar
new file mode 100644
index 0000000..47ca06d
--- /dev/null
+++ b/app/libs/oaid_sdk_1.0.25.aar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5ca0db9..9d92012 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -44,7 +44,10 @@
<activity
android:name=".activity.LoginActivity"
android:exported="true">
-
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
</activity>
<activity
android:name=".activity.AdminSetupActivity"
@@ -55,16 +58,13 @@
<activity
android:name=".activity.HomeActivity"
android:exported="true">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
+
</activity>
<activity
android:name=".activity.NewCardActivity"
android:exported="true"
- android:screenOrientation="portrait"
- android:launchMode="singleTop">
+ android:launchMode="singleTop"
+ android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<data android:mimeType="text/plain" />
@@ -103,8 +103,10 @@
<activity android:name=".activity.SysIpActivity" />
<activity android:name=".activity.ParameterActivity" />
<activity android:name=".activity.PowerActivity" />
- <activity android:name=".activity.DomainActivity"/>
- <activity android:name=".activity.ElectricPriceActivity"/>
+ <activity android:name=".activity.DomainActivity" />
+ <activity android:name=".activity.ElectricPriceActivity" />
+ <activity android:name=".activity.IdentifyingActivity" />
+ <activity android:name=".activity.ReplacementActivity"/>
<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 1b1ca34..2b4e13f 100644
--- a/app/src/main/java/com/dayu/recharge/MyApplication.java
+++ b/app/src/main/java/com/dayu/recharge/MyApplication.java
@@ -7,6 +7,7 @@
import android.util.Log;
import com.dayu.recharge.dao.BaseDaoSingleton;
+import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.IpBean;
import com.easysocket.EasySocket;
import com.easysocket.config.EasySocketOptions;
@@ -175,8 +176,16 @@
//BCD鐮�00鎴愬姛01澶辫触(娉ㄥ唽鍙蜂笉鏄湇鍔″櫒杩斿洖淇℃伅)
if (state.equalsIgnoreCase("00")) {
//淇濆瓨璁惧娉ㄥ唽鍙�
- BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst();
- WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
+ DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
+ if (deviceNumber != null) {
+ deviceNumber.setDeviceRegistrationNumber(initCode);
+ } else {
+ deviceNumber = new DeviceNumber();
+ deviceNumber.setDeviceRegistrationNumber(initCode);
+ }
+ BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
+
+// WSHelper.getInstance(MyApplication.this).put("initCode", initCode);
ToastUtil.show(MyApplication.this, "鍏呭�肩鐞嗘敞鍐屾姤鏂囪幏鍙栨垚鍔�");
} else {
//鏍¢獙CRC閿欒
diff --git a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
index 2a419ff..91d6565 100644
--- a/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/AdminSetupActivity.java
@@ -1,6 +1,7 @@
package com.dayu.recharge.activity;
import android.content.Context;
+import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
@@ -16,6 +17,9 @@
import com.example.pickerviewlibrary.picker.entity.PickerData;
import com.example.pickerviewlibrary.picker.listener.OnPickerClickListener;
import com.tencent.bugly.crashreport.CrashReport;
+
+import java.lang.reflect.Method;
+import java.util.zip.CRC32;
/**
* Copyright (C), 2023,
@@ -107,6 +111,8 @@
adminBinding.adminPhone.setText(adminData.getPhone());
adminBinding.adminName.setText(adminData.getName());
adminBinding.adminAddress.setText(adminData.getSheng() + adminData.getShi() + adminData.getXian() + adminData.getZhen() + adminData.getCun());
+ } else {
+ adminBinding.adminSerial.setText("12" + generateUniqueNumber(getSN()));
}
} catch (Exception e) {
@@ -155,5 +161,52 @@
}
}
+ public static String getSN() {
+ String serial = null;
+ try {
+ Class<?> c = Class.forName("android.os.SystemProperties");
+ Method get = c.getMethod("get", String.class);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ try {
+ serial = (String) get.invoke(c, "ro.sunmi.serial");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return serial;
+ } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ serial = Build.getSerial();
+ return serial;
+ } else {
+ //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡
+ //return Build.SERIAL;
+ try {
+ serial = (String) get.invoke(c, "ro.serialno");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return serial;
+ }
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public static String generateUniqueNumber(String input) {
+ try {
+ // 浣跨敤CRC32鍝堝笇鍑芥暟
+ CRC32 crc32 = new CRC32();
+ crc32.update(input.getBytes());
+ long crcValue = crc32.getValue();
+ // 灏嗗搱甯屽�兼槧灏勫埌6浣嶆暟瀛楃殑鑼冨洿
+ long sixDigitNumber = Math.abs(crcValue) % 1000000;
+ // 鏍煎紡鍖栦负6浣嶆暟瀛楃殑瀛楃涓�
+ return String.format("%06d", sixDigitNumber);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
}
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 6983e9f..9c15735 100644
--- a/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/DomainActivity.java
@@ -66,9 +66,10 @@
if (domainBean != null) {
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/HomeActivity.java b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
index 1a27f2c..ea32a72 100644
--- a/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/HomeActivity.java
@@ -1,5 +1,6 @@
package com.dayu.recharge.activity;
+import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -8,6 +9,7 @@
import com.dayu.recharge.databinding.ActivityHomeBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
import com.dayu.recharge.utils.ToastUtil;
+import com.permissionx.guolindev.PermissionX;
/**
@@ -27,6 +29,23 @@
homeBinding = ActivityHomeBinding.inflate(LayoutInflater.from(this));
setContentView(homeBinding.getRoot());
initView();
+ getPermission();
+ }
+
+ private void getPermission() {
+ PermissionX.init(HomeActivity.this).permissions(Manifest.permission.READ_PHONE_STATE)
+ .onExplainRequestReason((scope, deniedList) -> {
+
+// val message = "PermissionX闇�瑕佹偍鍚屾剰浠ヤ笅鏉冮檺鎵嶈兘姝e父浣跨敤"
+ })
+ .request((allGranted, grantedList, deniedList) -> {
+ if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃
+
+ } else {//鎮ㄦ嫆缁濅簡濡備笅鏉冮檺锛�$deniedList
+
+
+ }
+ });
}
private void initView() {
diff --git a/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
new file mode 100644
index 0000000..77d30e1
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/activity/IdentifyingActivity.java
@@ -0,0 +1,53 @@
+package com.dayu.recharge.activity;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import com.dayu.recharge.databinding.ActivityIdentyfyingBinding;
+import com.dayu.recharge.dbBean.IdentityBean;
+import com.dayu.recharge.utils.ToastUtil;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-20
+ * Time: 10:21
+ * 澶囨敞锛氬崱鏍囪瘑璁剧疆
+ */
+public class IdentifyingActivity extends BaseActivity {
+
+ ActivityIdentyfyingBinding binding;
+ IdentityBean myIdentityBean;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding=ActivityIdentyfyingBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+ 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) {
+ String data = binding.electricOldNumber.getText().toString();
+ if (!TextUtils.isEmpty(data)){
+ myIdentityBean.setIdentity(binding.electricOldNumber.getText().toString());
+ baseDao.identityDao().insert(myIdentityBean);
+ ToastUtil.show("淇濆瓨鎴愬姛");
+ }else {
+ ToastUtil.show("璇疯緭鍏ュ崱鏍囪瘑");
+ }
+
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
index b8e0b6f..758307a 100644
--- a/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/MyActivity.java
@@ -14,6 +14,7 @@
import com.dayu.recharge.databinding.ActivityMyBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
import com.dayu.recharge.net.SocketNet;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.ExcelUtil;
import com.dayu.recharge.utils.ToastUtil;
import com.dayu.recharge.utils.WSHelper;
@@ -55,12 +56,18 @@
}
private void initView() {
+ myBinding.cardReplacement.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startActivity(new Intent(MyActivity.this, ReplacementActivity.class));
+ }
+ });
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();
- startActivity(new Intent(MyActivity.this, AdminSetupActivity.class));
+ 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() {
@@ -105,8 +112,9 @@
myBinding.sysIp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent intent = new Intent(MyActivity.this, SysIpActivity.class);
- startActivity(intent);
+ PassWordDialog passWordDialog = new PassWordDialog(MyActivity.this, new Intent(MyActivity.this, SysIpActivity.class));
+ passWordDialog.show();
+
}
});
}
@@ -184,7 +192,8 @@
} else {
msgData.append("鏈繛鎺ユ暟鎹腑蹇�");
}
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+
+ String initCode = DeviceNumberUtils.getDeviceNumber();
if (TextUtils.isEmpty(initCode)) {
msgData.append(",璁惧鏈敞鍐�");
} else {
diff --git a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
index 2f5427f..5355d4f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -9,6 +9,7 @@
import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.R;
import com.dayu.recharge.card.CleanCard;
import com.dayu.recharge.card.CleanUserCard;
import com.dayu.recharge.card.ConfigurationPowerCard;
@@ -20,6 +21,8 @@
import com.dayu.recharge.card.UserCard;
import com.dayu.recharge.databinding.ActivityWriteTextBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.DeviceNumber;
+import com.dayu.recharge.dbBean.ElectricPriceBean;
import com.dayu.recharge.dbBean.RechargeBean;
import com.dayu.recharge.dbBean.UserCardBean;
import com.dayu.recharge.net.SocketCallBack;
@@ -34,6 +37,7 @@
import com.dayu.recharge.utils.AidlUtil;
import com.dayu.recharge.utils.CRC8;
import com.dayu.recharge.utils.DateUtil;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.MornyUtil;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.ToastUtil;
@@ -45,6 +49,12 @@
import java.util.List;
import java.util.Map;
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-08 21:19
+ * Description: nfc鍐欏崱鐣岄潰
+ */
public class NFCWreatActivity extends BaseNfcActivity {
@@ -133,33 +143,44 @@
}
if (this.getIntent().hasExtra("cleanCard")) {
cleanCard = (CleanCard) this.getIntent().getSerializableExtra("cleanCard");
+ binding.cardData.setText("鍒朵綔娓呴浂鍗�");
}
if (this.getIntent().hasExtra("manageCard")) {
manageCard = (ManageCard) this.getIntent().getSerializableExtra("manageCard");
+ binding.cardData.setText("鍒朵綔绠$悊鍗�");
}
if (this.getIntent().hasExtra("registeredCard")) {
registeredCard = (RegisteredCard) this.getIntent().getSerializableExtra("registeredCard");
+ binding.cardData.setText("鍒朵綔閲嶆柊娉ㄥ唽璁惧鍗�");
}
if (this.getIntent().hasExtra("dbUserCard")) {
userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("dbUserCard");
}
if (this.getIntent().hasExtra("cleanUserCard")) {
cleanUserCard = (CleanUserCard) this.getIntent().getSerializableExtra("cleanUserCard");
+ binding.cardData.setText("鍒朵綔鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗�");
}
if (this.getIntent().hasExtra("domainCard")) {
domainCard = (DomainCard) this.getIntent().getSerializableExtra("domainCard");
+ binding.cardData.setText("鍒朵綔璁剧疆鍩熷悕鍗�");
}
if (this.getIntent().hasExtra("testCard")) {
testCard = (TestCard) this.getIntent().getSerializableExtra("testCard");
+ binding.cardData.setText("鍒朵綔娴嬭瘯鍗�");
}
if (this.getIntent().hasExtra("configureDeviceRegistrationCrad")) {
configureDeviceRegistrationCrad = (ConfigureDeviceRegistrationCrad) this.getIntent().getSerializableExtra("configureDeviceRegistrationCrad");
+ binding.cardData.setText("鍒朵綔閰嶇疆璁惧娉ㄥ唽淇℃伅鍗�");
}
if (this.getIntent().hasExtra("configurationPowerCard")) {
configurationPowerCard = (ConfigurationPowerCard) this.getIntent().getSerializableExtra("configurationPowerCard");
+ binding.cardData.setText("鍒朵綔閰嶇疆姘存车鍔熺巼鍗�");
+ }
+ if (this.getIntent().hasExtra("morny")) {
+ morny = this.getIntent().getStringExtra("morny");
+ binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + "鍏�");
}
- morny = this.getIntent().getStringExtra("morny");
try {
adminData = baseDao.adminDao().findFirst();
} catch (Exception e) {
@@ -248,7 +269,7 @@
if ((configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag)) {
try {
if (userFlag && userCardBean != null) {
- baseDao.userCardDao().insert(userCardBean);
+
ToastUtil.show(this, "娉ㄥ唽鎴愬姛");
NFCWreatActivity.this.finish();
if (NewCardActivity.newCardActivity != null) {
@@ -273,6 +294,9 @@
stopAnim();
} else if (!TextUtils.isEmpty(morny)) {
readAllData(intent);
+ } else if (userCard == null && userCardBean != null) {
+ //琛ュ崱閫昏緫
+ selectBalance(userCardBean.getInitPeasantCode());
} else {
stopAnim();
ToastUtil.show(this, "鍙傛暟閿欒");
@@ -369,7 +393,7 @@
StringBuffer data = new StringBuffer();
if (rechargeBean != null) {
data.append("*****************************" + "\n");
- data.append(" 鍐滀笟姘翠环缁煎悎鏀归潻鍏呭�肩郴缁焅n\n");
+ data.append(getResources().getString(R.string.login_title) + "\n");
data.append("璁惧搴忓垪鍙凤細" + rechargeBean.getSerial() + "\n");
data.append("鐢ㄦ埛鍚嶏細" + rechargeBean.getUserName() + "\n");
// data.append("鎴� 鍙凤細" + rechargeBean.getUserNum() + "\n");
@@ -406,7 +430,7 @@
try {
RechargeRequestBean rechargeRequestBean = new RechargeRequestBean();
rechargeRequestBean.setControl("01");
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
rechargeRequestBean.setInitCode(initCode);
rechargeRequestBean.setXuLie(SocketUtil.getXuLie(this));
rechargeRequestBean.setAFN("95");
@@ -625,6 +649,8 @@
/**
+ * 鏌ヨ浣欓
+ *
* @param initPeasantCode 鍐滄埛娉ㄥ唽缂栧彿
*/
private void selectBalance(String initPeasantCode) {
@@ -633,7 +659,7 @@
BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
requestBean.setAFN("94");
requestBean.setControl("01");
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
requestBean.setInitCode(initCode);
requestBean.setInitPeasantCode(initPeasantCode);
requestBean.setXuLie(SocketUtil.getXuLie(this));
@@ -648,6 +674,24 @@
stateText = new StringBuffer();
stateText.append("鐘� 鎬侊細");
String state = BcdUtil.bcdToStr(readData.getBodyBytes()[2]); //BCD鐮�00鍚敤 01绂佺敤 02闅跺睘淇℃伅涓嶇 03鏃犳鍗′俊鎭� 04鍏跺畠s
+ if (userCard == null) {
+ userCard = new UserCard();
+ userCard.setRechargeTimes(0);
+
+ ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst();
+ if (electricPriceBean != null) {
+ userCard.setElectricityPrice(electricPriceBean.getPrice());
+ } else {
+ //榛樿鏄�1鍏�
+ userCard.setElectricityPrice(1.000f);
+ }
+ userCard.setSwipeNumber((short) 0);
+ userCard.setState("00");
+ userCard.setBalance(0);
+ userCard.setAddressCode(adminData.getAddressCode());
+ userCard.setInitPeasantCode(initPeasantCode);
+ }
+
if ("00".equals(state)) {
//鍙湁鍚姩鐘舵�佹墠鑳藉厖鍊�
//閲戦
@@ -656,30 +700,42 @@
//濮撳悕
byte[] nameByte = Arrays.copyOfRange(readData.getBodyBytes(), 7, 19);
String name = SocketUtil.fromHexString(SocketUtil.bytesToHexClean0(nameByte));
- rechargeBean = new RechargeBean();
- rechargeBean.setDate(System.currentTimeMillis());
- rechargeBean.setMorny(morny);
- if (userCardBean != null) {
- rechargeBean.setUserName(userCardBean.getUserName());
- } else {
- rechargeBean.setUserName(name);
- }
- List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll();
- String userId = "";
- if (userCardBeans != null) {
- for (int i = 0; i < userCardBeans.size(); i++) {
- if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) {
- userId = userCardBeans.get(i).getUserID();
+ userCard.setBalance(balance);
+ //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
+
+ if (!TextUtils.isEmpty(morny)) {
+ //鍏呭��
+ rechargeBean = new RechargeBean();
+ rechargeBean.setDate(System.currentTimeMillis());
+ rechargeBean.setMorny(morny);
+ if (userCardBean != null) {
+ rechargeBean.setUserName(userCardBean.getUserName());
+ } else {
+ rechargeBean.setUserName(name);
+ }
+ List<UserCardBean> userCardBeans = baseDao.userCardDao().findAll();
+ String userId = "";
+ if (userCardBeans != null) {
+ for (int i = 0; i < userCardBeans.size(); i++) {
+ if (initPeasantCode.equalsIgnoreCase(userCardBeans.get(i).getInitPeasantCode())) {
+ userId = userCardBeans.get(i).getUserID();
+ }
}
}
+ rechargeBean.setSerial(adminData.getSerial());
+ userCard.setRechargeDate(Calendar.getInstance());
+ rechargeBean.setBalance(MornyUtil.changeF2Y(balance + MornyUtil.changeY2F(morny)) + "");
+ rechargeBean.setUserId(userId);
+ recharge(initPeasantCode);
+ } else {
+ //琛ュ崱閫昏緫
+ setUser(intent, userCard);
+ if (userFlag) {
+ NFCWreatActivity.this.finish();
+ ToastUtil.show(NFCWreatActivity.this, "琛ュ崱鎴愬姛");
+ }
}
- rechargeBean.setSerial(adminData.getSerial());
- userCard.setBalance(balance);
- userCard.setRechargeDate(Calendar.getInstance());
- rechargeBean.setBalance(MornyUtil.changeF2Y(balance) + "");
- rechargeBean.setUserId(userId);
- //涓巗ocket鏈嶅姟鍣ㄩ�氫俊鍚庤繘琛屽悗缁搷浣�
- recharge(initPeasantCode);
+
stateText.append("鍚敤");
return;
} else if ("01".equals(state)) {
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 67a3395..0d0cc7d 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardActivity.java
@@ -5,10 +5,13 @@
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
+import android.text.InputFilter;
+import android.text.Spanned;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.msd.ocr.idcard.LibraryInitOCR;
import com.dayu.recharge.MyApplication;
import com.dayu.recharge.card.UserCard;
@@ -60,10 +63,11 @@
setContentView(newCardBinding.getRoot());
setData();
initView();
- LibraryInitOCR.initOCR(NewCardActivity.this);
+// LibraryInitOCR.initOCR(NewCardActivity.this);
}
private void initView() {
+ newCardBinding.newCardId.setFilters(new InputFilter[] { new AlphaNumericXFilter(),new InputFilter.LengthFilter(18) });
//韬唤璇佽瘑鍒�
newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() {
@Override
@@ -191,7 +195,7 @@
*/
private void initCard() {
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
if (TextUtils.isEmpty(initCode)) {
ToastUtil.show(this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
IpBean ipBean = baseDao.ipDao().findFirst();
@@ -249,6 +253,7 @@
userCardBean.setPhone(newCardBinding.newCardPhone.getText().toString());
userCardBean.setUserID(newCardBinding.newCardId.getText().toString());
userCardBean.setDate(System.currentTimeMillis());
+ baseDao.userCardDao().insert(userCardBean);
Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class);
intent.putExtra("userCard", userCard);
intent.putExtra("dbUserCard", userCardBean);
@@ -280,4 +285,19 @@
return name.matches(regex);
}
+ private static class AlphaNumericXFilter implements InputFilter {
+ // 姝e垯琛ㄨ揪寮忓畾涔夊彧鑳借緭鍏ユ暟瀛楀拰瀛楁瘝 "X"锛堝ぇ鍐欐垨灏忓啓锛�
+ private final String regex = "[0-9Xx]*";
+
+ @Override
+ public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+ // 妫�鏌ユ瘡涓緭鍏ュ瓧绗︽槸鍚︾鍚堟鍒欒〃杈惧紡
+ for (int i = start; i < end; i++) {
+ if (!String.valueOf(source.charAt(i)).matches(regex)) {
+ return ""; // 涓嶇鍚堣瀹氱殑瀛楃琚繃婊ゆ帀
+ }
+ }
+ return null; // 鍏佽杈撳叆瀛楃
+ }
+ }
}
diff --git a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
index 465dcb1..d8cbaf1 100644
--- a/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/NewCardListActivity.java
@@ -5,6 +5,7 @@
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
+import android.widget.AdapterView;
import com.dayu.recharge.adapter.NewCardAdapter;
import com.dayu.recharge.databinding.ActivityNewcardListBinding;
@@ -16,7 +17,10 @@
import java.util.List;
/**
- * Created by zuoxiao on 2018/12/24.
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-10 19:52
+ * Description: 鏂板崱娉ㄥ唽鍒楄〃鐣岄潰
*/
public class NewCardListActivity extends BaseActivity {
@@ -48,6 +52,7 @@
}
adapter = new NewCardAdapter(this, userCardBeanList);
newcardListBinding.newCardListView.setAdapter(adapter);
+
}
private void setRightButton() {
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 76505e8..283e26a 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ParameterActivity.java
@@ -33,7 +33,7 @@
startActivity(intent);
}
});
-
+// 姘存车鍔熺巼璁剧疆
binding.parameterPower.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -41,6 +41,7 @@
startActivity(intent);
}
});
+ //鐢甸噺鍗曚环璁剧疆
binding.parameterElectricPrice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -48,5 +49,13 @@
startActivity(intent);
}
});
+ //鍗℃爣璇嗚缃�
+ binding.parameterCardIdentifying.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(ParameterActivity.this, IdentifyingActivity.class);
+ startActivity(intent);
+ }
+ });
}
}
diff --git a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
index 133dda6..493f65d 100644
--- a/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
@@ -10,6 +10,12 @@
import com.dayu.recharge.utils.ToastUtil;
import com.dayu.recharge.utils.WSMD5;
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-11-10 19:52
+ * Description: 淇敼瀵嗙爜鐣岄潰
+ */
public class PassWordActivity extends BaseActivity {
ActivityPswBinding pswBinding;
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 6d51c56..8220dc7 100644
--- a/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/PowerActivity.java
@@ -13,7 +13,7 @@
* Copyright (C), 2023,
* Author: zuo
* Date: 2023-11-08 21:19
- * Description:
+ * Description: 鍔熺巼璁剧疆
*/
public class PowerActivity extends BaseActivity {
ActivityPowerBinding powerBinding;
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 61e1b9f..2913686 100644
--- a/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
+++ b/app/src/main/java/com/dayu/recharge/activity/ReadCardAcitivy.java
@@ -24,6 +24,7 @@
import com.dayu.recharge.tools.HexUtil;
import com.dayu.recharge.tools.NfcReadHelper;
import com.dayu.recharge.utils.CRC8;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.MornyUtil;
import com.dayu.recharge.utils.MyCommon;
import com.dayu.recharge.utils.SocketUtil;
@@ -267,7 +268,7 @@
BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
requestBean.setAFN("94");
requestBean.setControl("01");
- String initCode = WSHelper.getInstance(this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
requestBean.setInitCode(initCode);
requestBean.setInitPeasantCode(initPeasantCode);
requestBean.setXuLie(SocketUtil.getXuLie(this));
diff --git a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
index 15c2542..50ca2b4 100644
--- a/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/RechargeActivity.java
@@ -10,6 +10,7 @@
import android.widget.EditText;
import com.dayu.recharge.databinding.ActivityRechargeBinding;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.ToastUtil;
import com.dayu.recharge.utils.WSHelper;
import com.tencent.bugly.crashreport.CrashReport;
@@ -48,7 +49,7 @@
public void onClick(View v) {
String morny = binding.rechargeWater.getText().toString();
if (!TextUtils.isEmpty(morny)) {
- String initCode = WSHelper.getInstance(RechargeActivity.this).get("initCode", "");
+ String initCode = DeviceNumberUtils.getDeviceNumber();
if (TextUtils.isEmpty(initCode)) {
ToastUtil.show(RechargeActivity.this, "璁惧娉ㄥ唽鍙蜂负绌猴紝璇峰厛璁剧疆IP鍜岀鐞嗗憳鍦板潃");
// return;
@@ -72,7 +73,7 @@
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {
s = s.toString().subSequence(0,
- s.toString().indexOf(".") + 2);
+ s.toString().indexOf(".") + 3);
editText.setText(s);
editText.setSelection(s.length());
}
diff --git a/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
new file mode 100644
index 0000000..47b2e64
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/activity/ReplacementActivity.java
@@ -0,0 +1,88 @@
+package com.dayu.recharge.activity;
+
+import static com.dayu.recharge.view.TitleBar.ClickType_RIGHT_TEXT;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.AdapterView;
+
+import com.dayu.recharge.adapter.NewCardAdapter;
+import com.dayu.recharge.databinding.ActivityReplacementBinding;
+import com.dayu.recharge.dbBean.UserCardBean;
+import com.dayu.recharge.utils.ToastUtil;
+import com.dayu.recharge.view.EdtDialog;
+
+import java.util.List;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-20
+ * Time: 17:32
+ * 澶囨敞锛� 琛ュ崱鐣岄潰
+ */
+public class ReplacementActivity extends BaseActivity {
+ ActivityReplacementBinding binding;
+ List<UserCardBean> userCardBeanList;
+ NewCardAdapter adapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityReplacementBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+ setRightButton();
+ setData();
+ initView();
+ }
+
+ private void initView() {
+ binding.newCardListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+ UserCardBean userCardBean = userCardBeanList.get(position);
+ Intent intent = new Intent(ReplacementActivity.this, NFCWreatActivity.class);
+ intent.putExtra("dbUserCard", userCardBean);
+ startActivity(intent);
+ }
+ });
+ }
+
+ private void setData() {
+ try {
+ userCardBeanList = baseDao.userCardDao().findAll();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ adapter = new NewCardAdapter(this, userCardBeanList);
+ binding.newCardListView.setAdapter(adapter);
+ }
+
+ private void setRightButton() {
+ titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ EdtDialog edtDialog = new EdtDialog(ReplacementActivity.this, new EdtDialog.DialogBack() {
+ @Override
+ public void onOk(String data) {
+ List<UserCardBean> beans = baseDao.userCardDao().findByData(data);
+ if (beans != null && beans.size() > 0) {
+ userCardBeanList.clear();
+ userCardBeanList.addAll(beans);
+ adapter.notifyDataSetChanged();
+ } else {
+ ToastUtil.show("鏈壘鍒拌鐢ㄦ埛");
+ }
+ }
+
+ @Override
+ public void onCancel() {
+
+ }
+ });
+ }
+ });
+ }
+}
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 9144d28..be7ad6f 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysActivity.java
@@ -1,7 +1,9 @@
package com.dayu.recharge.activity;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
index 9722629..d0c2d12 100644
--- a/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/SysIpActivity.java
@@ -9,6 +9,7 @@
import com.dayu.recharge.databinding.ActivityIpBinding;
import com.dayu.recharge.dbBean.AdminDataBean;
import com.dayu.recharge.dbBean.IpBean;
+import com.dayu.recharge.utils.DeviceNumberUtils;
import com.dayu.recharge.utils.WSHelper;
/**
@@ -47,10 +48,12 @@
ipBinding.ipOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- String oldIp = WSHelper.getInstance(SysIpActivity.this).get("local_ip", "");
- int oldPort = WSHelper.getInstance(SysIpActivity.this).get("local_port", 0);
- if (!oldIp.equals(ipBinding.ip.getText().toString()) && oldPort != Integer.valueOf(ipBinding.port.getText().toString())) {
- WSHelper.getInstance(SysIpActivity.this).put("initCode", "");
+ if (ipBean != null) {
+ String oldIp = ipBean.getIp();
+ int oldPort = ipBean.getPort();
+ if (!oldIp.equals(ipBinding.ip.getText().toString())|| oldPort != Integer.valueOf(ipBinding.port.getText().toString())) {
+ DeviceNumberUtils.setDeviceNumber("");
+ }
}
if (ipBean == null) {
ipBean = new IpBean();
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 2ddbd0d..533edfa 100644
--- a/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
+++ b/app/src/main/java/com/dayu/recharge/card/ConfigurationPowerCard.java
@@ -10,7 +10,7 @@
* Copyright (C), 2023,
* Author: zuo
* Date: 2023-11-08 13:26
- * Description: 閰嶇疆璁惧娉ㄥ唽淇℃伅鍗★細
+ * Description: 閰嶇疆姘存车鍔熺巼鍗★細
* <p>
* 涓烘柟渚跨幇鍦烘洿鎹㈣澶囨椂閲嶆柊娉ㄥ唽鐨勯棶棰橈紝閰嶇疆璁惧淇℃伅鍗★紝棣栧厛鍒峰崱锛屾妸鍘熻澶囩殑娉ㄥ唽鍙峰拰ID鍙疯鍒板崱鍐咃紝
* 鍚屾椂鍗$姸鎬佸垯00淇敼涓篎F锛屽啀鏂拌澶囦笂鍒锋鍗℃椂锛屾敞鍐屽彿鍜孖D鍙疯嚜鍔ㄥ啓鍒版帶鍒跺櫒鍐咃紝鍙互鐩存帴鍒峰崱浣跨敤
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 7b2198d..7942211 100644
--- a/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
+++ b/app/src/main/java/com/dayu/recharge/dao/AppDatabase.java
@@ -4,8 +4,10 @@
import androidx.room.RoomDatabase;
import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.DomainBean;
import com.dayu.recharge.dbBean.ElectricPriceBean;
+import com.dayu.recharge.dbBean.IdentityBean;
import com.dayu.recharge.dbBean.IpBean;
import com.dayu.recharge.dbBean.PassWordBean;
import com.dayu.recharge.dbBean.PowerBean;
@@ -18,7 +20,7 @@
* Date: 2023-11-05 16:23
* Description:
*/
-@Database(entities = {DomainBean.class,ElectricPriceBean.class, IpBean.class, AdminDataBean.class, PassWordBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 1, exportSchema = false)
+@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)
public abstract class AppDatabase extends RoomDatabase {
@@ -37,4 +39,8 @@
public abstract ElectricPriceDao electricPriceDao();
public abstract DomainPortDao domainPortDao();
+
+ public abstract IdentityDao identityDao();
+
+ public abstract DeviceNumberDao deviceNumberDao();
}
diff --git a/app/src/main/java/com/dayu/recharge/dao/DeviceNumberDao.java b/app/src/main/java/com/dayu/recharge/dao/DeviceNumberDao.java
index 113ed9e..3bbd7a6 100644
--- a/app/src/main/java/com/dayu/recharge/dao/DeviceNumberDao.java
+++ b/app/src/main/java/com/dayu/recharge/dao/DeviceNumberDao.java
@@ -1,6 +1,13 @@
package com.dayu.recharge.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.recharge.dbBean.DeviceNumber;
/**
* Copyright (C), 2023,
@@ -9,5 +16,16 @@
* Description:鍚庡彴杩斿洖鐨勮澶囩爜
*/
@Dao
-interface DeviceNumberDao {
+public interface DeviceNumberDao {
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ void insert(DeviceNumber deviceNumber);
+
+ @Update
+ void update(DeviceNumber IpBean);
+
+ @Delete
+ void delete(DeviceNumber IpBean);
+
+ @Query("select * from DeviceNumber limit 1")
+ DeviceNumber findFirst();
}
diff --git a/app/src/main/java/com/dayu/recharge/dao/IdentityDao.java b/app/src/main/java/com/dayu/recharge/dao/IdentityDao.java
new file mode 100644
index 0000000..0348d7c
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/dao/IdentityDao.java
@@ -0,0 +1,33 @@
+package com.dayu.recharge.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.recharge.dbBean.IdentityBean;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-20
+ * Time: 10:42
+ * 澶囨敞锛�
+ */
+@Dao
+public interface IdentityDao {
+
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ void insert(IdentityBean identityBean);
+
+ @Update
+ void update(IdentityBean identityBean);
+
+ @Delete
+ void delete(IdentityBean identityBean);
+
+ @Query("select * from IdentityBean limit 1")
+ IdentityBean findFirst();
+}
diff --git a/app/src/main/java/com/dayu/recharge/dao/UserCardDao.java b/app/src/main/java/com/dayu/recharge/dao/UserCardDao.java
index 5e14cd2..ae09ac6 100644
--- a/app/src/main/java/com/dayu/recharge/dao/UserCardDao.java
+++ b/app/src/main/java/com/dayu/recharge/dao/UserCardDao.java
@@ -33,4 +33,6 @@
@Query("select * from UserCardBean where date>=:beginTime and date<=:endTime")
List<UserCardBean> findByTime(long beginTime, long endTime);
+ @Query("select * from UserCardBean where userName like :data or userID like :data or phone like :data")
+ List<UserCardBean> findByData(String data);
}
diff --git a/app/src/main/java/com/dayu/recharge/dbBean/IdentityBean.java b/app/src/main/java/com/dayu/recharge/dbBean/IdentityBean.java
new file mode 100644
index 0000000..6bc1a80
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/dbBean/IdentityBean.java
@@ -0,0 +1,34 @@
+package com.dayu.recharge.dbBean;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-20
+ * Time: 10:35
+ * 澶囨敞锛氬崱鏍囪瘑
+ */
+@Entity
+public class IdentityBean {
+ @PrimaryKey(autoGenerate = true)
+ public long id;
+ private String identity = "";
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getIdentity() {
+ return identity;
+ }
+
+ public void setIdentity(String identity) {
+ this.identity = identity;
+ }
+}
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 b3c4c18..481b320 100644
--- a/app/src/main/java/com/dayu/recharge/net/SocketNet.java
+++ b/app/src/main/java/com/dayu/recharge/net/SocketNet.java
@@ -7,6 +7,7 @@
import com.dayu.recharge.dao.BaseDaoSingleton;
import com.dayu.recharge.dbBean.AdminDataBean;
+import com.dayu.recharge.dbBean.DeviceNumber;
import com.dayu.recharge.dbBean.IpBean;
import com.easysocket.EasySocket;
import com.easysocket.entity.OriginReadData;
@@ -96,8 +97,8 @@
@Override
public void onSocketConnSuccess(SocketAddress socketAddress) {
Log.i("SocketActionListener", "杩炴帴鎴愬姛");
- String initCode = WSHelper.getInstance(MyApplication.myApplication).get("initCode", "");
- if (TextUtils.isEmpty(initCode) && !MyApplication.myApplication.isDoInitMachine) {
+ DeviceNumber initCode = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
+ if (initCode==null && !MyApplication.myApplication.isDoInitMachine) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
diff --git a/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java b/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java
new file mode 100644
index 0000000..47f0605
--- /dev/null
+++ b/app/src/main/java/com/dayu/recharge/utils/DeviceNumberUtils.java
@@ -0,0 +1,36 @@
+package com.dayu.recharge.utils;
+
+import com.dayu.recharge.MyApplication;
+import com.dayu.recharge.dao.BaseDaoSingleton;
+import com.dayu.recharge.dbBean.DeviceNumber;
+
+/**
+ * Created by Android Studio.
+ * author: zuo
+ * Date: 2023-11-20
+ * Time: 16:33
+ * 澶囨敞锛� 鑾峰彇鏈嶅姟鍣ㄨ繑鍥炵殑璁惧鍙风殑宸ュ叿绫�
+ */
+public class DeviceNumberUtils {
+
+ public static String getDeviceNumber() {
+ DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
+ if (deviceNumber != null) {
+ return deviceNumber.getDeviceRegistrationNumber();
+ } else {
+ return "";
+ }
+ }
+
+
+ public static void setDeviceNumber(String deviceRegistrationNumber) {
+ DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().findFirst();
+ if (deviceNumber != null) {
+ deviceNumber.setDeviceRegistrationNumber(deviceRegistrationNumber);
+ } else {
+ deviceNumber = new DeviceNumber();
+ deviceNumber.setDeviceRegistrationNumber(deviceRegistrationNumber);
+ }
+ BaseDaoSingleton.getInstance(MyApplication.myApplication).deviceNumberDao().insert(deviceNumber);
+ }
+}
diff --git a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
index f21ced5..db16808 100644
--- a/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/EdtDialog.java
@@ -24,11 +24,19 @@
Intent intent;
Context mContext;
+ DialogBack mDialogBack;
public EdtDialog(Context context, Intent intent) {
super(context, R.style.ws_pay_showSelfDialog);
this.intent = intent;
mContext = context;
+ initView();
+ }
+
+ public EdtDialog(Context context, DialogBack dialogBack) {
+ super(context, R.style.ws_pay_showSelfDialog);
+ mContext = context;
+ mDialogBack=dialogBack;
initView();
}
@@ -42,24 +50,32 @@
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (TextUtils.isEmpty(editText.getText().toString())) {
- ToastUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
- } else {
- if(Integer.valueOf(editText.getText().toString())<=16777215){
+ if (intent!=null){
+ if (TextUtils.isEmpty(editText.getText().toString())) {
+ ToastUtil.show(mContext, "璇疯緭鍏ュ簭鍒楀彿");
+ } else {
+ if (Integer.valueOf(editText.getText().toString()) <= 16777215) {
// EquipmentNumber equipmentNumber = (EquipmentNumber) intent.getSerializableExtra("equipmentNumber");
// equipmentNumber.setNumber(Integer.valueOf(editText.getText().toString()));
- mContext.startActivity(intent);
- EdtDialog.this.dismiss();
- }else {
- ToastUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
- }
+ mContext.startActivity(intent);
+ EdtDialog.this.dismiss();
+ } else {
+ ToastUtil.show(mContext, "杈撳叆鐨勬暟瀛椾笉鑳借秴杩�16777215");
+ }
+ }
+ }
+ if (mDialogBack!=null){
+ mDialogBack.onOk(editText.getText().toString());
}
}
});
cannel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ if (mDialogBack!=null){
+ mDialogBack.onCancel();
+ }
EdtDialog.this.dismiss();
}
});
@@ -80,4 +96,9 @@
getWindow().setAttributes(layoutParams);
}
+ public interface DialogBack {
+ void onOk(String data);
+
+ void onCancel();
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
index 6a6da35..ae91165 100644
--- a/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
+++ b/app/src/main/java/com/dayu/recharge/view/PassWordDialog.java
@@ -42,7 +42,7 @@
@Override
public void onClick(View v) {
try {
- if (WSMD5.getMD5Str(editText.getText().toString()).equals("8af357996269a1b52b182a839150097d")) {
+ if (WSMD5.getMD5Str(editText.getText().toString()).equals("c4ca4238a0b923820dcc509a6f75849b")) {
mContext.startActivity(intent);
PassWordDialog.this.dismiss();
} else {
diff --git a/app/src/main/res/layout/activity_admin_setup.xml b/app/src/main/res/layout/activity_admin_setup.xml
index 42e6538..4bc09db 100644
--- a/app/src/main/res/layout/activity_admin_setup.xml
+++ b/app/src/main/res/layout/activity_admin_setup.xml
@@ -35,7 +35,7 @@
android:text="璁惧搴忓垪鍙凤細"
android:textSize="@dimen/new_card_size" />
- <EditText
+ <TextView
android:id="@+id/admin_serial"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/activity_domain.xml b/app/src/main/res/layout/activity_domain.xml
index a00ebd5..4bead98 100644
--- a/app/src/main/res/layout/activity_domain.xml
+++ b/app/src/main/res/layout/activity_domain.xml
@@ -55,6 +55,7 @@
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="20dp"
+ android:maxLength="38"
android:hint="璇疯緭鍏ユ柊鐨勫煙鍚�"
android:inputType="textUri" />
diff --git a/app/src/main/res/layout/activity_identyfying.xml b/app/src/main/res/layout/activity_identyfying.xml
new file mode 100644
index 0000000..3828a17
--- /dev/null
+++ b/app/src/main/res/layout/activity_identyfying.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <com.dayu.recharge.view.TitleBar
+ android:id="@+id/titleBar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dimen_title_height"
+ android:background="@drawable/title_bar_bg"
+ app:centerText="姘磋〃鑴夊啿璁剧疆"
+ app:leftImage="@mipmap/icon_back" />
+
+ <LinearLayout
+ android:id="@+id/electric_ll"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/titleBar"
+ android:layout_margin="20dp"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="褰撳墠鍗℃爣璇嗭細"
+ android:textSize="@dimen/text_size" />
+
+ <TextView
+ android:id="@+id/electric_oldNumber"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:textSize="@dimen/text_size" />
+
+ </LinearLayout>
+
+
+ <EditText
+ android:id="@+id/electric_newNum"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/electric_ll"
+ android:layout_alignParentStart="true"
+ android:layout_margin="20dp"
+ android:inputType="number"
+ android:hint="璇疯緭鍏ユ柊鐨勫崱鏍囪瘑" />
+
+ <TextView
+ android:id="@+id/electric_ok"
+ android:layout_width="match_parent"
+ android:layout_height="50dp"
+ android:layout_alignParentBottom="true"
+ android:background="@color/title_bg"
+ android:gravity="center"
+ android:text="纭� 瀹�"
+ android:textSize="@dimen/text_size" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 57aadfb..89bcd76 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -13,7 +13,7 @@
android:layout_marginRight="20dp"
android:layout_weight="1.5"
android:gravity="center"
- android:text="鍐滀笟姘翠环缁煎悎鏀归潻鏅鸿兘鍏呭�肩鐞嗙郴缁�"
+ android:text="@string/login_title"
android:textSize="30sp"
android:textStyle="bold" />
diff --git a/app/src/main/res/layout/activity_my.xml b/app/src/main/res/layout/activity_my.xml
index cb444b9..5763811 100644
--- a/app/src/main/res/layout/activity_my.xml
+++ b/app/src/main/res/layout/activity_my.xml
@@ -68,13 +68,12 @@
</LinearLayout>
-
<RelativeLayout
android:layout_width="match_parent"
- android:visibility="visible"
android:layout_height="wrap_content"
- android:layout_marginTop="15dp">
+ android:layout_marginTop="15dp"
+ android:visibility="visible">
<TextView
android:id="@+id/my_newCardList_ll"
@@ -118,29 +117,36 @@
</RelativeLayout>
+ <TextView
+ android:id="@+id/sys_ip"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ android:text="IP璁剧疆"
+ android:textSize="@dimen/text_size" />
- <TextView
- android:id="@+id/sys_ip"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="15dp"
- android:text="IP璁剧疆"
- android:textSize="@dimen/text_size" />
-
+ <TextView
+ android:id="@+id/card_replacement"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ android:text="鐢ㄦ埛琛ュ崱"
+ android:textSize="@dimen/text_size" />
<TextView
- android:layout_marginTop="15dp"
android:id="@+id/my_psw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
android:text="瀵嗙爜璁剧疆"
android:textSize="@dimen/text_size" />
+
<TextView
- android:layout_marginTop="15dp"
android:id="@+id/my_testConnect"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
android:text="鏈繛鎺ユ暟鎹腑蹇�"
android:textSize="@dimen/text_size" />
</LinearLayout>
diff --git a/app/src/main/res/layout/activity_new_card.xml b/app/src/main/res/layout/activity_new_card.xml
index de64059..40d0c61 100644
--- a/app/src/main/res/layout/activity_new_card.xml
+++ b/app/src/main/res/layout/activity_new_card.xml
@@ -89,7 +89,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789Xx"
- android:inputType="numberSigned"
+ android:inputType="text"
android:maxLength="18"
android:textSize="@dimen/new_card_size" />
diff --git a/app/src/main/res/layout/activity_parameter.xml b/app/src/main/res/layout/activity_parameter.xml
index d19960c..d733b8c 100644
--- a/app/src/main/res/layout/activity_parameter.xml
+++ b/app/src/main/res/layout/activity_parameter.xml
@@ -41,8 +41,17 @@
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:padding="5dp"
- android:text="鐢甸噺鍗曚环"
+ android:text="鐢甸噺鍗曚环璁剧疆"
android:textSize="@dimen/text_size" />
+ <TextView
+ android:id="@+id/parameter_cardIdentifying"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="20dp"
+ android:layout_marginTop="20dp"
+ android:padding="5dp"
+ android:text="鍗℃爣璇嗙爜璁剧疆"
+ android:textSize="@dimen/text_size" />
</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_replacement.xml b/app/src/main/res/layout/activity_replacement.xml
new file mode 100644
index 0000000..acbfa9c
--- /dev/null
+++ b/app/src/main/res/layout/activity_replacement.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <com.dayu.recharge.view.TitleBar
+ android:id="@+id/titleBar"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dimen_title_height"
+ android:background="@drawable/title_bar_bg"
+ app:centerText="鐢ㄦ埛鍒楄〃"
+ app:leftImage="@mipmap/icon_back"
+ app:rightText="绛涢��" />
+
+ <ListView
+ android:id="@+id/newCard_listView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:cacheColorHint="#ffffff"
+ android:divider="@null"
+ android:dividerHeight="0dp" />
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_write_text.xml b/app/src/main/res/layout/activity_write_text.xml
index 9f14327..691da23 100644
--- a/app/src/main/res/layout/activity_write_text.xml
+++ b/app/src/main/res/layout/activity_write_text.xml
@@ -14,11 +14,22 @@
app:centerText="鍐欏崱"
app:leftImage="@mipmap/icon_back" />
+
+ <TextView
+ android:id="@+id/cardData"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/titleBar"
+ android:gravity="center"
+ android:layout_marginTop="20dp"
+ android:textSize="@dimen/text_size" />
+
+
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_below="@id/titleBar"
+ android:layout_below="@id/cardData"
android:layout_marginTop="20dp"
android:gravity="center"
android:text="璇峰皢鍗¤创鍦ㄨ澶囦笂杩涜鍐欏崱"
diff --git a/app/src/main/res/layout/edt_dialog.xml b/app/src/main/res/layout/edt_dialog.xml
index b4758da..4676039 100644
--- a/app/src/main/res/layout/edt_dialog.xml
+++ b/app/src/main/res/layout/edt_dialog.xml
@@ -20,9 +20,9 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
- android:hint="璇疯緭鍏ュ簭鍒楀彿"
- android:maxLength="8"
+ android:hint="璇疯緭鍏ヤ俊鎭�"
android:inputType="number"
+ android:maxLength="8"
android:textColor="#000000" />
diff --git a/app/src/main/res/mipmap-xhdpi/icon_search.png b/app/src/main/res/mipmap-xhdpi/icon_search.png
new file mode 100644
index 0000000..82f755d
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_search.png
Binary files differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 936b8c3..ddcbbe9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -25,5 +25,6 @@
<string name="toast_7">AIDL 鏆傛椂鍙墦鍗板崟涓簩缁寸爜</string>
<string name="toast_8">涓や釜浜岀淮鐮佸昂瀵告渶澶т负7</string>
<string name="toast_9">鏉$爜绫诲瀷鎴栧唴瀹逛笉姝g‘!</string>
+ <string name="login_title">澶х鑺傛按\n鏅鸿兘鍏呭�肩鐞嗙郴缁�</string>
</resources>
--
Gitblit v1.8.0