From ca9011a5987a76cb43150408493f496a37435736 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Tue, 28 May 2024 18:23:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Dxhj=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=94=81=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockSet/lockSet/lockSet_logic.dart | 108 ++++++++++-------- 1 file changed, 60 insertions(+), 48 deletions(-) diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index b90056e3..5dbbed9f 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -4,6 +4,8 @@ import 'package:flutter/scheduler.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; import 'package:star_lock/blue/io_type.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; +import 'package:star_lock/main/lockMian/entity/lockListInfo_entity.dart'; import 'package:star_lock/tools/showTipView.dart'; import '../../../../blue/blue_manage.dart'; @@ -13,6 +15,7 @@ import '../../../../blue/io_reply.dart'; import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; import '../../../../blue/sender_manage.dart'; +import '../../../../flavors.dart'; import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../../tools/commonDataManage.dart'; @@ -31,9 +34,10 @@ class LockSetLogic extends BaseGetXController { // 监听蓝牙协议返回结果 late StreamSubscription _replySubscription; + void _initReplySubscription() { _replySubscription = - EventBusManager().eventBus!.on().listen((reply) async { + EventBusManager().eventBus!.on().listen((Reply reply) async { // 删除用户 // if (reply is DeletUserReply) { // _replyDeletUserKey(reply); @@ -100,8 +104,8 @@ class LockSetLogic extends BaseGetXController { // 恢复出厂设置数据解析 Future _replyFactoryDataResetKey(Reply reply) async { - var token = reply.data.sublist(2, 6); - var saveStrList = changeIntListToStringList(token); + List token = reply.data.sublist(2, 6); + List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); int status = reply.data[6]; @@ -114,13 +118,15 @@ class LockSetLogic extends BaseGetXController { break; case 0x06: //无权限 - var privateKey = await Storage.getStringList(saveBluePrivateKey); + List? privateKey = + await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); + List? publicKey = + await Storage.getStringList(saveBluePublicKey); List publicKeyDataList = changeStringListToIntList(publicKey!); - var token = await Storage.getStringList(saveBlueToken); + List? token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); IoSenderManage.senderFactoryDataReset( @@ -252,13 +258,15 @@ class LockSetLogic extends BaseGetXController { BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); + List? privateKey = + await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var publicKey = await Storage.getStringList(saveBluePublicKey); + List? publicKey = + await Storage.getStringList(saveBluePublicKey); List publicKeyDataList = changeStringListToIntList(publicKey!); - var token = await Storage.getStringList(saveBlueToken); + List? token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); IoSenderManage.senderFactoryDataReset( @@ -314,18 +322,20 @@ class LockSetLogic extends BaseGetXController { BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); + List? privateKey = + await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - var token = await Storage.getStringList(saveBlueToken); + List? token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - var publicKey = await Storage.getStringList(saveBluePublicKey); + List? publicKey = + await Storage.getStringList(saveBluePublicKey); List getPublicKeyList = changeStringListToIntList(publicKey!); state.settingUpSupportFeatures = type; - var featureEnable = 0; + int featureEnable = 0; if (type == 55) { // APP开锁时是否需联网 featureEnable = state.isOpenLockNeedOnline.value == 1 ? 0 : 1; @@ -386,9 +396,9 @@ class LockSetLogic extends BaseGetXController { } // 开启考勤获取是否有公司 - void openCheckingInData( + Future openCheckingInData( BlockSetCheckInCallback blockSetCheckInCallback) async { - var entity = await ApiRepository.to.openCheckingInData( + CheckingInInfoDataEntity entity = await ApiRepository.to.openCheckingInData( lockId: state.lockSetInfoData.value.lockId.toString(), ); if (entity.errorCode!.codeIsSuccessful) { @@ -397,8 +407,8 @@ class LockSetLogic extends BaseGetXController { } // 设置是否打开考勤 - void setLockSetGeneralSetting() async { - var entity = await ApiRepository.to.setCheckInData( + Future setLockSetGeneralSetting() async { + LoginEntity entity = await ApiRepository.to.setCheckInData( lockId: state.lockSetInfoData.value.lockId!, attendance: state.isAttendance.value == 1 ? 0 : 1, ); @@ -415,7 +425,7 @@ class LockSetLogic extends BaseGetXController { // 设置是否打开开锁提醒 Future setLockPickingReminder() async { - var entity = await ApiRepository.to.setLockPickingReminderData( + LoginEntity entity = await ApiRepository.to.setLockPickingReminderData( lockId: state.lockSetInfoData.value.lockId!, unlockReminder: state.isLockPickingReminder.value == 1 ? 0 : 1, ); @@ -431,8 +441,8 @@ class LockSetLogic extends BaseGetXController { } // 设置是否打开开锁时是否需联网 - void setLockSetOpenLockNeedOnline() async { - var entity = await ApiRepository.to.setOpenLockNeedOnlineData( + Future setLockSetOpenLockNeedOnline() async { + LoginEntity entity = await ApiRepository.to.setOpenLockNeedOnlineData( lockId: state.lockSetInfoData.value.lockId!, appUnlockOnline: state.isOpenLockNeedOnline.value == 1 ? 0 : 1, ); @@ -452,16 +462,18 @@ class LockSetLogic extends BaseGetXController { // 下级界面修改成功后传递数据 StreamSubscription? _passCurrentLockInformationEvent; + void initLoadDataAction(BlockSetStateCallback blockSetStateCallback) { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus - _passCurrentLockInformationEvent = - eventBus.on().listen((event) { + _passCurrentLockInformationEvent = eventBus + .on() + .listen((PassCurrentLockInformationEvent event) { getLockSettingInfoData(); }); } void showDeletAlertTipDialog({String? showContent = ''}) { - var content = showContent!.isEmpty + String content = showContent!.isEmpty ? "${"删除设备失败,请确保在设备附近,设备未被连接,设备已打开".tr}${BlueManage().connectDeviceName!.contains("T9A") == true ? "。如果是全自动锁,请使屏幕变亮".tr : ""}" : showContent; ShowTipView().showSureAlertDialog(content); @@ -482,7 +494,7 @@ class LockSetLogic extends BaseGetXController { } else if (state.lockBasicInfo.value.keyRight == 1) { // 授权管理员弹框提示 ShowTipView().showDeleteAdministratorIsHaveAllDataDialog( - '同时删除其发送的所有钥匙,钥匙删除后不能恢复'.tr, (a) { + '同时删除其发送的所有钥匙,钥匙删除后不能恢复'.tr, (bool a) { // 授权管理员删除 state.deleteAdministratorIsHaveAllData.value = a; deletKeyData(); @@ -496,8 +508,8 @@ class LockSetLogic extends BaseGetXController { } // 查询账户密码 - void checkLoginPassword() async { - var entity = await ApiRepository.to.checkLoginPassword( + Future checkLoginPassword() async { + LockListInfoEntity entity = await ApiRepository.to.checkLoginPassword( password: state.passwordTF.text, ); if (entity.errorCode!.codeIsSuccessful) { @@ -507,21 +519,21 @@ class LockSetLogic extends BaseGetXController { } // 当是锁拥有者的时候,删除锁 - void deletLockInfoData() async { - var entity = await ApiRepository.to.deletOwnerLockData( + Future deletLockInfoData() async { + LockListInfoEntity entity = await ApiRepository.to.deletOwnerLockData( lockId: state.lockSetInfoData.value.lockId!, ); if (entity.errorCode!.codeIsSuccessful) { - BlueManage().connectDeviceMacAddress = ""; + BlueManage().connectDeviceMacAddress = ''; SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); }); - if(state.isOnlyOneData.value == true){ - Future.delayed(const Duration(milliseconds: 200)).then((e) { + if (state.isOnlyOneData.value == true) { + Future.delayed(const Duration(milliseconds: 200)).then((e) { Get.close(1); }); - }else{ - Future.delayed(const Duration(milliseconds: 200)).then((e) { + } else { + Future.delayed(const Duration(milliseconds: 200)).then((e) { Get.close(2); }); } @@ -529,27 +541,27 @@ class LockSetLogic extends BaseGetXController { } // 普通用户或者授权管理员删除钥匙 - void deletKeyData() async { - var entity = await ApiRepository.to.deletOwnerKeyData( + Future deletKeyData() async { + final LockListInfoEntity entity = await ApiRepository.to.deletOwnerKeyData( lockId: state.lockSetInfoData.value.lockId.toString(), keyId: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - includeUnderlings: state.deleteAdministratorIsHaveAllData.value == true ? 1 : 0 - ); + includeUnderlings: + state.deleteAdministratorIsHaveAllData.value == true ? 1 : 0); if (entity.errorCode!.codeIsSuccessful) { - BlueManage().connectDeviceMacAddress = ""; + BlueManage().connectDeviceMacAddress = ''; SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); }); - if(state.isOnlyOneData.value == true){ - Future.delayed(const Duration(milliseconds: 200)).then((e) { - Get.close(1); - }); - }else{ - Future.delayed(const Duration(milliseconds: 200)).then((e) { - Get.close(2); - }); - } - // Get.offAllNamed(Routers.starLockMain); + final bool isXHJ = F.isXHJ; + final bool isOnlyOneData = state.isOnlyOneData.value == true; + Future.delayed(const Duration(milliseconds: 200)).then((e) { + if (isXHJ) { + Get.close(3); + } else { + final int onlyOneDataInt = isOnlyOneData ? 1 : 2; + Get.close(onlyOneDataInt); + } + }); } }