diff --git a/lib/talk/starChart/views/imageTransmission/image_transmission_logic.dart b/lib/talk/starChart/views/imageTransmission/image_transmission_logic.dart index 8cc6f854..c9c42baf 100644 --- a/lib/talk/starChart/views/imageTransmission/image_transmission_logic.dart +++ b/lib/talk/starChart/views/imageTransmission/image_transmission_logic.dart @@ -32,6 +32,8 @@ import 'package:star_lock/talk/starChart/views/imageTransmission/image_transmiss import 'package:star_lock/talk/starChart/views/talkView/talk_view_state.dart'; import 'package:star_lock/tools/G711Tool.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart'; +import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:star_lock/tools/storage.dart'; import '../../../../tools/baseGetXController.dart'; @@ -517,34 +519,40 @@ class ImageTransmissionLogic extends BaseGetXController { // 远程开锁 Future remoteOpenLock() async { + final LockListInfoItemEntity currentKeyInfo = + CommonDataManage().currentKeyInfo; + + var lockId = currentKeyInfo.lockId ?? 0; + var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0; + final lockPeerId = StartChartManage().lockPeerId; - final lockListPeerId = StartChartManage().lockListPeerId; - int lockId = lockDetailState.keyInfos.value.lockId ?? 0; - - // 如果锁列表获取到peerId,代表有多个锁,使用锁列表的peerId - // 从列表中遍历出对应的peerId - lockListPeerId.forEach((element) { - if (element.network?.peerId == lockPeerId) { - lockId = element.lockId ?? 0; - } - }); - - final LockSetInfoEntity lockSetInfoEntity = - await ApiRepository.to.getLockSettingInfoData( - lockId: lockId.toString(), - ); - if (lockSetInfoEntity.errorCode!.codeIsSuccessful) { - if (lockSetInfoEntity.data?.lockFeature?.remoteUnlock == 1 && - lockSetInfoEntity.data?.lockSettingInfo?.remoteUnlock == 1) { - final LoginEntity entity = await ApiRepository.to - .remoteOpenLock(lockId: lockId.toString(), timeOut: 60); - if (entity.errorCode!.codeIsSuccessful) { - showToast('已开锁'.tr); - StartChartManage().lockListPeerId = []; + final LockListInfoGroupEntity? lockListInfoGroupEntity = + await Storage.getLockMainListData(); + if (lockListInfoGroupEntity != null) { + lockListInfoGroupEntity!.groupList?.forEach((element) { + final lockList = element.lockList; + if (lockList != null && lockList.length != 0) { + for (var lockInfo in lockList) { + final peerId = lockInfo.network?.peerId; + if (peerId != null && peerId != '') { + if (peerId == lockPeerId) { + lockId = lockInfo.lockId ?? 0; + remoteUnlock = lockInfo.lockSetting?.remoteUnlock ?? 0; + } + } + } } - } else { - showToast('该锁的远程开锁功能未启用'.tr); + }); + } + if (remoteUnlock == 1) { + final LoginEntity entity = await ApiRepository.to + .remoteOpenLock(lockId: lockId.toString(), timeOut: 60); + if (entity.errorCode!.codeIsSuccessful) { + showToast('已开锁'.tr); + StartChartManage().lockListPeerId = []; } + } else { + showToast('该锁的远程开锁功能未启用'.tr); } } diff --git a/lib/talk/starChart/views/talkView/talk_view_logic.dart b/lib/talk/starChart/views/talkView/talk_view_logic.dart index 02ed3f25..cfe0d6f2 100644 --- a/lib/talk/starChart/views/talkView/talk_view_logic.dart +++ b/lib/talk/starChart/views/talkView/talk_view_logic.dart @@ -31,6 +31,8 @@ import 'package:star_lock/talk/starChart/star_chart_manage.dart'; import 'package:star_lock/talk/starChart/views/talkView/talk_view_state.dart'; import 'package:star_lock/tools/G711Tool.dart'; import 'package:star_lock/tools/bugly/bugly_tool.dart'; +import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:star_lock/tools/storage.dart'; import '../../../../tools/baseGetXController.dart'; @@ -514,34 +516,40 @@ class TalkViewLogic extends BaseGetXController { // 远程开锁 Future remoteOpenLock() async { + final LockListInfoItemEntity currentKeyInfo = + CommonDataManage().currentKeyInfo; + + var lockId = currentKeyInfo.lockId ?? 0; + var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0; + final lockPeerId = StartChartManage().lockPeerId; - final lockListPeerId = StartChartManage().lockListPeerId; - int lockId = lockDetailState.keyInfos.value.lockId ?? 0; - - // 如果锁列表获取到peerId,代表有多个锁,使用锁列表的peerId - // 从列表中遍历出对应的peerId - lockListPeerId.forEach((element) { - if (element.network?.peerId == lockPeerId) { - lockId = element.lockId ?? 0; - } - }); - - final LockSetInfoEntity lockSetInfoEntity = - await ApiRepository.to.getLockSettingInfoData( - lockId: lockId.toString(), - ); - if (lockSetInfoEntity.errorCode!.codeIsSuccessful) { - if (lockSetInfoEntity.data?.lockFeature?.remoteUnlock == 1 && - lockSetInfoEntity.data?.lockSettingInfo?.remoteUnlock == 1) { - final LoginEntity entity = await ApiRepository.to - .remoteOpenLock(lockId: lockId.toString(), timeOut: 60); - if (entity.errorCode!.codeIsSuccessful) { - showToast('已开锁'.tr); - StartChartManage().lockListPeerId = []; + final LockListInfoGroupEntity? lockListInfoGroupEntity = + await Storage.getLockMainListData(); + if (lockListInfoGroupEntity != null) { + lockListInfoGroupEntity!.groupList?.forEach((element) { + final lockList = element.lockList; + if (lockList != null && lockList.length != 0) { + for (var lockInfo in lockList) { + final peerId = lockInfo.network?.peerId; + if (peerId != null && peerId != '') { + if (peerId == lockPeerId) { + lockId = lockInfo.lockId ?? 0; + remoteUnlock = lockInfo.lockSetting?.remoteUnlock ?? 0; + } + } + } } - } else { - showToast('该锁的远程开锁功能未启用'.tr); + }); + } + if (remoteUnlock == 1) { + final LoginEntity entity = await ApiRepository.to + .remoteOpenLock(lockId: lockId.toString(), timeOut: 60); + if (entity.errorCode!.codeIsSuccessful) { + showToast('已开锁'.tr); + StartChartManage().lockListPeerId = []; } + } else { + showToast('该锁的远程开锁功能未启用'.tr); } }