Merge branch 'master_hyx'
This commit is contained in:
commit
996c85ac0a
@ -477,7 +477,7 @@ class BlueManage {
|
|||||||
// 当包有头时
|
// 当包有头时
|
||||||
// 判断是否需要分包
|
// 判断是否需要分包
|
||||||
dataLen = data[8] * 256 + data[9]; // 高16位用来指示后面数据块内容的长度
|
dataLen = data[8] * 256 + data[9]; // 高16位用来指示后面数据块内容的长度
|
||||||
AppLog.log("dataLen1111:$dataLen getDataLength:${data.length} data:$data");
|
// AppLog.log("dataLen1111:$dataLen getDataLength:${data.length} data:$data");
|
||||||
if (dataLen! + 14 > data.length) {
|
if (dataLen! + 14 > data.length) {
|
||||||
// 当前包的长度小于实际的包时 分包添加 不解析
|
// 当前包的长度小于实际的包时 分包添加 不解析
|
||||||
allData.addAll(data);
|
allData.addAll(data);
|
||||||
@ -493,8 +493,8 @@ class BlueManage {
|
|||||||
// 当包没有头时 是分包的包 直接添加
|
// 当包没有头时 是分包的包 直接添加
|
||||||
allData.addAll(data);
|
allData.addAll(data);
|
||||||
// var len = allData[8] * 256 + allData[9];
|
// var len = allData[8] * 256 + allData[9];
|
||||||
AppLog.log(
|
// AppLog.log(
|
||||||
"dataLen3333:$dataLen allData.length:${allData.length} allData:$allData");
|
// "dataLen3333:$dataLen allData.length:${allData.length} allData:$allData");
|
||||||
if (((dataLen ?? 0) + 14) <= allData.length) {
|
if (((dataLen ?? 0) + 14) <= allData.length) {
|
||||||
// 当长度小于等于当前包的数据时 直接解析数据
|
// 当长度小于等于当前包的数据时 直接解析数据
|
||||||
CommandReciverManager.appDataReceive(allData);
|
CommandReciverManager.appDataReceive(allData);
|
||||||
|
|||||||
@ -12,121 +12,124 @@ abstract class Reply{
|
|||||||
//command key flag
|
//command key flag
|
||||||
int status = 0;
|
int status = 0;
|
||||||
List<int> data = [];
|
List<int> data = [];
|
||||||
|
static String logTag= '锁 -> App,指令订阅类型 :';
|
||||||
Reply.parseData(this.commandType, List<int> dataDetail);
|
Reply.parseData(this.commandType, List<int> dataDetail);
|
||||||
|
|
||||||
void errorWithStstus(int status){
|
void errorWithStstus(int status){
|
||||||
|
|
||||||
switch(status){
|
switch(status){
|
||||||
case 0x00:
|
case 0x00:
|
||||||
// 成功
|
// 成功
|
||||||
|
AppLog.log("$logTag ${commandType?.typeName} 0x00 成功");
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
// 包格式错误
|
// 包格式错误
|
||||||
AppLog.log("${commandType!.typeName} 0x01 包格式错误");
|
AppLog.log("$logTag ${commandType!.typeName} 0x01 包格式错误");
|
||||||
showErrorMessage("包格式错误");
|
showErrorMessage("包格式错误");
|
||||||
break;
|
break;
|
||||||
case 0x02:
|
case 0x02:
|
||||||
// 密码错误
|
// 密码错误
|
||||||
AppLog.log("${commandType!.typeName} 0x02 密码错误");
|
AppLog.log("$logTag ${commandType!.typeName} 0x02 密码错误");
|
||||||
showErrorMessage("密码错误");
|
showErrorMessage("密码错误");
|
||||||
break;
|
break;
|
||||||
case 0x03:
|
case 0x03:
|
||||||
// 网络中断
|
// 网络中断
|
||||||
AppLog.log("${commandType!.typeName} 0x03 网络中断");
|
AppLog.log("$logTag ${commandType!.typeName} 0x03 网络中断");
|
||||||
showErrorMessage("网络中断");
|
showErrorMessage("网络中断");
|
||||||
break;
|
break;
|
||||||
case 0x04:
|
case 0x04:
|
||||||
// 用户未登记
|
// 用户未登记
|
||||||
AppLog.log("${commandType!.typeName} 0x04 用户未登记");
|
AppLog.log("$logTag ${commandType!.typeName} 0x04 用户未登记");
|
||||||
showErrorMessage("用户未登记");
|
showErrorMessage("用户未登记");
|
||||||
break;
|
break;
|
||||||
case 0x05:
|
case 0x05:
|
||||||
// 参数错误
|
// 参数错误
|
||||||
AppLog.log("${commandType!.typeName} 0x05 参数错误");
|
AppLog.log("$logTag ${commandType!.typeName} 0x05 参数错误");
|
||||||
showErrorMessage("参数错误");
|
showErrorMessage("参数错误");
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
// 需要鉴权
|
// 需要鉴权
|
||||||
AppLog.log("${commandType!.typeName} 0x06 需要鉴权");
|
AppLog.log("$logTag ${commandType!.typeName} 0x06 需要鉴权");
|
||||||
// showErrorMessage("需要鉴权");
|
// showErrorMessage("需要鉴权");
|
||||||
break;
|
break;
|
||||||
case 0x07:
|
case 0x07:
|
||||||
// 无权限
|
// 无权限
|
||||||
AppLog.log("${commandType!.typeName} 0x07 无权限");
|
AppLog.log("$logTag ${commandType!.typeName} 0x07 无权限");
|
||||||
// showErrorMessage("无权限");
|
// showErrorMessage("无权限");
|
||||||
break;
|
break;
|
||||||
case 0x08:
|
case 0x08:
|
||||||
// 应答超时
|
// 应答超时
|
||||||
AppLog.log("${commandType!.typeName} 0x08 应答超时");
|
AppLog.log("$logTag ${commandType!.typeName} 0x08 应答超时");
|
||||||
showErrorMessage("应答超时");
|
showErrorMessage("应答超时");
|
||||||
break;
|
break;
|
||||||
case 0x09:
|
case 0x09:
|
||||||
// 权限校验错误
|
// 权限校验错误
|
||||||
AppLog.log("${commandType!.typeName} 0x09 权限校验错误");
|
AppLog.log("$logTag ${commandType!.typeName} 0x09 权限校验错误");
|
||||||
showErrorMessage("权限校验错误");
|
showErrorMessage("权限校验错误");
|
||||||
break;
|
break;
|
||||||
case 0x0a:
|
case 0x0a:
|
||||||
// 钥匙不存在
|
// 钥匙不存在
|
||||||
showErrorMessage("钥匙不存在");
|
showErrorMessage("钥匙不存在");
|
||||||
AppLog.log("${commandType!.typeName} 0x0a 钥匙不存在");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0a 钥匙不存在");
|
||||||
break;
|
break;
|
||||||
case 0x0b:
|
case 0x0b:
|
||||||
// 钥匙过期
|
// 钥匙过期
|
||||||
showErrorMessage("钥匙过期");
|
showErrorMessage("钥匙过期");
|
||||||
AppLog.log("${commandType!.typeName} 0x0b 钥匙过期");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0b 钥匙过期");
|
||||||
break;
|
break;
|
||||||
case 0x0c:
|
case 0x0c:
|
||||||
// 钥匙数量已到上限
|
// 钥匙数量已到上限
|
||||||
showErrorMessage("钥匙数量已到上限");
|
showErrorMessage("钥匙数量已到上限");
|
||||||
AppLog.log("${commandType!.typeName} 0x0c 钥匙数量已到上限");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0c 钥匙数量已到上限");
|
||||||
break;
|
break;
|
||||||
case 0x0d:
|
case 0x0d:
|
||||||
// 钥匙无效
|
// 钥匙无效
|
||||||
showErrorMessage("钥匙无效");
|
showErrorMessage("钥匙无效");
|
||||||
AppLog.log("${commandType!.typeName} 0x0d 钥匙无效");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0d 钥匙无效");
|
||||||
break;
|
break;
|
||||||
case 0x0e:
|
case 0x0e:
|
||||||
// 钥匙已存在
|
// 钥匙已存在
|
||||||
showErrorMessage("钥匙已存在");
|
showErrorMessage("钥匙已存在");
|
||||||
AppLog.log("${commandType!.typeName} 0x0e 钥匙无效");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0e 钥匙无效");
|
||||||
break;
|
break;
|
||||||
case 0x0f:
|
case 0x0f:
|
||||||
// 用户已存在
|
// 用户已存在
|
||||||
AppLog.log("${commandType!.typeName} 0x0f 用户已存在");
|
AppLog.log("$logTag ${commandType!.typeName} 0x0f 用户已存在");
|
||||||
showErrorMessage("用户已存在");
|
showErrorMessage("用户已存在");
|
||||||
break;
|
break;
|
||||||
case 0x10:
|
case 0x10:
|
||||||
// 密码失效
|
// 密码失效
|
||||||
AppLog.log("${commandType!.typeName} 0x11 密码失效");
|
AppLog.log("$logTag ${commandType!.typeName} 0x11 密码失效");
|
||||||
showErrorMessage("密码失效");
|
showErrorMessage("密码失效");
|
||||||
break;
|
break;
|
||||||
case 0x11:
|
case 0x11:
|
||||||
// 无效指令
|
// 无效指令
|
||||||
AppLog.log("${commandType!.typeName} 0x11 无效指令");
|
AppLog.log("$logTag ${commandType!.typeName} 0x11 无效指令");
|
||||||
showErrorMessage("无效指令");
|
showErrorMessage("无效指令");
|
||||||
break;
|
break;
|
||||||
case 0x12:
|
case 0x12:
|
||||||
// 门锁时间异常
|
// 门锁时间异常
|
||||||
AppLog.log("${commandType!.typeName} 0x12 门锁时间异常");
|
AppLog.log("$logTag ${commandType!.typeName} 0x12 门锁时间异常");
|
||||||
showErrorMessage("门锁时间异常");
|
showErrorMessage("门锁时间异常");
|
||||||
break;
|
break;
|
||||||
case 0x15:
|
case 0x15:
|
||||||
// APP(手机)未联网
|
// APP(手机)未联网
|
||||||
AppLog.log("${commandType!.typeName} 0x15 APP(手机)未联网");
|
AppLog.log("$logTag ${commandType!.typeName} 0x15 APP(手机)未联网");
|
||||||
showErrorMessage("APP(手机)未联网");
|
showErrorMessage("APP(手机)未联网");
|
||||||
break;
|
break;
|
||||||
case 0x16:
|
case 0x16:
|
||||||
// 正在开锁中...
|
// 正在开锁中...
|
||||||
AppLog.log("${commandType!.typeName}正在开锁中...");
|
AppLog.log("$logTag ${commandType!.typeName}正在开锁中...");
|
||||||
// showErrorMessage("正在开锁中...");
|
// showErrorMessage("正在开锁中...");
|
||||||
break;
|
break;
|
||||||
case 0xff:
|
case 0xff:
|
||||||
// 异常,未知错误
|
// 异常,未知错误
|
||||||
AppLog.log("${commandType!.typeName} 0xff");
|
AppLog.log("$logTag ${commandType!.typeName} 0xff");
|
||||||
showErrorMessage("异常,未知错误");
|
showErrorMessage("异常,未知错误");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
AppLog.log("蓝牙返回其他错误问题");
|
AppLog.log("$logTag ${commandType!.typeName} 蓝牙返回其他错误问题");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,9 +110,6 @@ class CommandReciverManager {
|
|||||||
}
|
}
|
||||||
parseData(oriDataList).then((Reply? value) async {
|
parseData(oriDataList).then((Reply? value) async {
|
||||||
EasyLoading.dismiss();
|
EasyLoading.dismiss();
|
||||||
if (value != null) {
|
|
||||||
AppLog.log("锁 -> App,指令订阅类型 :${value.commandType?.typeName} \n $value");
|
|
||||||
}
|
|
||||||
await EventBusManager().eventBusFir(value);
|
await EventBusManager().eventBusFir(value);
|
||||||
}).catchError((error) {
|
}).catchError((error) {
|
||||||
AppLog.log("APP解析数据时发生错误: $error");
|
AppLog.log("APP解析数据时发生错误: $error");
|
||||||
|
|||||||
@ -44,6 +44,7 @@ class SenderBeforeDataManage {
|
|||||||
// 监听设备返回的数据
|
// 监听设备返回的数据
|
||||||
StreamSubscription<Reply>? _replySubscription;
|
StreamSubscription<Reply>? _replySubscription;
|
||||||
|
|
||||||
|
// 启动订阅
|
||||||
void _initReplySubscription() {
|
void _initReplySubscription() {
|
||||||
_replySubscription ??=
|
_replySubscription ??=
|
||||||
EventBusManager().eventBus!.on<Reply>().listen((reply) async {
|
EventBusManager().eventBus!.on<Reply>().listen((reply) async {
|
||||||
@ -52,128 +53,36 @@ class SenderBeforeDataManage {
|
|||||||
_replyAddUserKey(reply);
|
_replyAddUserKey(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(reply is CleanUpUsersReply){
|
if (reply is CleanUpUsersReply) {
|
||||||
_cleanUpUsersReply(reply);
|
_cleanUpUsersReply(reply);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加用户
|
// 解析添加用户订阅
|
||||||
Future<void> _replyAddUserKey(Reply reply) async {
|
Future<void> _replyAddUserKey(Reply reply) async {
|
||||||
int status = reply.data[46];
|
int status = reply.data[46];
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
CommonDataManage().currentLockUserNo = listChangInt(reply.data.sublist(47, 49));
|
CommonDataManage().currentLockUserNo =
|
||||||
CommonDataManage().currentKeyInfo.lockUserNo = CommonDataManage().currentLockUserNo;
|
listChangInt(reply.data.sublist(47, 49));
|
||||||
|
CommonDataManage().currentKeyInfo.lockUserNo =
|
||||||
|
CommonDataManage().currentLockUserNo;
|
||||||
_updateLockUserNo();
|
_updateLockUserNo();
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
//无权限
|
//无权限
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
|
||||||
|
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
|
||||||
|
|
||||||
var token = reply.data.sublist(42, 46);
|
var token = reply.data.sublist(42, 46);
|
||||||
List<String> strTokenList = changeIntListToStringList(token);
|
List<String> strTokenList = changeIntListToStringList(token);
|
||||||
Storage.setStringList(saveBlueToken, strTokenList);
|
Storage.setStringList(saveBlueToken, strTokenList);
|
||||||
|
var addUserData = await getAddUserKeyData(tokenList: token);
|
||||||
// IoSenderManage.senderAddUser(
|
eventBus.fire(LockAddUserSucceedEvent(addUserData, 1));
|
||||||
// lockID: BlueManage().connectDeviceName,
|
|
||||||
// authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
|
||||||
// keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
|
||||||
// userID: await Storage.getUid(),
|
|
||||||
// openMode: 1,
|
|
||||||
// keyType: 0,
|
|
||||||
// startDate: CommonDataManage().currentKeyInfo.startDate!~/10000,
|
|
||||||
// expireDate: CommonDataManage().currentKeyInfo.endDate!~/10000,
|
|
||||||
// role: CommonDataManage().currentKeyInfo.keyRight == 1 ? 1 : 0,
|
|
||||||
// password: "123456",
|
|
||||||
// needAuthor: 1,
|
|
||||||
// publicKey: publicKeyDataList,
|
|
||||||
// privateKey: getPrivateKeyList,
|
|
||||||
// token: token);
|
|
||||||
LockListInfoItemEntity currentKeyInfo = CommonDataManage().currentKeyInfo;
|
|
||||||
AppLog.log(
|
|
||||||
"startDate111:${currentKeyInfo.startDate} endDate:${currentKeyInfo.endDate}");
|
|
||||||
DateTime startTime = DateTime.fromMillisecondsSinceEpoch(
|
|
||||||
currentKeyInfo.startDate! ~/ 1000);
|
|
||||||
DateTime endTime = DateTime.fromMillisecondsSinceEpoch(
|
|
||||||
currentKeyInfo.endDate! ~/ 1000);
|
|
||||||
bool isRound = currentKeyInfo.keyType == 2;
|
|
||||||
var addUserData = AddUserCommand(
|
|
||||||
lockID: BlueManage().connectDeviceName,
|
|
||||||
authUserID: currentKeyInfo.senderUserId!.toString(),
|
|
||||||
keyID: currentKeyInfo.keyId.toString(),
|
|
||||||
userID: await Storage.getUid(),
|
|
||||||
openMode: 1,
|
|
||||||
keyType: currentKeyInfo.keyType,
|
|
||||||
startDate: currentKeyInfo.startDate! ~/ 1000,
|
|
||||||
expireDate: currentKeyInfo.endDate! ~/ 1000,
|
|
||||||
useCountLimit: 0xFFFF,
|
|
||||||
// useCountLimit: 1,
|
|
||||||
isRound: isRound ? 1 : 0,
|
|
||||||
weekRound: isRound
|
|
||||||
? DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
|
||||||
currentKeyInfo.weekDays!)
|
|
||||||
: 0,
|
|
||||||
startHour: isRound ? startTime.hour : 0,
|
|
||||||
startMin: isRound ? startTime.minute : 0,
|
|
||||||
endHour: isRound ? endTime.hour : 0,
|
|
||||||
endMin: isRound ? endTime.minute : 0,
|
|
||||||
role: currentKeyInfo.keyRight == 1 ? 1 : 0,
|
|
||||||
password: "123456",
|
|
||||||
needAuthor: 1,
|
|
||||||
publicKey: publicKeyDataList,
|
|
||||||
privateKey: getPrivateKeyList,
|
|
||||||
token: token);
|
|
||||||
eventBus.fire(LockAddUserSucceedEvent(addUserData.packageData(), 1));
|
|
||||||
break;
|
break;
|
||||||
case 0x0c:
|
case 0x0c:
|
||||||
//锁设备用户超过 32个,需要同步锁用户列表刷新
|
//锁设备用户超过 32个,需要同步锁用户列表刷新
|
||||||
var entity = await ApiRepository.to.getLockUserNoList(
|
var addUserData = await getCleanUpUsers();
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId!);
|
CommandSenderManager().sendNormalData(addUserData);
|
||||||
if (!entity.errorCode!.codeIsSuccessful &&
|
|
||||||
(entity.data?.userNos ?? []).isNotEmpty) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
|
||||||
|
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
|
||||||
|
|
||||||
var tokenKey = await Storage.getStringList(saveBlueToken);
|
|
||||||
List<int> tokenList = changeStringListToIntList(tokenKey!);
|
|
||||||
AppLog.log('---> ${entity.data?.userNos}');
|
|
||||||
|
|
||||||
var cleanUpUsersData = CleanUpUsersCommand(
|
|
||||||
lockID: BlueManage().connectDeviceName,
|
|
||||||
authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
|
||||||
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
|
||||||
userID: await Storage.getUid(),
|
|
||||||
needAuthor: 1,
|
|
||||||
publicKey: publicKeyDataList,
|
|
||||||
privateKey: getPrivateKeyList,
|
|
||||||
userNoList: entity.data!.userNos!,
|
|
||||||
token: tokenList,
|
|
||||||
).packageData();
|
|
||||||
CommandSenderManager().sendNormalData(cleanUpUsersData);
|
|
||||||
|
|
||||||
// IoSenderManage.senderCleanUpUsersCommand(
|
|
||||||
// lockID: BlueManage().connectDeviceName,
|
|
||||||
// authUserID:
|
|
||||||
// CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
|
||||||
// keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
|
||||||
// userID: await Storage.getUid(),
|
|
||||||
// userNoList: entity.data!.userNos!,
|
|
||||||
// needAuthor: 1,
|
|
||||||
// publicKey: publicKeyDataList,
|
|
||||||
// privateKey: getPrivateKeyList,
|
|
||||||
// token: tokenList);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
@ -181,47 +90,81 @@ class SenderBeforeDataManage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清理用户
|
// 解析清理用户订阅
|
||||||
Future<void> _cleanUpUsersReply(Reply reply) async {
|
Future<void> _cleanUpUsersReply(Reply reply) async {
|
||||||
int status = reply.data[6];
|
int status = reply.data[6];
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
|
//添加用户
|
||||||
|
var addUserData = await getAddUserKeyData();
|
||||||
|
CommandSenderManager().sendNormalData(addUserData);
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
//无权限
|
//无权限
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
var token = reply.data.sublist(2, 6);
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
|
||||||
|
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
|
||||||
|
|
||||||
var token = reply.data.sublist(42, 46);
|
|
||||||
List<String> strTokenList = changeIntListToStringList(token);
|
List<String> strTokenList = changeIntListToStringList(token);
|
||||||
Storage.setStringList(saveBlueToken, strTokenList);
|
Storage.setStringList(saveBlueToken, strTokenList);
|
||||||
|
var addUserData = await getCleanUpUsers(tokenList: token);
|
||||||
|
CommandSenderManager().sendNormalData(addUserData);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<int>> getAddUserKeyData() async {
|
//获取清除用户列表指令
|
||||||
|
Future<List<int>> getCleanUpUsers({List<int>? tokenList}) async {
|
||||||
|
var entity = await ApiRepository.to
|
||||||
|
.getLockUserNoList(lockId: CommonDataManage().currentKeyInfo.lockId!);
|
||||||
|
if (!entity.errorCode!.codeIsSuccessful ||
|
||||||
|
(entity.data?.userNos ?? []).isEmpty) {
|
||||||
|
throw Exception('ApiRepository.to.getLockUserNoList 访问失败');
|
||||||
|
}
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
var token = await Storage.getStringList(saveBlueToken);
|
if (tokenList == null) {
|
||||||
List<int> getTokenList = changeStringListToIntList(token!);
|
var tokenKey = await Storage.getStringList(saveBlueToken);
|
||||||
|
tokenList = changeStringListToIntList(tokenKey!);
|
||||||
|
}
|
||||||
|
|
||||||
|
var cleanUpUsersData = CleanUpUsersCommand(
|
||||||
|
lockID: BlueManage().connectDeviceName,
|
||||||
|
authUserID: CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||||
|
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||||
|
userID: await Storage.getUid(),
|
||||||
|
needAuthor: 1,
|
||||||
|
publicKey: publicKeyDataList,
|
||||||
|
privateKey: getPrivateKeyList,
|
||||||
|
userNoList: entity.data!.userNos!,
|
||||||
|
token: tokenList,
|
||||||
|
);
|
||||||
|
return cleanUpUsersData.packageData();
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取添加用户指令
|
||||||
|
Future<List<int>> getAddUserKeyData({List<int>? tokenList}) async {
|
||||||
|
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
|
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
|
if (tokenList == null) {
|
||||||
|
var token = await Storage.getStringList(saveBlueToken);
|
||||||
|
tokenList = changeStringListToIntList(token!);
|
||||||
|
}
|
||||||
|
|
||||||
LockListInfoItemEntity currentKeyInfo = CommonDataManage().currentKeyInfo;
|
LockListInfoItemEntity currentKeyInfo = CommonDataManage().currentKeyInfo;
|
||||||
DateTime startTime = DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.startDate! ~/ 1000);
|
DateTime startTime =
|
||||||
DateTime endTime = DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.endDate! ~/ 1000);
|
DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.startDate! ~/ 1000);
|
||||||
|
DateTime endTime =
|
||||||
|
DateTime.fromMillisecondsSinceEpoch(currentKeyInfo.endDate! ~/ 1000);
|
||||||
bool isRound = currentKeyInfo.keyType == 2;
|
bool isRound = currentKeyInfo.keyType == 2;
|
||||||
|
|
||||||
var addUserData = AddUserCommand(
|
var addUserData = AddUserCommand(
|
||||||
@ -234,7 +177,6 @@ class SenderBeforeDataManage {
|
|||||||
startDate: currentKeyInfo.startDate! ~/ 1000,
|
startDate: currentKeyInfo.startDate! ~/ 1000,
|
||||||
expireDate: currentKeyInfo.endDate! ~/ 1000,
|
expireDate: currentKeyInfo.endDate! ~/ 1000,
|
||||||
useCountLimit: 0xFFFF,
|
useCountLimit: 0xFFFF,
|
||||||
// useCountLimit: 1,
|
|
||||||
isRound: isRound ? 1 : 0,
|
isRound: isRound ? 1 : 0,
|
||||||
weekRound: isRound
|
weekRound: isRound
|
||||||
? DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
? DateTool().accordingTheCycleIntoTheCorrespondingNumber(
|
||||||
@ -249,7 +191,7 @@ class SenderBeforeDataManage {
|
|||||||
needAuthor: 1,
|
needAuthor: 1,
|
||||||
publicKey: publicKeyDataList,
|
publicKey: publicKeyDataList,
|
||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
token: getTokenList);
|
token: tokenList);
|
||||||
return addUserData.packageData();
|
return addUserData.packageData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,11 +9,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:rxdart/rxdart.dart';
|
import 'package:rxdart/rxdart.dart';
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
import 'package:star_lock/app_settings/app_colors.dart';
|
||||||
|
import 'package:star_lock/app_settings/app_settings.dart';
|
||||||
import 'package:star_lock/blue/blue_manage.dart';
|
import 'package:star_lock/blue/blue_manage.dart';
|
||||||
|
import 'package:star_lock/blue/io_protocol/io_cleanUpUsers.dart';
|
||||||
import 'package:star_lock/blue/io_tool/io_tool.dart';
|
import 'package:star_lock/blue/io_tool/io_tool.dart';
|
||||||
|
import 'package:star_lock/blue/sender_data.dart';
|
||||||
import 'package:star_lock/blue/sender_manage.dart';
|
import 'package:star_lock/blue/sender_manage.dart';
|
||||||
import 'package:star_lock/debug/log.dart';
|
import 'package:star_lock/debug/log.dart';
|
||||||
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
|
import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart';
|
||||||
|
import 'package:star_lock/network/api_repository.dart';
|
||||||
|
import 'package:star_lock/tools/baseGetXController.dart';
|
||||||
import 'package:star_lock/tools/commonDataManage.dart';
|
import 'package:star_lock/tools/commonDataManage.dart';
|
||||||
import 'package:star_lock/tools/dateTool.dart';
|
import 'package:star_lock/tools/dateTool.dart';
|
||||||
import 'package:star_lock/tools/storage.dart';
|
import 'package:star_lock/tools/storage.dart';
|
||||||
@ -85,6 +90,14 @@ class DebugConsoleController {
|
|||||||
.catchError(EasyLoading.dismiss);
|
.catchError(EasyLoading.dismiss);
|
||||||
},
|
},
|
||||||
child: const Text('给锁设备创建 32个用户')),
|
child: const Text('给锁设备创建 32个用户')),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: () {
|
||||||
|
EasyLoading.show();
|
||||||
|
sendCleanUpUsers()
|
||||||
|
.then((value) => EasyLoading.dismiss())
|
||||||
|
.catchError(EasyLoading.dismiss);
|
||||||
|
},
|
||||||
|
child: const Text('清除用户,只保留超级管理员')),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -141,9 +154,11 @@ class DebugConsoleController {
|
|||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
token: tokenList);
|
token: tokenList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AppLog.log('--> 添加第$count 用户');
|
||||||
});
|
});
|
||||||
|
|
||||||
await Future.delayed(const Duration(seconds: 2));
|
await Future.delayed(const Duration(seconds: 3));
|
||||||
count++;
|
count++;
|
||||||
await randomlyCreate32Users(count, max);
|
await randomlyCreate32Users(count, max);
|
||||||
}
|
}
|
||||||
@ -155,4 +170,36 @@ class DebugConsoleController {
|
|||||||
return List.generate(length, (index) => chars[random.nextInt(chars.length)])
|
return List.generate(length, (index) => chars[random.nextInt(chars.length)])
|
||||||
.join();
|
.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取清除用户列表指令
|
||||||
|
Future<void> sendCleanUpUsers({List<int>? tokenList}) async {
|
||||||
|
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
|
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
|
|
||||||
|
var publicKey = await Storage.getStringList(saveBluePublicKey);
|
||||||
|
List<int> publicKeyDataList = changeStringListToIntList(publicKey!);
|
||||||
|
|
||||||
|
if (tokenList == null) {
|
||||||
|
var tokenKey = await Storage.getStringList(saveBlueToken);
|
||||||
|
tokenList = changeStringListToIntList(tokenKey!);
|
||||||
|
}
|
||||||
|
|
||||||
|
BlueManage().bludSendData(BlueManage().connectDeviceName,
|
||||||
|
(BluetoothConnectionState deviceConnectionState) async {
|
||||||
|
if (deviceConnectionState == BluetoothConnectionState.connected) {
|
||||||
|
IoSenderManage.senderCleanUpUsersCommand(
|
||||||
|
lockID: BlueManage().connectDeviceName,
|
||||||
|
authUserID:
|
||||||
|
CommonDataManage().currentKeyInfo.senderUserId!.toString(),
|
||||||
|
keyID: CommonDataManage().currentKeyInfo.keyId.toString(),
|
||||||
|
userID: await Storage.getUid(),
|
||||||
|
needAuthor: 1,
|
||||||
|
publicKey: publicKeyDataList,
|
||||||
|
privateKey: getPrivateKeyList,
|
||||||
|
userNoList: [1],
|
||||||
|
token: tokenList,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user