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,25 +519,32 @@ class ImageTransmissionLogic extends BaseGetXController {
// //
Future<void> remoteOpenLock() async { Future<void> remoteOpenLock() async {
final lockPeerId = StartChartManage().lockPeerId; final LockListInfoItemEntity currentKeyInfo =
final lockListPeerId = StartChartManage().lockListPeerId; CommonDataManage().currentKeyInfo;
int lockId = lockDetailState.keyInfos.value.lockId ?? 0;
// peerId使peerId var lockId = currentKeyInfo.lockId ?? 0;
// peerId var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0;
lockListPeerId.forEach((element) {
if (element.network?.peerId == lockPeerId) { final lockPeerId = StartChartManage().lockPeerId;
lockId = element.lockId ?? 0; 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;
}
}
}
} }
}); });
}
final LockSetInfoEntity lockSetInfoEntity = if (remoteUnlock == 1) {
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 final LoginEntity entity = await ApiRepository.to
.remoteOpenLock(lockId: lockId.toString(), timeOut: 60); .remoteOpenLock(lockId: lockId.toString(), timeOut: 60);
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
@ -546,7 +555,6 @@ class ImageTransmissionLogic extends BaseGetXController {
showToast('该锁的远程开锁功能未启用'.tr); showToast('该锁的远程开锁功能未启用'.tr);
} }
} }
}
/// ///
void _initAudioRecorder() { void _initAudioRecorder() {

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,25 +516,32 @@ class TalkViewLogic extends BaseGetXController {
// //
Future<void> remoteOpenLock() async { Future<void> remoteOpenLock() async {
final lockPeerId = StartChartManage().lockPeerId; final LockListInfoItemEntity currentKeyInfo =
final lockListPeerId = StartChartManage().lockListPeerId; CommonDataManage().currentKeyInfo;
int lockId = lockDetailState.keyInfos.value.lockId ?? 0;
// peerId使peerId var lockId = currentKeyInfo.lockId ?? 0;
// peerId var remoteUnlock = currentKeyInfo.lockSetting?.remoteUnlock ?? 0;
lockListPeerId.forEach((element) {
if (element.network?.peerId == lockPeerId) { final lockPeerId = StartChartManage().lockPeerId;
lockId = element.lockId ?? 0; 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;
}
}
}
} }
}); });
}
final LockSetInfoEntity lockSetInfoEntity = if (remoteUnlock == 1) {
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 final LoginEntity entity = await ApiRepository.to
.remoteOpenLock(lockId: lockId.toString(), timeOut: 60); .remoteOpenLock(lockId: lockId.toString(), timeOut: 60);
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
@ -543,7 +552,6 @@ class TalkViewLogic extends BaseGetXController {
showToast('该锁的远程开锁功能未启用'.tr); showToast('该锁的远程开锁功能未启用'.tr);
} }
} }
}
/// ///
void _initAudioRecorder() { void _initAudioRecorder() {