本地注册管理员密码--app连接时获取管理员密码替换成基本信息的管理员密码
This commit is contained in:
parent
47e4b86086
commit
f05e8fc813
@ -1,9 +1,11 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/apm/apm_helper.dart';
|
import 'package:star_lock/apm/apm_helper.dart';
|
||||||
import 'package:star_lock/appRouters.dart';
|
import 'package:star_lock/appRouters.dart';
|
||||||
|
import 'package:star_lock/blue/io_protocol/io_readAdminPassword.dart';
|
||||||
|
|
||||||
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_logic.dart';
|
import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_logic.dart';
|
||||||
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSetInfo_entity.dart';
|
||||||
@ -18,7 +20,6 @@ import '../../../blue/io_tool/manager_event_bus.dart';
|
|||||||
import '../../../blue/sender_manage.dart';
|
import '../../../blue/sender_manage.dart';
|
||||||
import '../../../network/api_repository.dart';
|
import '../../../network/api_repository.dart';
|
||||||
import '../../../tools/baseGetXController.dart';
|
import '../../../tools/baseGetXController.dart';
|
||||||
import '../../../tools/commonDataManage.dart';
|
|
||||||
import '../../../tools/dateTool.dart';
|
import '../../../tools/dateTool.dart';
|
||||||
import '../../../tools/eventBusEventManage.dart';
|
import '../../../tools/eventBusEventManage.dart';
|
||||||
import '../../../tools/storage.dart';
|
import '../../../tools/storage.dart';
|
||||||
@ -43,9 +44,108 @@ class SaveLockLogic extends BaseGetXController {
|
|||||||
// if (reply is ChangeAdministratorPasswordReply) {
|
// if (reply is ChangeAdministratorPasswordReply) {
|
||||||
// _replyChangeAdministratorPassword(reply);
|
// _replyChangeAdministratorPassword(reply);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// 新增----m 获取锁管理员密码
|
||||||
|
if (reply is SenderReadAdminPasswordReply && (state.ifCurrentScreen.value == true)) {
|
||||||
|
_replySenderReadAdminPasswordReply(reply);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 新增----m 获取锁管理员密码
|
||||||
|
Future<void> _replySenderReadAdminPasswordReply(Reply reply) async {
|
||||||
|
AppLog.log('响应获取管理员密码: ${reply.data}');
|
||||||
|
var token = reply.data.sublist(5, 9);
|
||||||
|
var saveStrList = changeIntListToStringList(token);
|
||||||
|
Storage.setStringList(saveBlueToken, saveStrList);
|
||||||
|
|
||||||
|
int status = reply.data[2];
|
||||||
|
switch (status) {
|
||||||
|
case 0x00:
|
||||||
|
//成功
|
||||||
|
dismissEasyLoading();
|
||||||
|
cancelBlueConnetctToastTimer();
|
||||||
|
|
||||||
|
if(reply.data[5] > 0){
|
||||||
|
reply.data.removeRange(0, 6);
|
||||||
|
// 把得到的数据按8位分割成数组 然后塞进一个新的数组里面
|
||||||
|
var getList = splitList(reply.data, 13);
|
||||||
|
for(int i = 0; i<getList.length; i++){
|
||||||
|
var indexList = getList[i];
|
||||||
|
var pwd = indexList.sublist(1, 11);
|
||||||
|
var pwdStr = utf8String(pwd);
|
||||||
|
|
||||||
|
state.adminPassword = pwdStr;
|
||||||
|
AppLog.log('管理员密码:${state.adminPassword}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(state.adminPassword == ''){
|
||||||
|
final Random rng = Random();
|
||||||
|
final int number = rng.nextInt(900000) + 100000;
|
||||||
|
state.adminPassword = number.toString();
|
||||||
|
} else {
|
||||||
|
state.role = 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x06:
|
||||||
|
//无权限
|
||||||
|
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
|
var token = await Storage.getStringList(saveBlueToken);
|
||||||
|
List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
|
List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
|
IoSenderManage.senderReadAdminPasswordCommand(
|
||||||
|
keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(),
|
||||||
|
userID: await Storage.getUid(),
|
||||||
|
role:0xff,
|
||||||
|
pwdNum:1,
|
||||||
|
pwdNo: 0,
|
||||||
|
token: getTokenList,
|
||||||
|
needAuthor: 1,
|
||||||
|
publicKey: getPublicKeyList,
|
||||||
|
privateKey: getPrivateKeyList
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//失败
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void senderReadAdminPassword() async {
|
||||||
|
BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async {
|
||||||
|
AppLog.log('开始读取管理员密码,蓝牙状态是否链接:${connectionState == BluetoothConnectionState.connected}');
|
||||||
|
if (connectionState == BluetoothConnectionState.connected) {
|
||||||
|
final List<String>? privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
final List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
|
final List<String>? token = await Storage.getStringList(saveBlueToken);
|
||||||
|
final List<int> getTokenList = changeStringListToIntList(token!);
|
||||||
|
|
||||||
|
final List<String>? publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
|
final List<int> getPublicKeyList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
|
AppLog.log('发送获取管理员密码指令:${BlueManage().connectDeviceName}');
|
||||||
|
IoSenderManage.senderReadAdminPasswordCommand(
|
||||||
|
keyID: '1',
|
||||||
|
userID: await Storage.getUid(),
|
||||||
|
role:1,
|
||||||
|
pwdNum:1,
|
||||||
|
pwdNo: 0,
|
||||||
|
token: getTokenList,
|
||||||
|
needAuthor: 1,
|
||||||
|
publicKey: getPublicKeyList,
|
||||||
|
privateKey: getPrivateKeyList
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 添加用户
|
// 添加用户
|
||||||
Future<void> _replyAddUserKey(Reply reply) async {
|
Future<void> _replyAddUserKey(Reply reply) async {
|
||||||
final List<int> token = reply.data.sublist(42, 46);
|
final List<int> token = reply.data.sublist(42, 46);
|
||||||
@ -240,7 +340,7 @@ class SaveLockLogic extends BaseGetXController {
|
|||||||
startMin: 0,
|
startMin: 0,
|
||||||
endHour: 0,
|
endHour: 0,
|
||||||
endMin: 0,
|
endMin: 0,
|
||||||
role: 255,
|
role: state.role,
|
||||||
password: state.adminPassword,
|
password: state.adminPassword,
|
||||||
needAuthor: 1,
|
needAuthor: 1,
|
||||||
publicKey: publicKeyDataList,
|
publicKey: publicKeyDataList,
|
||||||
@ -521,6 +621,7 @@ class SaveLockLogic extends BaseGetXController {
|
|||||||
super.onReady();
|
super.onReady();
|
||||||
|
|
||||||
_initReplySubscription();
|
_initReplySubscription();
|
||||||
|
senderReadAdminPassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -12,7 +12,7 @@ class SaveLockState {
|
|||||||
SaveLockState() {
|
SaveLockState() {
|
||||||
aliName.value = BlueManage().connectDeviceName;
|
aliName.value = BlueManage().connectDeviceName;
|
||||||
aliNameController.text = aliName.value;
|
aliNameController.text = aliName.value;
|
||||||
adminPassword = getAdminPassword();
|
// adminPassword = getAdminPassword();
|
||||||
|
|
||||||
final Map map = Get.arguments;
|
final Map map = Get.arguments;
|
||||||
if (map['pwdTimestamp']!= null) {
|
if (map['pwdTimestamp']!= null) {
|
||||||
@ -60,14 +60,16 @@ class SaveLockState {
|
|||||||
String adminPassword = '';
|
String adminPassword = '';
|
||||||
int lockId = 0;
|
int lockId = 0;
|
||||||
|
|
||||||
|
int role = 255;
|
||||||
|
|
||||||
void onClose() {
|
void onClose() {
|
||||||
aliNameController.dispose();
|
aliNameController.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
String getAdminPassword(){
|
// String getAdminPassword(){
|
||||||
final Random rng = Random();
|
// final Random rng = Random();
|
||||||
final int number = rng.nextInt(900000) + 100000; // 生成 100000 到 999999 之间的随机整数
|
// final int number = rng.nextInt(900000) + 100000; // 生成 100000 到 999999 之间的随机整数
|
||||||
return number.toString();
|
// return number.toString();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user