fix:调整远程开锁获取lockId逻辑

This commit is contained in:
liyi 2025-05-15 16:46:14 +08:00
parent e754d008c5
commit 069ef1b592
2 changed files with 66 additions and 50 deletions

View File

@ -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/talk/starChart/views/talkView/talk_view_state.dart';
import 'package:star_lock/tools/G711Tool.dart'; import 'package:star_lock/tools/G711Tool.dart';
import 'package:star_lock/tools/bugly/bugly_tool.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'; import '../../../../tools/baseGetXController.dart';
@ -517,34 +519,40 @@ class ImageTransmissionLogic extends BaseGetXController {
// //
Future<void> remoteOpenLock() async { Future<void> remoteOpenLock() async {
final LockListInfoItemEntity currentKeyInfo =
CommonDataManage().currentKeyInfo;
var lockId = currentKeyInfo.lockId ?? 0;
var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0;
final lockPeerId = StartChartManage().lockPeerId; final lockPeerId = StartChartManage().lockPeerId;
final lockListPeerId = StartChartManage().lockListPeerId; final LockListInfoGroupEntity? lockListInfoGroupEntity =
int lockId = lockDetailState.keyInfos.value.lockId ?? 0; await Storage.getLockMainListData();
if (lockListInfoGroupEntity != null) {
// peerId使peerId lockListInfoGroupEntity!.groupList?.forEach((element) {
// peerId final lockList = element.lockList;
lockListPeerId.forEach((element) { if (lockList != null && lockList.length != 0) {
if (element.network?.peerId == lockPeerId) { for (var lockInfo in lockList) {
lockId = element.lockId ?? 0; final peerId = lockInfo.network?.peerId;
} if (peerId != null && peerId != '') {
}); if (peerId == lockPeerId) {
lockId = lockInfo.lockId ?? 0;
final LockSetInfoEntity lockSetInfoEntity = remoteUnlock = lockInfo.lockSetting?.remoteUnlock ?? 0;
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 = [];
} }
} 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);
} }
} }

View File

@ -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/talk/starChart/views/talkView/talk_view_state.dart';
import 'package:star_lock/tools/G711Tool.dart'; import 'package:star_lock/tools/G711Tool.dart';
import 'package:star_lock/tools/bugly/bugly_tool.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'; import '../../../../tools/baseGetXController.dart';
@ -514,34 +516,40 @@ class TalkViewLogic extends BaseGetXController {
// //
Future<void> remoteOpenLock() async { Future<void> remoteOpenLock() async {
final LockListInfoItemEntity currentKeyInfo =
CommonDataManage().currentKeyInfo;
var lockId = currentKeyInfo.lockId ?? 0;
var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0;
final lockPeerId = StartChartManage().lockPeerId; final lockPeerId = StartChartManage().lockPeerId;
final lockListPeerId = StartChartManage().lockListPeerId; final LockListInfoGroupEntity? lockListInfoGroupEntity =
int lockId = lockDetailState.keyInfos.value.lockId ?? 0; await Storage.getLockMainListData();
if (lockListInfoGroupEntity != null) {
// peerId使peerId lockListInfoGroupEntity!.groupList?.forEach((element) {
// peerId final lockList = element.lockList;
lockListPeerId.forEach((element) { if (lockList != null && lockList.length != 0) {
if (element.network?.peerId == lockPeerId) { for (var lockInfo in lockList) {
lockId = element.lockId ?? 0; final peerId = lockInfo.network?.peerId;
} if (peerId != null && peerId != '') {
}); if (peerId == lockPeerId) {
lockId = lockInfo.lockId ?? 0;
final LockSetInfoEntity lockSetInfoEntity = remoteUnlock = lockInfo.lockSetting?.remoteUnlock ?? 0;
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 = [];
} }
} 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);
} }
} }