From 24fac59ac4390cbd57c8324324f853a1cdc645d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Sat, 4 May 2024 16:53:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7=E3=80=81?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E3=80=81=E5=8D=A1=E3=80=81=E6=8C=87=E7=BA=B9?= =?UTF-8?q?number=E6=94=B9=E4=B8=BA2=E5=AD=97=E8=8A=82=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=98=AF=E5=90=A6=E6=98=AF=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...o_addFingerprintWithTimeCycleCoercion.dart | 12 +++++ .../io_addICCardWithTimeCycleCoercion.dart | 14 ++++- .../io_protocol/io_senderCustomPasswords.dart | 10 ++++ star_lock/lib/blue/io_tool/io_tool.dart | 2 +- star_lock/lib/blue/sender_manage.dart | 14 ++++- .../card/addICCard/addICCard_logic.dart | 19 ++++--- .../card/cardDetail/cardDetail_logic.dart | 9 +++- .../card/cardDetail/cardDetail_page.dart | 22 ++++++++ .../card/cardDetail/cardDetail_state.dart | 2 + .../card/cardList/cardList_logic.dart | 17 +++--- .../card/cardList/cardList_page.dart | 8 +-- .../card/cardList/cardList_state.dart | 4 +- .../otherTypeKeyChangeDate_logic.dart | 18 +++++-- .../otherTypeKeyChangeValidityDate_logic.dart | 18 +++++-- .../face/addFace/addFace_logic.dart | 31 +++-------- .../lockDetail/face/addFace/addFace_page.dart | 52 ++++++++++++++++++- .../addFingerprint/addFingerprint_logic.dart | 33 +++++------- .../addFingerprintType_page.dart | 1 - .../fingerprintDetail_logic.dart | 10 ++-- .../fingerprintDetail_page.dart | 26 +++++++++- .../fingerprintDetail_state.dart | 2 + .../fingerprintListData_entity.dart | 10 +++- .../fingerprintList_logic.dart | 48 +++++------------ .../fingerprintList/fingerprintList_page.dart | 2 - .../fingerprintList_state.dart | 3 +- .../iris/irisDetail/irisDetail_logic.dart | 1 + .../lockDetail/lockDetail_logic.dart | 9 ++++ .../palm/palmDetail/palmDetail_logic.dart | 1 + .../passwordKeyDetail_logic.dart | 14 +++-- .../passwordKeyDetail_page.dart | 32 +++++++++++- .../passwordKeyDetail_state.dart | 5 +- .../passwordKeyDetailChangeDate_logic.dart | 8 ++- .../passwordKeyListEntity.dart | 6 ++- .../passwordKeyList_logic.dart | 19 +++---- .../passwordKeyList/passwordKeyList_page.dart | 5 +- .../passwordKeyList_state.dart | 1 - .../passwordKey_perpetual_logic.dart | 21 +++++--- .../passwordKey_perpetual_page.dart | 2 + .../mine/addLock/saveLock/saveLock_logic.dart | 14 +++-- .../expireCard/expireCard_logic.dart | 8 ++- .../expireFingerprint_logic.dart | 6 ++- star_lock/lib/network/api_provider.dart | 10 +++- star_lock/lib/network/api_repository.dart | 13 +++-- 43 files changed, 388 insertions(+), 174 deletions(-) diff --git a/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart b/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart index fefe7734..d73cbbe3 100644 --- a/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart +++ b/star_lock/lib/blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart @@ -21,6 +21,8 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol { int? fingerNo; int? useCountLimit; int? isForce; + int? operate; + int? isAdmin; List? token; int? isRound; int? weekRound; @@ -38,6 +40,8 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol { this.fingerNo, this.useCountLimit, this.isForce, + this.operate, + this.isAdmin, this.token, this.isRound, this.weekRound, @@ -85,6 +89,14 @@ class SenderAddFingerprintWithTimeCycleCoercionCommand extends SenderProtocol { // UseCountLimit subData.addAll(intChangList(useCountLimit!)); + // Operate 0:注册 1:修改 2:删除 3:删除全部 + subData.add(operate!); + AppLog.log("addFingerprint operate:$operate"); + + // isAdmin + subData.add(isAdmin!); + AppLog.log("addFingerprint isAdmin:$isAdmin"); + // isForce subData.add(isForce!); diff --git a/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart b/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart index 49def20e..d335befb 100644 --- a/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart +++ b/star_lock/lib/blue/io_protocol/io_addICCardWithTimeCycleCoercion.dart @@ -21,6 +21,8 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol { int? cardNo; int? useCountLimit; int? isForce; + int? operate; + int? isAdmin; List? token; int? isRound; int? weekRound; @@ -38,6 +40,8 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol { this.cardNo, this.useCountLimit, this.isForce, + this.operate, + this.isAdmin, this.token, this.isRound, this.weekRound, @@ -80,13 +84,21 @@ class SenderAddICCardWithTimeCycleCoercionCommand extends SenderProtocol { // cardNo subData.addAll(intChangList(cardNo!)); - AppLog.log("cardNo:$cardNo intChangList(cardNo!):${intChangList(cardNo!)}"); // UseCountLimit subData.addAll(intChangList(useCountLimit!)); + // Operate 0:注册 1:修改 2:删除 3:删除全部 + subData.add(operate!); + AppLog.log("addCard operate:$operate"); + + // isAdmin + subData.add(isAdmin!); + AppLog.log("addCard isAdmin:$isAdmin"); + // isForce subData.add(isForce!); + AppLog.log("addCard isForce:$isForce"); // token subData.addAll(token!); diff --git a/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart b/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart index 3d0c7770..9cea82eb 100644 --- a/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart +++ b/star_lock/lib/blue/io_protocol/io_senderCustomPasswords.dart @@ -20,6 +20,8 @@ class SenderCustomPasswordsCommand extends SenderProtocol { String? keyID; String? userID; int? pwdNo; + int? operate; + int? isAdmin; String? pwd; int? useCountLimit; List? token; @@ -33,6 +35,8 @@ class SenderCustomPasswordsCommand extends SenderProtocol { this.keyID, this.userID, this.pwdNo, + this.operate, + this.isAdmin, this.pwd, this.useCountLimit, this.token, @@ -75,6 +79,12 @@ class SenderCustomPasswordsCommand extends SenderProtocol { subData.addAll(intChangList(pwdNo!)); AppLog.log("pwdNo:$pwdNo"); + // Operate 0:注册 1:修改 2:删除 3:删除全部 + subData.add(operate!); + + // isAdmin + subData.add(isAdmin!); + // pwd 20 int pwdLength = utf8.encode(pwd!).length; subData.addAll(utf8.encode(pwd!)); diff --git a/star_lock/lib/blue/io_tool/io_tool.dart b/star_lock/lib/blue/io_tool/io_tool.dart index ad6f1e37..f8dcc00a 100644 --- a/star_lock/lib/blue/io_tool/io_tool.dart +++ b/star_lock/lib/blue/io_tool/io_tool.dart @@ -5,7 +5,7 @@ import 'package:crypto/crypto.dart'; import 'package:flutter/services.dart'; int listChangInt(List list){ - int dataLen = (list[0] << 8) + list[61]; + int dataLen = (list[0] << 8) + list[1]; return dataLen; } diff --git a/star_lock/lib/blue/sender_manage.dart b/star_lock/lib/blue/sender_manage.dart index bcb1612e..f0c64604 100644 --- a/star_lock/lib/blue/sender_manage.dart +++ b/star_lock/lib/blue/sender_manage.dart @@ -280,13 +280,15 @@ class IoSenderManage { {required String? keyID, required String? userID, required int? pwdNo, + required int? operate, + required int? isAdmin, required String? pwd, required int? useCountLimit, required List? token, required int? startTime, required int? endTime, required int? needAuthor, - required bool? isBeforeAddUser, + required bool? isBeforeAddUser, required List? signKey, required List? privateKey, CommandSendCallBack? callBack}) { @@ -295,6 +297,8 @@ class IoSenderManage { keyID: keyID, userID: userID, pwdNo: pwdNo, + operate: operate, + isAdmin: isAdmin, pwd: pwd, useCountLimit: useCountLimit, token: token, @@ -377,6 +381,8 @@ class IoSenderManage { required int? fingerNo, required int? useCountLimit, required int? isForce, + required int? isAdmin, + required int? operate, required List? token, required int? isRound, required int? weekRound, @@ -395,6 +401,8 @@ class IoSenderManage { fingerNo: fingerNo, useCountLimit: useCountLimit, isForce: isForce, + operate: operate, + isAdmin: isAdmin, token: token, isRound: isRound, weekRound: weekRound, @@ -444,6 +452,8 @@ class IoSenderManage { required String? userID, required int? cardNo, required int? useCountLimit, + required int? operate, + required int? isAdmin, required int? isForce, required List? token, required int? isRound, @@ -462,6 +472,8 @@ class IoSenderManage { userID: userID, cardNo: cardNo, useCountLimit: useCountLimit, + operate: operate, + isAdmin: isAdmin, isForce: isForce, token: token, isRound: isRound, diff --git a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart index 2e405f9a..ac4b42a6 100644 --- a/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart +++ b/star_lock/lib/main/lockDetail/card/addICCard/addICCard_logic.dart @@ -50,7 +50,9 @@ class AddICCardLogic extends BaseGetXController{ switch(status){ case 0x00: //成功 - var cardNumber = listChangInt(reply.data.sublist(9, 11)).toString(); + var cardNumberList = reply.data.sublist(reply.data.length - 2); + var cardNumber = listChangInt(cardNumberList).toString(); + // AppLog.log("添加卡号:$cardNumberList cardNumber:$cardNumber"); state.cardNumber.value = cardNumber.toString(); cancelBlueConnetctToastTimer(); state.ifConnectScuess.value = true; @@ -69,13 +71,16 @@ class AddICCardLogic extends BaseGetXController{ var token = reply.data.sublist(5, 9); var saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); + AppLog.log("添加卡token:$token"); IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), - cardNo:state.isAdministrator.value == "2" ? 254 : 0, - useCountLimit:0xff, - isForce:state.isCoerced.value == "1" ? 0 : 1, // 是否是胁迫 + cardNo:0, + useCountLimit:0xffff, + operate:0, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == "2" ? 1 : 0, + isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 startDate: int.parse(state.startDate.value)~/1000, @@ -206,8 +211,10 @@ class AddICCardLogic extends BaseGetXController{ IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), - cardNo:state.isAdministrator.value == "2" ? 254 : 0, - useCountLimit:0xff, + cardNo:0, + useCountLimit:0xffff, + operate:0, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == "2" ? 1 : 0, isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 diff --git a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart index cd320298..91e9a92b 100644 --- a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_logic.dart @@ -66,7 +66,9 @@ class CardDetailLogic extends BaseGetXController{ keyID:state.keyId.value.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.typeNumber.value), - useCountLimit:state.isDeletCard.value == true ? 0 : 0xff, + useCountLimit:0xffff, + operate:state.isDeletCard.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == true ? 1 : 0, isForce:state.isStressCard.value == true ? 1 : 0, // 是否是胁迫 isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -113,7 +115,9 @@ class CardDetailLogic extends BaseGetXController{ keyID:state.keyId.value.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.typeNumber.value), - useCountLimit:state.isDeletCard.value == true ? 0 : 0xff, + useCountLimit:0xffff, + operate:state.isDeletCard.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == true ? 1 : 0, isForce:state.isStressCard.value == true ? 1 : 0, // 是否是胁迫 isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -151,6 +155,7 @@ class CardDetailLogic extends BaseGetXController{ startTime: int.parse(state.starTime.value), endTime: int.parse(state.endTime.value), cardType:state.keyType.value, + cardRight: state.isAdministrator.value ? 1 : 0, ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ diff --git a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart index cb83a71a..ab4977af 100644 --- a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart +++ b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_page.dart @@ -160,8 +160,15 @@ class _CardDetailPageState extends State with RouteAware { leftTitel: TranslationLoader.lanKeys!.stressCard!.tr, rightTitle: "", isTipsImg: false, + isHaveLine: true, isHaveRightWidget: true, rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isStressFingerprint()))), + Obx(() => CommonItem( + leftTitel: "是否是管理员".tr, + rightTitle: "", + isTipsImg: false, + isHaveRightWidget: true, + rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin()))), Container(height: 10.h), CommonItem( leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, @@ -210,6 +217,21 @@ class _CardDetailPageState extends State with RouteAware { ); } + // 是否是管理员 + CupertinoSwitch _isAdmin() { + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: state.isAdministrator.value, + onChanged: (value) { + state.isAdministrator.value = value; + state.isDeletCard.value = false; + logic.senderAddICCard(); + }, + ); + } + @override void didChangeDependencies() { // TODO: implement didChangeDependencies diff --git a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_state.dart b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_state.dart index 0d9683b9..c95c014f 100644 --- a/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_state.dart +++ b/star_lock/lib/main/lockDetail/card/cardDetail/cardDetail_state.dart @@ -14,6 +14,7 @@ class CardDetailState{ var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) var isDeletCard = true.obs;// 是否删除卡 var isStressCard = false.obs;// 是否胁迫 + var isAdministrator = false.obs;// 是否是管理员 final typeNumber = "".obs;// 指纹号 final typeName = "".obs;// 指纹名字 @@ -44,6 +45,7 @@ class CardDetailState{ addTime.value = fingerprintItemData.value.createDate!; isStressCard.value = fingerprintItemData.value.isCoerced! == 2 ? true : false; weekDay.value = fingerprintItemData.value.weekDay!; + isAdministrator.value = fingerprintItemData.value.cardRight! == 1 ? true : false; } } } \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart b/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart index ea8845c8..c96d624a 100644 --- a/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart +++ b/star_lock/lib/main/lockDetail/card/cardList/cardList_logic.dart @@ -29,7 +29,7 @@ class CardListLogic extends BaseGetXController { _replySubscription = EventBusManager().eventBus!.on().listen((reply) { // 添加卡片开始(重置锁里面所有卡) - if((reply is SenderAddICCardWithTimeCycleCoercionReply) && (state.isDeletCardData == true)) { + if((reply is SenderAddICCardWithTimeCycleCoercionReply) && (state.ifCurrentScreen.value == true)) { _replyAddICCardBegin(reply); } @@ -50,7 +50,6 @@ class CardListLogic extends BaseGetXController { switch(status){ case 0x00: //成功 - state.isDeletCardData = false; cancelBlueConnetctToastTimer(); deletICCardData(); break; @@ -71,9 +70,11 @@ class CardListLogic extends BaseGetXController { IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, cardNo:state.deletCardNo, - useCountLimit:0, + useCountLimit:0xffff, + operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 @@ -244,9 +245,11 @@ class CardListLogic extends BaseGetXController { IoSenderManage.senderAddCardWithTimeCycleCoercionCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, cardNo:state.deletCardNo, - useCountLimit:0, + useCountLimit:0xffff, + operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 @@ -321,13 +324,11 @@ class CardListLogic extends BaseGetXController { if(entity.errorCode!.codeIsSuccessful){ if(state.isDeletAll == false){ showToast("删除成功".tr, something: (){ - state.isDeletCardData = false; pageNo = 1; getICCardListData(); }); }else{ showToast("重置成功".tr, something: (){ - state.isDeletCardData = false; pageNo = 1; getICCardListData(); }); diff --git a/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart b/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart index ba42f7dc..762b4792 100644 --- a/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart +++ b/star_lock/lib/main/lockDetail/card/cardList/cardList_page.dart @@ -66,11 +66,9 @@ class _CardListPageState extends State with RouteAware { var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { ShowTipView().showIosTipWithContentDialog("重置后,该锁的卡都将被删除哦,确认要重置吗?".tr, () async { - state.isDeletCardData = true; state.isDeletAll = true; - state.deletKeyID = "1"; - state.deletUserID = "DeleteAll!@#"; - state.deletCardNo = 255; + state.deletKeyID = "0"; + state.deletCardNo = 0; logic.senderAddICCard(); }); // showDeletAlertDialog(context); @@ -138,9 +136,7 @@ class _CardListPageState extends State with RouteAware { SlidableAction( onPressed: (BuildContext context){ ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, () async { - state.isDeletCardData = true; state.isDeletAll = false; - state.deletUserID = (await Storage.getUid())!; state.deletKeyID = fingerprintItemData.cardId.toString(); state.deletCardNo = int.parse(fingerprintItemData.cardNumber!); state.fingerprintDeletItem = fingerprintItemData; diff --git a/star_lock/lib/main/lockDetail/card/cardList/cardList_state.dart b/star_lock/lib/main/lockDetail/card/cardList/cardList_state.dart index 5d9a6ab5..9b06278b 100644 --- a/star_lock/lib/main/lockDetail/card/cardList/cardList_state.dart +++ b/star_lock/lib/main/lockDetail/card/cardList/cardList_state.dart @@ -7,10 +7,8 @@ class CardListState { final lockId = 0.obs; // 因为删除跟添加指纹用的同一个协议 所以这里用做判断 - var isDeletCardData = false; var isDeletAll = false; - var deletKeyID = ""; - var deletUserID = "DeleteAll!@#"; + var deletKeyID = "0"; var deletCardNo = 0; final fingerprintItemListData = [].obs; diff --git a/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeDate/otherTypeKeyChangeDate_logic.dart b/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeDate/otherTypeKeyChangeDate_logic.dart index c400d4c3..78373f63 100644 --- a/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeDate/otherTypeKeyChangeDate_logic.dart +++ b/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeDate/otherTypeKeyChangeDate_logic.dart @@ -170,7 +170,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.cardId!.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.fingerprintItemData.value.cardNumber!), - useCountLimit:0xff , + useCountLimit:0xffff, + operate: 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.cardRight!, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环 @@ -217,7 +219,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.fingerprintId.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!), - useCountLimit:0xff, + useCountLimit:0xffff, + operate:1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.fingerRight, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环 @@ -267,7 +271,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.fingerprintId.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!), - useCountLimit:0xff, + useCountLimit:0xffff, + operate:1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.fingerRight, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环 @@ -319,7 +325,9 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.cardId!.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.fingerprintItemData.value.cardNumber!), - useCountLimit:0xff , + useCountLimit:0xffff, + operate: 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.cardRight!, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.fingerprintItemData.value.weekDay!), // 周循环 @@ -357,6 +365,7 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ startTime: 0, endTime: 0, fingerprintType: state.fingerprintItemData.value.fingerprintType! == 4 ? 4 : 2, + fingerRight: state.fingerprintItemData.value.fingerRight!, ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ @@ -383,6 +392,7 @@ class OtherTypeKeyChangeDateLogic extends BaseGetXController{ startTime: 0, endTime: 0, cardType: 2,// 2:限时 无论之前是永久还是限时,修改之后都是限时 + cardRight: state.fingerprintItemData.value.cardRight!, ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ diff --git a/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeValidityDate/otherTypeKeyChangeValidityDate_logic.dart b/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeValidityDate/otherTypeKeyChangeValidityDate_logic.dart index c1eb0e14..f1bdffb8 100644 --- a/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeValidityDate/otherTypeKeyChangeValidityDate_logic.dart +++ b/star_lock/lib/main/lockDetail/card/otherTypeKeyChangeValidityDate/otherTypeKeyChangeValidityDate_logic.dart @@ -172,7 +172,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.cardId!.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.fingerprintItemData.value.cardNumber!), - useCountLimit:0xff , + useCountLimit:0xffff, + operate: 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.isCoerced!, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:1, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -219,7 +221,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.fingerprintId.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!), - useCountLimit:0xff, + useCountLimit:0xffff, + operate:1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.fingerRight, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:1, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -269,7 +273,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.fingerprintId.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.fingerprintItemData.value.fingerprintNumber!), - useCountLimit:0xff, + useCountLimit:0xffff, + operate:1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.fingerRight, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:1, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -321,7 +327,9 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ keyID:state.fingerprintItemData.value.cardId!.toString(), userID:await Storage.getUid(), cardNo:int.parse(state.fingerprintItemData.value.cardNumber!), - useCountLimit:0xff , + useCountLimit:0xffff, + operate: 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.fingerprintItemData.value.isCoerced!, isForce:state.fingerprintItemData.value.isCoerced, // 是否是胁迫 isRound:1, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -359,6 +367,7 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ startTime: state.starTimeTimestamp.value, endTime: state.endTimeTimestamp.value, fingerprintType: state.fingerprintItemData.value.fingerprintType!, + fingerRight: state.fingerprintItemData.value.fingerRight! ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ @@ -388,6 +397,7 @@ class OtherTypeKeyChangeValidityDateLogic extends BaseGetXController{ startTime: state.starTimeTimestamp.value, endTime: state.endTimeTimestamp.value, cardType: state.fingerprintItemData.value.cardType!, + cardRight: state.fingerprintItemData.value.cardRight! ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ diff --git a/star_lock/lib/main/lockDetail/face/addFace/addFace_logic.dart b/star_lock/lib/main/lockDetail/face/addFace/addFace_logic.dart index 73d7883e..37aa9891 100644 --- a/star_lock/lib/main/lockDetail/face/addFace/addFace_logic.dart +++ b/star_lock/lib/main/lockDetail/face/addFace/addFace_logic.dart @@ -26,7 +26,7 @@ class AddFaceLogic extends BaseGetXController { _replySubscription = EventBusManager().eventBus!.on().listen((reply) async { // 添加人脸开始 - if (reply is SenderAddFaceReply) { + if (reply is SenderAddFaceReply && state.ifCurrentScreen.value == true) { _replyAddFaceBegin(reply); } @@ -44,27 +44,16 @@ class AddFaceLogic extends BaseGetXController { Future _replyAddFaceBegin(Reply reply) async { int status = reply.data[2]; - switch (status) { case 0x00: //成功 - state.ifConnectScuess.value = true; // 最大图片数 - state.maxRegCount.value = reply.data[10]; + state.maxRegCount.value = reply.data[11]; // AppLog.log("人脸开始state.maxRegCount.value:${state.maxRegCount.value}"); break; case 0x06: //无权限 - var weekStr = "00000000"; - for (var day in state.weekDay.value) { - int index = day % 7; // 将周日的索引转换为 0 - weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; - } - // 倒序 weekStr - weekStr = weekStr.split('').reversed.join(''); - int weekRound = int.parse(weekStr, radix: 2); - var signKey = await Storage.getStringList(saveBlueSignKey); List signKeyDataList = changeStringListToIntList(signKey!); @@ -82,7 +71,7 @@ class AddFaceLogic extends BaseGetXController { useCountLimit:0xff, isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 - weekRound:weekRound, // 周循环 + weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 startDate: int.parse(state.startDate.value)~/1000, endDate: int.parse(state.endDate.value)~/1000, startTime:DateTool().dateToHNString(state.effectiveDateTime.value), @@ -132,7 +121,9 @@ class AddFaceLogic extends BaseGetXController { switch (status) { case 0x00: //成功 - var faceNumber = listChangInt(reply.data.sublist(6, 7)).toString(); + var faceList = reply.data.sublist(reply.data.length - 2); + var faceNumber = listChangInt(faceList).toString(); + // var faceNumber = listChangInt(reply.data.sublist(6, 7)).toString(); // if (state.faceNumber.value == (reply.data[6]).toString()) { if (state.faceNumber.value == faceNumber) { return; @@ -160,14 +151,6 @@ class AddFaceLogic extends BaseGetXController { (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected) { cancelBlueConnetctToastTimer(); - var weekStr = "00000000"; - for (var day in state.weekDay.value) { - int index = day % 7; // 将周日的索引转换为 0 - weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; - } - // 倒序 weekStr - weekStr = weekStr.split('').reversed.join(''); - int weekRound = int.parse(weekStr, radix: 2); var signKey = await Storage.getStringList(saveBlueSignKey); List signKeyDataList = changeStringListToIntList(signKey!); @@ -185,7 +168,7 @@ class AddFaceLogic extends BaseGetXController { useCountLimit:0xff, isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 - weekRound:weekRound, // 周循环 + weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 startDate: int.parse(state.startDate.value)~/1000, endDate: int.parse(state.endDate.value)~/1000, startTime:DateTool().dateToHNString(state.effectiveDateTime.value), diff --git a/star_lock/lib/main/lockDetail/face/addFace/addFace_page.dart b/star_lock/lib/main/lockDetail/face/addFace/addFace_page.dart index bd015c22..024736d7 100644 --- a/star_lock/lib/main/lockDetail/face/addFace/addFace_page.dart +++ b/star_lock/lib/main/lockDetail/face/addFace/addFace_page.dart @@ -1,3 +1,4 @@ + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -7,6 +8,7 @@ import '../../../../../app_settings/app_colors.dart'; import '../../../../../tools/submitBtn.dart'; import '../../../../../tools/titleAppBar.dart'; import '../../../../../translations/trans_lib.dart'; +import '../../../../tools/appRouteObserver.dart'; class AddFacePage extends StatefulWidget { const AddFacePage({Key? key}) : super(key: key); @@ -15,7 +17,7 @@ class AddFacePage extends StatefulWidget { State createState() => _AddFacePageState(); } -class _AddFacePageState extends State { +class _AddFacePageState extends State with RouteAware { final logic = Get.put(AddFaceLogic()); final state = Get.find().state; @@ -93,4 +95,52 @@ class _AddFacePageState extends State { ), ); } + + @override + void didChangeDependencies() { + // TODO: implement didChangeDependencies + super.didChangeDependencies(); + + /// 路由订阅 + AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!); + } + + @override + void dispose() { + // TODO: implement dispose + /// 取消路由订阅 + AppRouteObserver().routeObserver.unsubscribe(this); + super.dispose(); + } + + /// 从上级界面进入 当前界面即将出现 + @override + void didPush() { + super.didPush(); + state.ifCurrentScreen.value = true; + } + + /// 返回上一个界面 当前界面即将消失 + @override + void didPop() { + super.didPop(); + logic.cancelBlueConnetctToastTimer(); + state.ifCurrentScreen.value = false; + } + + /// 从下级返回 当前界面即将出现 + @override + void didPopNext() { + super.didPopNext(); + state.ifCurrentScreen.value = true; + } + + /// 进入下级界面 当前界面即将消失 + @override + void didPushNext() { + super.didPushNext(); + logic.cancelBlueConnetctToastTimer(); + + state.ifCurrentScreen.value = false; + } } diff --git a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart index 76fe577d..674e879e 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/addFingerprint/addFingerprint_logic.dart @@ -57,7 +57,7 @@ class AddFingerprintLogic extends BaseGetXController { state.ifConnectScuess.value = true; // 最大图片数 - state.maxRegCount.value = reply.data[10]; + state.maxRegCount.value = reply.data[11]; // AppLog.log("state.maxRegCount.value:${state.maxRegCount.value}"); // state.fingerprintNumber.value = reply.data.last.toString(); break; @@ -66,9 +66,6 @@ class AddFingerprintLogic extends BaseGetXController { var privateKey = await Storage.getStringList(saveBluePrivateKey); List getPrivateKeyList = changeStringListToIntList(privateKey!); - // var publicKey = await Storage.getStringList(saveBluePublicKey); - // List publicKeyDataList = changeStringListToIntList(publicKey!); - var signKey = await Storage.getStringList(saveBlueSignKey); List signKeyDataList = changeStringListToIntList(signKey!); @@ -76,21 +73,14 @@ class AddFingerprintLogic extends BaseGetXController { var saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); - // var weekStr = "00000000"; - // for (var day in state.weekDay.value) { - // int index = day % 7; // 将周日的索引转换为 0 - // weekStr = '${weekStr.substring(0, index)}1${weekStr.substring(index + 1)}'; - // } - // // 倒序 weekStr - // weekStr = weekStr.split('').reversed.join(''); - // int weekRound = int.parse(weekStr, radix: 2); - IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), - fingerNo:state.isAdministrator.value == "2" ? 254 : 0, - useCountLimit:0xff, - isForce:state.isCoerced.value == "1" ? 1 : 0, // 是否是胁迫 + fingerNo:0, + useCountLimit:0xffff, + isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 + isAdmin: state.isAdministrator.value == "2" ? 1 : 0, + operate: 0, isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 startDate: int.parse(state.startDate.value)~/1000, @@ -156,7 +146,10 @@ class AddFingerprintLogic extends BaseGetXController { switch(status){ case 0x00: //成功 - var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString(); + // var fingerprintNum = listChangInt(reply.data.sublist(9, 11)).toString(); + var fingerprintList = reply.data.sublist(reply.data.length - 2); + var fingerprintNum = listChangInt(fingerprintList).toString(); + if(state.fingerprintNumber.value == fingerprintNum){ return; }else{ @@ -250,9 +243,11 @@ class AddFingerprintLogic extends BaseGetXController { IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:"1", userID:await Storage.getUid(), - fingerNo:state.isAdministrator.value == "2" ? 254 : 0, - useCountLimit:0xff, + fingerNo:0, + useCountLimit:0xffff, isForce:state.isCoerced.value == "2" ? 1 : 0, // 是否是胁迫 + isAdmin: state.isAdministrator.value == "2" ? 1 : 0, + operate: 0, isRound:state.selectType.value == "2" ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 startDate: int.parse(state.startDate.value)~/1000, diff --git a/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart b/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart index f396279c..c99246b7 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart @@ -95,7 +95,6 @@ class _AddFingerprintTypePageState extends State with Si TranslationLoader.lanKeys!.pleaseEnter!.tr, state.nameController), keyTimeLimitWidget(), - SizedBox(height: 10.h), keyBottomWidget() ], ), diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart index a1e602d2..b1a01f56 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_logic.dart @@ -3,7 +3,6 @@ import 'dart:async'; 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/tools/baseGetXController.dart'; import '../../../../blue/blue_manage.dart'; import '../../../../blue/io_protocol/io_addFingerprintWithTimeCycleCoercion.dart'; @@ -66,7 +65,9 @@ class FingerprintDetailLogic extends BaseGetXController{ keyID:state.keyId.value.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.typeNumber.value), - useCountLimit:state.isDeletFingerprint.value == true ? 0 : 0xff, + useCountLimit:0xffff, + operate:state.isDeletFingerprint.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == true ? 1 : 0, isForce:state.isStressFingerprint.value == true ? 1 : 0, // 是否是胁迫 isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -116,7 +117,9 @@ class FingerprintDetailLogic extends BaseGetXController{ keyID:state.keyId.value.toString(), userID:await Storage.getUid(), fingerNo:int.parse(state.typeNumber.value), - useCountLimit:state.isDeletFingerprint.value == true ? 0 : 0xff, + useCountLimit:0xffff, + operate:state.isDeletFingerprint.value ? 2 : 1, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:state.isAdministrator.value == true ? 1 : 0, isForce:state.isStressFingerprint.value == true ? 1 : 0, // 是否是胁迫 isRound:state.keyType.value == 4 ? 1: 0, // 是否是循环 weekRound:DateTool().accordingTheCycleIntoTheCorrespondingNumber(state.weekDay.value), // 周循环 @@ -169,6 +172,7 @@ class FingerprintDetailLogic extends BaseGetXController{ startTime: int.parse(state.startDate.value), endTime: int.parse(state.endTime.value), fingerprintType: state.fingerprintItemData.value.fingerprintType!, + fingerRight: state.isAdministrator.value ? 1 : 0, ); if(entity.errorCode!.codeIsSuccessful){ showToast("修改成功".tr, something: (){ diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart index d2b97f6a..61c4bea5 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_page.dart @@ -167,8 +167,15 @@ class _FingerprintDetailPageState extends State with Rout rightTitle: "", isTipsImg: false, isHaveRightWidget: true, + isHaveLine: true, rightWidget: SizedBox( width: 60.w, height: 50.h, child: _isStressFingerprint()))), + Obx(() => CommonItem( + leftTitel: "是否是管理员".tr, + rightTitle: "", + isTipsImg: false, + isHaveRightWidget: true, + rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin()))), Container(height: 10.h), CommonItem( leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, @@ -192,6 +199,7 @@ class _FingerprintDetailPageState extends State with Rout padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: () { ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, () async { + state.isDeletFingerprint.value = true; logic.senderAddFingerprint(); }); }), @@ -210,12 +218,28 @@ class _FingerprintDetailPageState extends State with Rout onChanged: (value) { setState(() { state.isStressFingerprint.value = value; - logic.editFingerprintsData(); + state.isDeletFingerprint.value = false; + logic.senderAddFingerprint(); }); }, ); } + // 是否是管理员 + CupertinoSwitch _isAdmin() { + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: state.isAdministrator.value, + onChanged: (value) { + state.isAdministrator.value = value; + state.isDeletFingerprint.value = false; + logic.senderAddFingerprint(); + }, + ); + } + @override void didChangeDependencies() { // TODO: implement didChangeDependencies diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_state.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_state.dart index 211e68bc..746c93b2 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_state.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintDetail/fingerprintDetail_state.dart @@ -25,6 +25,7 @@ class FingerprintDetailState{ var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) var isDeletFingerprint = true.obs;// 是否删除卡 final isStressFingerprint = false.obs; + var isAdministrator = false.obs;// 是否是管理员 FingerprintDetailState() { Map map = Get.arguments; @@ -43,6 +44,7 @@ class FingerprintDetailState{ addTime.value = fingerprintItemData.value.createDate!; isStressFingerprint.value = fingerprintItemData.value.isCoerced! == 2 ? true : false; weekDay.value = fingerprintItemData.value.weekDay!; + isAdministrator.value = fingerprintItemData.value.fingerRight! == 1 ? true : false; } } } \ No newline at end of file diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart index 5a00da5d..920eec33 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintListData_entity.dart @@ -77,12 +77,14 @@ class FingerprintItemData { String? senderUsername; List? weekDay; String? validTimeStr; + int? fingerRight; String? cardName; String? cardNumber; int? cardType; int? cardId; int? cardStatus; + int? cardRight; int? faceId; String? faceName; @@ -123,7 +125,9 @@ class FingerprintItemData { this.cyclicConfig, this.featureData, this.faceRight, - this.cardStatus}); + this.cardStatus, + this.cardRight, + this.fingerRight}); FingerprintItemData.fromJson(Map json) { fingerprintStatus = json['fingerprintStatus']; @@ -155,6 +159,8 @@ class FingerprintItemData { featureData = json['featureData']; faceRight = json['faceRight']; cardStatus = json['cardStatus']; + cardRight = json['cardRight']; + fingerRight = json['fingerRight']; } Map toJson() { @@ -188,6 +194,8 @@ class FingerprintItemData { data['featureData'] = featureData; data['faceRight'] = faceRight; data['cardStatus'] = cardStatus; + data['cardRight'] = cardRight; + data['fingerRight'] = fingerRight; return data; } } diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart index 7f7fc8d8..eefc412d 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart @@ -63,30 +63,17 @@ class FingerprintListLogic extends BaseGetXController{ var signKey = await Storage.getStringList(saveBlueSignKey); List signKeyDataList = changeStringListToIntList(signKey!); - // var publicKey = await Storage.getStringList(saveBluePublicKey); - // List publicKeyDataList = changeStringListToIntList(publicKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - // IoSenderManage.senderAddFingerprintCommand( - // keyID:state.deletKeyID, - // userID:state.deletUserID, - // fingerNo:state.deletFingerNo, - // useCountLimit:0, - // startTime:0x11223344, - // endTime:0x11223344, - // needAuthor:1, - // signKey:signKeyDataList, - // privateKey:getPrivateKeyList, - // token: getTokenList, - // ); + var token = reply.data.sublist(5, 9); + var saveStrList = changeIntListToStringList(token); + Storage.setStringList(saveBlueToken, saveStrList); IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, fingerNo:state.deletFingerNo, - useCountLimit:0, + useCountLimit:0xffff, + operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 @@ -97,7 +84,7 @@ class FingerprintListLogic extends BaseGetXController{ needAuthor:1, signKey:signKeyDataList, privateKey:getPrivateKeyList, - token: getTokenList, + token: token, ); break; default: @@ -278,9 +265,11 @@ class FingerprintListLogic extends BaseGetXController{ IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, fingerNo:state.deletFingerNo, - useCountLimit:0, + useCountLimit:0xffff, + operate: state.isDeletAll == true ? 3 : 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 @@ -293,19 +282,6 @@ class FingerprintListLogic extends BaseGetXController{ privateKey:getPrivateKeyList, token: getTokenList, ); - - // IoSenderManage.senderAddFingerprintCommand( - // keyID:state.deletKeyID, - // userID:state.deletUserID, - // fingerNo:state.deletFingerNo, - // useCountLimit:0, - // startTime:0x11223344, - // endTime:0x11223344, - // needAuthor:1, - // signKey:signKeyDataList, - // privateKey:getPrivateKeyList, - // token: getTokenList, - // ); } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { dismissEasyLoading(); cancelBlueConnetctToastTimer(); diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart index 86ecc688..7d6f9d7b 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_page.dart @@ -72,7 +72,6 @@ class _FingerprintListPageState extends State with RouteAwa state.isDeletFingerprintData = true; state.isDeletAll = true; state.deletKeyID = "1"; - state.deletUserID = "DeleteAll!@#"; state.deletFingerNo = 255; logic.senderAddFingerprint(); }); @@ -145,7 +144,6 @@ class _FingerprintListPageState extends State with RouteAwa state.isDeletFingerprintData = true; state.isDeletAll = false; state.deletKeyID = fingerprintItemData.fingerprintId.toString(); - state.deletUserID = (await Storage.getUid())!; logic.senderAddFingerprint(); }); }, diff --git a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart index d2049fdd..e9c8b0f2 100644 --- a/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart +++ b/star_lock/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_state.dart @@ -10,8 +10,7 @@ class FingerprintListState{ // 因为删除跟添加指纹用的同一个协议 所以这里用做判断 var isDeletFingerprintData = false; var isDeletAll = false; - var deletKeyID = ""; - var deletUserID = "DeleteAll!@#"; + var deletKeyID = "0"; var deletFingerNo = 0; final fingerprintItemListData = [].obs; diff --git a/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart b/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart index 71422e46..4cff3b34 100644 --- a/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/iris/irisDetail/irisDetail_logic.dart @@ -144,6 +144,7 @@ class IrisDetailLogic extends BaseGetXController { startTime: int.parse(state.starTime.value), endTime: int.parse(state.endTime.value), cardType: state.keyType.value, + cardRight: 0, ); if (entity.errorCode!.codeIsSuccessful) { showToast("修改成功", something: () { diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index b1fc67d6..8935f0c8 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -586,6 +586,15 @@ class LockDetailLogic extends BaseGetXController { await PermissionDialog.request(Permission.location); await PermissionDialog.requestBluetooth(); + + var vendorStr = utf8String([84, 77, 72, 95, 100, 99, 56, 102, 57, 50, + 56, 51, 54, 57, 101, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ]); + AppLog.log("LockID :$vendorStr"); + + var userID = utf8String([51, 50, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + AppLog.log("userID :$userID"); } } diff --git a/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart b/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart index 780e5189..51faf569 100644 --- a/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/palm/palmDetail/palmDetail_logic.dart @@ -143,6 +143,7 @@ class PalmDetailLogic extends BaseGetXController { startTime: int.parse(state.starTime.value), endTime: int.parse(state.endTime.value), cardType: state.keyType.value, + cardRight: 0, ); if (entity.errorCode!.codeIsSuccessful) { showToast("修改成功", something: () { diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart index 08fbbbcb..069bc4e4 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_logic.dart @@ -25,7 +25,6 @@ class PasswordKeyDetailLogic extends BaseGetXController { void _initReplySubscription() { _replySubscription = EventBusManager().eventBus!.on().listen((reply) async { // 设置自定义密码 - AppLog.log("ifCurrentScreen:${state.ifCurrentScreen.value}"); if ((reply is SenderCustomPasswordsReply) && (state.ifCurrentScreen.value == true)) { int status = reply.data[2]; switch (status) { @@ -56,8 +55,10 @@ class PasswordKeyDetailLogic extends BaseGetXController { keyID:state.itemData.value.keyboardPwdId!.toString(), userID:await Storage.getUid(), pwdNo: state.itemData.value.pwdUserNo!, - pwd: state.isDeletPasswordKey.value == true ? "000000" : state.inputPwdController.text, - useCountLimit: state.isDeletPasswordKey.value == true ? 0 : 0xff, + pwd: state.isDeletPasswordKey.value == true ? "0" : state.inputPwdController.text, + useCountLimit: 0xffff, + operate: state.isDeletPasswordKey.value == true ? 2 : 1, + isAdmin: state.isAdministrator.value == true ? 1 : 0, startTime:state.itemData.value.startDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000, needAuthor: 1, @@ -150,12 +151,15 @@ class PasswordKeyDetailLogic extends BaseGetXController { // signKey: signKeyDataList, // privateKey: getPrivateKeyList, // token: getTokenList); + IoSenderManage.senderCustomPasswordsCommand( keyID:state.itemData.value.keyboardPwdId!.toString(), userID:await Storage.getUid(), pwdNo: state.itemData.value.pwdUserNo!, - pwd: state.isDeletPasswordKey.value == true ? "000000" : state.inputPwdController.text, - useCountLimit: state.isDeletPasswordKey.value == true ? 0 : 0xff, + pwd: state.isDeletPasswordKey.value == true ? "0" : state.inputPwdController.text, + useCountLimit: 0xffff, + operate: state.isDeletPasswordKey.value == true ? 2 : 1, + isAdmin: state.isAdministrator.value == true ? 1 : 0, startTime:state.itemData.value.startDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000, needAuthor: 1, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart index acab5ab7..3c98479a 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_page.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -113,6 +114,20 @@ class _PasswordKeyDetailPageState extends State with Rout rightTitle: getSenderDate(state.itemData.value), action: () {}), Container(height: 10.h), + Obx(() => Visibility( + visible: state.itemData.value.isCustom! == 1, + child: Column( + children: [ + CommonItem( + leftTitel: "管理员".tr, + rightTitle: "", + isTipsImg: false, + isHaveRightWidget: true, + rightWidget: SizedBox(width: 60.w, height: 50.h, child: _isAdmin())), + Container(height: 10.h), + ], + ), + )), CommonItem( leftTitel: TranslationLoader.lanKeys!.operatingRecord!.tr, rightTitle: "", @@ -202,7 +217,6 @@ class _PasswordKeyDetailPageState extends State with Rout onClick: () { ShowTipView().showIosTipWithContentDialog("确定要删除吗?".tr, (){ state.isDeletPasswordKey.value = true; - state.ifCurrentScreen.value = true; if(state.itemData.value.isCustom! == 1){ // 自定义密码 logic.senderCustomPasswords(); @@ -217,6 +231,21 @@ class _PasswordKeyDetailPageState extends State with Rout )); } + // 是否是管理员 + CupertinoSwitch _isAdmin() { + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: state.isAdministrator.value, + onChanged: (value) { + state.isAdministrator.value = value; + state.isDeletPasswordKey.value = false; + logic.senderCustomPasswords(); + }, + ); + } + //发送时间 String getSenderDate(PasswordKeyListItem indexEntity) { String senderDate = ''; @@ -257,7 +286,6 @@ class _PasswordKeyDetailPageState extends State with Rout logic.updatePwdRequest(1); }else{ // 修改密码 - state.ifCurrentScreen.value = true; logic.senderCustomPasswords(); } }, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_state.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_state.dart index d848989e..591739c1 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_state.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetail/passwordKeyDetail_state.dart @@ -17,7 +17,8 @@ class PasswordKeyDetailState { var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) final passwordKeyNumber = "".obs;// 密码号 - var isDeletPasswordKey = true.obs;// 是否删除卡 + var isDeletPasswordKey = true.obs;// 是否删除密码 + var isAdministrator = false.obs;// 是否是管理员 PasswordKeyDetailState() { Map map = Get.arguments; @@ -29,7 +30,7 @@ class PasswordKeyDetailState { inputPwdController.text = itemData.value.keyboardPwd!; keyId.value = itemData.value.keyboardPwdId!; keyboardUserNo.value = itemData.value.pwdUserNo!; - + isAdministrator.value = itemData.value.pwdRight! == 1 ? true : false; // startDate.value = itemData.value.startDate!; // endDate.value = itemData.value.endDate!; // hoursStart.value = itemData.value.hoursStart!; diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart index d80f9f80..6cf6bec5 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyDetailChangeDate/passwordKeyDetailChangeDate_logic.dart @@ -51,7 +51,9 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController { userID:await Storage.getUid(), pwdNo: state.itemData.value.pwdUserNo!, pwd: state.itemData.value.keyboardPwd!.toString(), - useCountLimit: 0xff, + operate: 1, + isAdmin: 0, + useCountLimit: 0xffff, startTime:state.itemData.value.startDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000, needAuthor: 1, @@ -131,7 +133,9 @@ class PasswordKeyDetailChangeDateLogic extends BaseGetXController { userID:await Storage.getUid(), pwdNo: state.itemData.value.pwdUserNo!, pwd: state.itemData.value.keyboardPwd!.toString(), - useCountLimit: 0xff, + operate: 1, + isAdmin: state.itemData.value.pwdUserNo!, + useCountLimit: 0xffff, startTime:state.itemData.value.startDate! ~/ 1000, endTime:state.itemData.value.endDate! ~/ 1000, needAuthor: 1, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart index fd087ec4..a0a89990 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart @@ -83,6 +83,7 @@ class PasswordKeyListItem { int? hoursStart; int? hoursEnd; int? pwdUserNo; + int? pwdRight; PasswordKeyListItem( {this.apiUserId, @@ -102,7 +103,8 @@ class PasswordKeyListItem { this.isCoerced, this.hoursStart, this.hoursEnd, - this.pwdUserNo}); + this.pwdUserNo, + this.pwdRight}); PasswordKeyListItem.fromJson(Map json) { apiUserId = json['apiUserId']; @@ -123,6 +125,7 @@ class PasswordKeyListItem { hoursStart = json['hoursStart']; hoursEnd = json['hoursEnd']; pwdUserNo = json['pwdUserNo']; + pwdRight = json['pwdRight']; } Map toJson() { @@ -145,6 +148,7 @@ class PasswordKeyListItem { data['hoursStart'] = hoursStart; data['hoursEnd'] = hoursEnd; data['pwdUserNo'] = pwdUserNo; + data['pwdRight'] = pwdRight; return data; } } diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart index 7ab748e8..9ef541bc 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_logic.dart @@ -2,8 +2,6 @@ import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; -import 'package:star_lock/app_settings/app_settings.dart'; -import 'package:star_lock/blue/io_type.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -41,7 +39,6 @@ class PasswordKeyListLogic extends BaseGetXController { switch(status){ case 0x00: //成功 - state.isDeletPWDData = false; cancelBlueConnetctToastTimer(); if(state.isDeletAll){ resetPasswordKeyListRequest(); @@ -66,10 +63,12 @@ class PasswordKeyListLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, pwdNo:state.pwdNo, - pwd:"000000",//state.deletPWD, - useCountLimit: 0, + pwd:"0",//state.deletPWD, + operate: state.isDeletAll ? 3 : 2, + isAdmin: 0, + useCountLimit: 0xffff, startTime:0x11223344, endTime:0x11223344, needAuthor: 1, @@ -155,10 +154,12 @@ class PasswordKeyListLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID:state.deletKeyID, - userID:state.deletUserID, + userID:(await Storage.getUid())!, pwdNo:state.pwdNo, - pwd:"000000",//state.deletPWD, - useCountLimit: 0, + pwd:"0",//state.deletPWD, + operate: state.isDeletAll ? 3 : 2, + isAdmin: 0, + useCountLimit: 0xffff, startTime:0x11223344, endTime:0x11223344, needAuthor: 1, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart index c669ff2a..ecb0dabe 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_page.dart @@ -62,12 +62,11 @@ class _PasswordKeyListPageState extends State with RouteAwa var isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { ShowTipView().showIosTipWithContentDialog('该锁的密码都将被删除'.tr, () { - state.isDeletPWDData = true; state.isDeletAll = true; state.deletKeyID = "0"; - state.deletUserID = "DeleteAll!@#"; + state.deletUserID = "0"; // state.deletPWD = ""; - state.pwdNo = 255; + state.pwdNo = 0; logic.senderCustomPasswords(); }); diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart index 9e53ff2b..81f4e0c6 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKeyList/passwordKeyList_state.dart @@ -14,7 +14,6 @@ class PasswordKeyListState { var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用) // 因为删除跟添加指纹用的同一个协议 所以这里用做判断 - var isDeletPWDData = false; var isDeletAll = false; var deletKeyID = ""; var deletUserID = "DeleteAll!@#"; diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart index 868eae47..bf2a84bc 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart @@ -154,7 +154,8 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { keyboardPwdType:getKeyType, startDate:getEffectiveDateTime, endDate:getFailureDateTime, - addType:'1'); + addType:'1', + pwdRight:state.isAdministrator.value == true ? 1 : 0,); if (entity.errorCode!.codeIsSuccessful) { state.isSendSuccess.value = true; state.sendSucceedType.value = state.widgetType.value; @@ -235,9 +236,11 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID: "1", userID: await Storage.getUid(), - pwdNo: state.isAdministrator.value == true ? 254 : 0, + pwdNo: 0, pwd:state.pwdController.text, - useCountLimit: 0xff, + operate: 0, + isAdmin: state.isAdministrator.value == true ? 1 : 0, + useCountLimit: 0xffff, startTime: DateTool().dateToTimestamp(state.customBeginTime.value, 1)~/1000, endTime: DateTool().dateToTimestamp(state.customEndTime.value, 1)~/1000, needAuthor: 1, @@ -316,11 +319,13 @@ class PasswordKeyPerpetualLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID: "1", userID: await Storage.getUid(), - pwdNo: state.isAdministrator.value == true ? 254 : 0, - pwd: state.pwdController.text, - useCountLimit: 0xff, - startTime:state.isPermanent.value == false ? startDate ~/ 1000 : 0, - endTime: state.isPermanent.value == false ? endDate ~/ 1000 : 0, + pwdNo: 0, + pwd:state.pwdController.text, + operate: 0, + isAdmin: state.isAdministrator.value == true ? 1 : 0, + useCountLimit: 0xffff, + startTime: DateTool().dateToTimestamp(state.customBeginTime.value, 1)~/1000, + endTime: DateTool().dateToTimestamp(state.customEndTime.value, 1)~/1000, needAuthor: 1, isBeforeAddUser: false, signKey: signKeyDataList, diff --git a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart index 6a49f621..defaa641 100644 --- a/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart +++ b/star_lock/lib/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_page.dart @@ -6,6 +6,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKey_perpetual_logic.dart'; import 'package:star_lock/tools/commonDataManage.dart'; import 'package:star_lock/tools/pickers/pickers.dart'; @@ -580,6 +581,7 @@ class _PasswordKeyPerpetualPageState extends State wit value: state.isAdministrator.value, onChanged: (value) { state.isAdministrator.value = value; + AppLog.log("isAdministrator:${state.isAdministrator.value}"); }, ); } diff --git a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart index b3f68f1e..45b0012d 100644 --- a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart +++ b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart @@ -119,9 +119,11 @@ class SaveLockLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID: "1", userID: await Storage.getUid(), - pwdNo: 254, + pwdNo: 0, pwd: state.adminPasswordTF.text, - useCountLimit: 0xff, + operate: 0, + isAdmin: 1, + useCountLimit: 0xffff, startTime: 0x11223344, endTime: 0x11223344, needAuthor: 1, @@ -256,9 +258,11 @@ class SaveLockLogic extends BaseGetXController { IoSenderManage.senderCustomPasswordsCommand( keyID: "1", userID: await Storage.getUid(), - pwdNo: 254, - pwd:state.adminPasswordTF.text, - useCountLimit: 0xff, + pwdNo: 0, + pwd: state.adminPasswordTF.text, + operate: 0, + isAdmin: 1, + useCountLimit: 0xffff, startTime: 0x11223344, endTime: 0x11223344, needAuthor: 1, diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart index 92a8f978..7829c717 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireCard/expireCard_logic.dart @@ -61,7 +61,9 @@ class ExpireCardLogic extends BaseGetXController { keyID:"1", userID:await Storage.getUid(), cardNo:state.deletExpireCardItemEntity.cardUserNo!, - useCountLimit:0xff, + useCountLimit:0xffff, + operate: 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 @@ -110,7 +112,9 @@ class ExpireCardLogic extends BaseGetXController { keyID:"1", userID:await Storage.getUid(), cardNo:state.deletExpireCardItemEntity.cardUserNo!, - useCountLimit:0xff, + useCountLimit:0xffff, + operate: 2, // 0:注册 1:修改 2:删除 3:删除全部 + isAdmin:0, isForce:0, // 是否是胁迫 isRound:0, // 是否是循环 weekRound:0, // 周循环 diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart index a60c5bfd..bfacb509 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireFingerprint/expireFingerprint_logic.dart @@ -74,6 +74,8 @@ class ExpireFingerprintLogic extends BaseGetXController { signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, + isAdmin: 0, + operate: 0, ); break; default: @@ -107,8 +109,6 @@ class ExpireFingerprintLogic extends BaseGetXController { var token = await Storage.getStringList(saveBlueToken); List getTokenList = changeStringListToIntList(token!); - String? userID = await Storage.getUid(); - IoSenderManage.senderAddFingerprintWithTimeCycleCoercionCommand( keyID:state.deletExpireFingerprintItemEntity.fingerprintId.toString(), userID:await Storage.getUid(), @@ -125,6 +125,8 @@ class ExpireFingerprintLogic extends BaseGetXController { signKey:signKeyDataList, privateKey:getPrivateKeyList, token: getTokenList, + isAdmin: 0, + operate: 0, ); // IoSenderManage.senderAddFingerprintCommand( diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 5788f097..e716c7c1 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -452,6 +452,7 @@ class ApiProvider extends BaseProvider { String startDate, String endDate, String addType, + int? pwdRight, ) => post( passwordKeyAddURL.toUrl, @@ -463,6 +464,7 @@ class ApiProvider extends BaseProvider { 'startDate': startDate, 'endDate': endDate, 'addType': addType, + 'pwdRight': pwdRight })); // 自定义密码校验名字密码是否重复 @@ -1122,7 +1124,8 @@ class ApiProvider extends BaseProvider { String changeType, int startTime, int endTime, - int fingerprintType) => + int fingerprintType, + int fingerRight) => post( editFingerprintURL.toUrl, jsonEncode({ @@ -1137,6 +1140,7 @@ class ApiProvider extends BaseProvider { 'startTime': startTime, 'endTime': endTime, 'fingerprintType': fingerprintType, + 'fingerRight': fingerRight })); // 删除指纹 @@ -1333,6 +1337,7 @@ class ApiProvider extends BaseProvider { int startTime, int endTime, int cardType, + int cardRight, ) => post( editICCardURL.toUrl, @@ -1347,7 +1352,8 @@ class ApiProvider extends BaseProvider { 'changeType': changeType, 'startTime': startTime, 'endTime': endTime, - 'cardType': cardType + 'cardType': cardType, + 'cardRight': cardRight })); // 删除卡 diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 79fe0661..a48e60b4 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -474,9 +474,10 @@ class ApiRepository { required String startDate, required String endDate, required String addType, + required int pwdRight, }) async { final res = await apiProvider.addKeyboardPwd(lockId, keyboardPwdName, - keyboardPwd, keyboardPwdType, startDate, endDate, addType); + keyboardPwd, keyboardPwdType, startDate, endDate, addType, pwdRight); return PasswordKeyEntity.fromJson(res.body); } @@ -1296,7 +1297,8 @@ class ApiRepository { required String changeType, required int startTime, required int endTime, - required int fingerprintType}) async { + required int fingerprintType, + required int fingerRight}) async { final res = await apiProvider.editFingerprintsData( fingerprintId, lockId, @@ -1308,7 +1310,8 @@ class ApiRepository { changeType, startTime, endTime, - fingerprintType); + fingerprintType, + fingerRight); return LoginEntity.fromJson(res.body); } @@ -1502,6 +1505,7 @@ class ApiRepository { required int startTime, required int endTime, required int cardType, + required int cardRight, }) async { final res = await apiProvider.editICCardData( lockId, @@ -1514,7 +1518,8 @@ class ApiRepository { changeType, startTime, endTime, - cardType); + cardType, + cardRight); return LoginEntity.fromJson(res.body); }