1、 在锁端操作“分组删除”后,不管删除那个分组。App 都显示删除所有用户应该区分删除的类型
2、开锁不在同步操作记录,在操作记录页同步(曹总提出) 3、 锁定系统锁定,App操作记录显示“手机用错误报警”,应该直接显示“错误报警”
This commit is contained in:
parent
97efbedfb1
commit
79b387b390
@ -1,14 +1,14 @@
|
|||||||
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:crypto/crypto.dart' as crypto;
|
||||||
import 'package:star_lock/tools/dateTool.dart';
|
import 'package:star_lock/tools/dateTool.dart';
|
||||||
|
|
||||||
import '../io_tool/io_tool.dart';
|
|
||||||
import '../sm4Encipher/sm4.dart';
|
|
||||||
import '../io_reply.dart';
|
import '../io_reply.dart';
|
||||||
import '../io_sender.dart';
|
import '../io_sender.dart';
|
||||||
|
import '../io_tool/io_tool.dart';
|
||||||
import '../io_type.dart';
|
import '../io_type.dart';
|
||||||
import 'package:crypto/crypto.dart' as crypto;
|
import '../sm4Encipher/sm4.dart';
|
||||||
|
|
||||||
///TODO:添加人脸
|
///TODO:添加人脸
|
||||||
/*
|
/*
|
||||||
@ -70,7 +70,7 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
List<int> messageDetail() {
|
List<int> messageDetail() {
|
||||||
List<int> data = [];
|
final List<int> data = [];
|
||||||
List<int> subData = [];
|
List<int> subData = [];
|
||||||
List<int> ebcData = [];
|
List<int> ebcData = [];
|
||||||
|
|
||||||
@ -82,13 +82,13 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
data.add(81);
|
data.add(81);
|
||||||
|
|
||||||
// keyID 40
|
// keyID 40
|
||||||
int keyIDLength = utf8.encode(keyID!).length;
|
final int keyIDLength = utf8.encode(keyID!).length;
|
||||||
subData.addAll(utf8.encode(keyID!));
|
subData.addAll(utf8.encode(keyID!));
|
||||||
subData = getFixedLengthList(subData, 40 - keyIDLength);
|
subData = getFixedLengthList(subData, 40 - keyIDLength);
|
||||||
// AppLog.log("keyID:$keyID utf8.encode(keyID!):${utf8.encode(keyID!)}");
|
// AppLog.log("keyID:$keyID utf8.encode(keyID!):${utf8.encode(keyID!)}");
|
||||||
|
|
||||||
//userID 20
|
//userID 20
|
||||||
int userIDLength = utf8.encode(userID!).length;
|
final int userIDLength = utf8.encode(userID!).length;
|
||||||
subData.addAll(utf8.encode(userID!));
|
subData.addAll(utf8.encode(userID!));
|
||||||
subData = getFixedLengthList(subData, 20 - userIDLength);
|
subData = getFixedLengthList(subData, 20 - userIDLength);
|
||||||
// AppLog.log("userID:$userID utf8.encode(userID!):${utf8.encode(userID!)}");
|
// AppLog.log("userID:$userID utf8.encode(userID!):${utf8.encode(userID!)}");
|
||||||
@ -129,28 +129,28 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
subData.add((startDate! & 0xff000000) >> 24);
|
subData.add((startDate! & 0xff000000) >> 24);
|
||||||
subData.add((startDate! & 0xff0000) >> 16);
|
subData.add((startDate! & 0xff0000) >> 16);
|
||||||
subData.add((startDate! & 0xff00) >> 8);
|
subData.add((startDate! & 0xff00) >> 8);
|
||||||
subData.add((startDate! & 0xff));
|
subData.add(startDate! & 0xff);
|
||||||
|
|
||||||
// endDate 4
|
// endDate 4
|
||||||
subData.add((endDate! & 0xff000000) >> 24);
|
subData.add((endDate! & 0xff000000) >> 24);
|
||||||
subData.add((endDate! & 0xff0000) >> 16);
|
subData.add((endDate! & 0xff0000) >> 16);
|
||||||
subData.add((endDate! & 0xff00) >> 8);
|
subData.add((endDate! & 0xff00) >> 8);
|
||||||
subData.add((endDate! & 0xff));
|
subData.add(endDate! & 0xff);
|
||||||
// AppLog.log("addFingerprint startDate:${DateTool().dateToYMDHNString(startDate.toString())} endDate:${DateTool().dateToYMDHNString(endDate.toString())}");
|
// AppLog.log("addFingerprint startDate:${DateTool().dateToYMDHNString(startDate.toString())} endDate:${DateTool().dateToYMDHNString(endDate.toString())}");
|
||||||
|
|
||||||
// startTime 4
|
// startTime 4
|
||||||
List<int> startTimeList = [0,0,0,0];
|
final List<int> startTimeList = [0,0,0,0];
|
||||||
if(startTime!.contains(":")){
|
if(startTime!.contains(':')){
|
||||||
List<String> getStartTimeList = startTime!.split(":");
|
final List<String> getStartTimeList = startTime!.split(':');
|
||||||
startTimeList[2] = int.parse(getStartTimeList[0]);
|
startTimeList[2] = int.parse(getStartTimeList[0]);
|
||||||
startTimeList[3] = int.parse(getStartTimeList[1]);
|
startTimeList[3] = int.parse(getStartTimeList[1]);
|
||||||
}
|
}
|
||||||
subData.addAll(startTimeList);
|
subData.addAll(startTimeList);
|
||||||
|
|
||||||
// endTime 4
|
// endTime 4
|
||||||
List<int> endTimeList = [0,0,0,0];
|
final List<int> endTimeList = [0,0,0,0];
|
||||||
if(endTime!.contains(":")){
|
if(endTime!.contains(':')){
|
||||||
List<String> getendTimeList = endTime!.split(":");
|
final List<String> getendTimeList = endTime!.split(':');
|
||||||
endTimeList[2] = int.parse(getendTimeList[0]);
|
endTimeList[2] = int.parse(getendTimeList[0]);
|
||||||
endTimeList[3] = int.parse(getendTimeList[1]);
|
endTimeList[3] = int.parse(getendTimeList[1]);
|
||||||
}
|
}
|
||||||
@ -160,7 +160,7 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
//AuthCodeLen 1
|
//AuthCodeLen 1
|
||||||
subData.add(0);
|
subData.add(0);
|
||||||
} else {
|
} else {
|
||||||
List<int> authCodeData = [];
|
final List<int> authCodeData = [];
|
||||||
//KeyID
|
//KeyID
|
||||||
authCodeData.addAll(utf8.encode(keyID!));
|
authCodeData.addAll(utf8.encode(keyID!));
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
authCodeData.addAll(signKey!);
|
authCodeData.addAll(signKey!);
|
||||||
|
|
||||||
// 把KeyID、authUserID、时间戳、公钥通过md5加密之后就是authCode
|
// 把KeyID、authUserID、时间戳、公钥通过md5加密之后就是authCode
|
||||||
var authCode = crypto.md5.convert(authCodeData);
|
final authCode = crypto.md5.convert(authCodeData);
|
||||||
|
|
||||||
subData.add(authCode.bytes.length);
|
subData.add(authCode.bytes.length);
|
||||||
subData.addAll(authCode.bytes);
|
subData.addAll(authCode.bytes);
|
||||||
@ -183,7 +183,7 @@ class SenderAddFaceCommand extends SenderProtocol {
|
|||||||
data.addAll(subData);
|
data.addAll(subData);
|
||||||
|
|
||||||
if ((data.length % 16) != 0) {
|
if ((data.length % 16) != 0) {
|
||||||
int add = (16 - data.length % 16);
|
final int add = 16 - data.length % 16;
|
||||||
for (int i = 0; i < add; i++) {
|
for (int i = 0; i < add; i++) {
|
||||||
data.add(0);
|
data.add(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,7 +80,7 @@ class SenderCancelAddFaceCommand extends SenderProtocol {
|
|||||||
data.addAll(subData);
|
data.addAll(subData);
|
||||||
|
|
||||||
if ((data.length % 16) != 0) {
|
if ((data.length % 16) != 0) {
|
||||||
int add = (16 - data.length % 16);
|
int add = 16 - data.length % 16;
|
||||||
for (int i = 0; i < add; i++) {
|
for (int i = 0; i < add; i++) {
|
||||||
data.add(0);
|
data.add(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/app_settings/app_colors.dart';
|
import 'package:star_lock/app_settings/app_colors.dart';
|
||||||
import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_state.dart';
|
|
||||||
import 'package:star_lock/tools/pickers/pickers.dart';
|
import 'package:star_lock/tools/pickers/pickers.dart';
|
||||||
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
|
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
|
||||||
import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart';
|
import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart';
|
||||||
@ -16,6 +15,7 @@ import '../../../../../tools/dateTool.dart';
|
|||||||
import '../../../../../tools/storage.dart';
|
import '../../../../../tools/storage.dart';
|
||||||
import '../../../../../translations/trans_lib.dart';
|
import '../../../../../translations/trans_lib.dart';
|
||||||
import 'massSendElectronicKey_logic.dart';
|
import 'massSendElectronicKey_logic.dart';
|
||||||
|
import 'massSendElectronicKey_state.dart';
|
||||||
|
|
||||||
class MassSendElectronicKeyPage extends StatefulWidget {
|
class MassSendElectronicKeyPage extends StatefulWidget {
|
||||||
const MassSendElectronicKeyPage({required this.type, Key? key}) : super(key: key);
|
const MassSendElectronicKeyPage({required this.type, Key? key}) : super(key: key);
|
||||||
|
|||||||
@ -90,7 +90,7 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
// 更新电量
|
// 更新电量
|
||||||
uploadElectricQuantityRequest();
|
uploadElectricQuantityRequest();
|
||||||
//锁数据更新
|
//锁数据更新
|
||||||
getLockRecordLastUploadDataTime();
|
// getLockRecordLastUploadDataTime();
|
||||||
resetOpenDoorState();
|
resetOpenDoorState();
|
||||||
state.animationController!.stop();
|
state.animationController!.stop();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -525,7 +525,7 @@ class LockSetLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 以下为删除逻辑
|
/// 以下为删除逻辑
|
||||||
deleyLockLogicOfRoles() {
|
void deleyLockLogicOfRoles() {
|
||||||
if (state.lockBasicInfo.value.isLockOwner == 1) {
|
if (state.lockBasicInfo.value.isLockOwner == 1) {
|
||||||
// 超级管理员必须通过连接蓝牙删除
|
// 超级管理员必须通过连接蓝牙删除
|
||||||
ShowTipView().showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr,
|
ShowTipView().showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr,
|
||||||
|
|||||||
@ -57,7 +57,7 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
|||||||
pwdNo: state.itemData.value.pwdUserNo!,
|
pwdNo: state.itemData.value.pwdUserNo!,
|
||||||
pwd: state.inputPwdController.text,
|
pwd: state.inputPwdController.text,
|
||||||
useCountLimit: 0xffff,
|
useCountLimit: 0xffff,
|
||||||
operate: state.isDeletPasswordKey.value == true ? 2 : 1,
|
operate: state.itemData.value.isCustom == 1 ? (state.isDeletPasswordKey.value == true ? 2 : 1) : 3,
|
||||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||||
@ -147,7 +147,7 @@ class PasswordKeyDetailLogic extends BaseGetXController {
|
|||||||
pwdNo: state.itemData.value.pwdUserNo!,
|
pwdNo: state.itemData.value.pwdUserNo!,
|
||||||
pwd: state.inputPwdController.text,
|
pwd: state.inputPwdController.text,
|
||||||
useCountLimit: 0xffff,
|
useCountLimit: 0xffff,
|
||||||
operate: state.itemData.value.isCustom == 1 ? state.isDeletPasswordKey.value == true ? 2 : 1 : 3,
|
operate: state.itemData.value.isCustom == 1 ? (state.isDeletPasswordKey.value == true ? 2 : 1) : 3,
|
||||||
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
isAdmin: state.isAdministrator.value == true ? 1 : 0,
|
||||||
startTime:state.itemData.value.startDate! ~/ 1000,
|
startTime:state.itemData.value.startDate! ~/ 1000,
|
||||||
endTime:state.itemData.value.endDate! ~/ 1000,
|
endTime:state.itemData.value.endDate! ~/ 1000,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user