From 492b2e713d5a5183e82ebfe6ff779918960a2379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDaisyWu=E2=80=9D?= <“18682150237@163.com”> Date: Thu, 6 Feb 2025 11:09:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=98=9F=E5=9B=BE=EF=BC=9A1,=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E9=A1=B9=E7=9B=AE=E4=B8=AD=E6=98=9F=E5=9B=BE=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=8E=B7=E5=8F=96=E9=80=94=E5=BE=84=E5=8F=8A=E6=9C=89?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=9B=B4=E6=96=B0loginData2,=E6=98=9F?= =?UTF-8?q?=E5=9B=BE=EF=BC=9A=E5=AE=8C=E6=88=90=E4=BF=AE=E5=A4=8D=E5=8F=8A?= =?UTF-8?q?=E9=AA=8C=E8=AF=81APP=E9=A6=96=E6=AC=A1=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E7=99=BB=E5=BD=95=E5=90=8E=E6=9C=AA=E4=B8=8A?= =?UTF-8?q?=E7=BA=BF=E5=AF=BC=E8=87=B4=E5=91=BC=E5=8F=AB=E5=AF=B9=E8=AE=B2?= =?UTF-8?q?=E6=97=A0=E5=8F=8D=E5=BA=94=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/login/login/entity/LoginData.dart | 10 +++++++ lib/login/login/starLock_login_logic.dart | 19 ++++++++----- .../lockMain/xhj/lockMain_xhj_logic.dart | 4 ++- lib/talk/starChart/star_chart_manage.dart | 27 ++++++++++--------- 4 files changed, 40 insertions(+), 20 deletions(-) diff --git a/lib/login/login/entity/LoginData.dart b/lib/login/login/entity/LoginData.dart index 8c269cf0..fc558401 100755 --- a/lib/login/login/entity/LoginData.dart +++ b/lib/login/login/entity/LoginData.dart @@ -1,4 +1,5 @@ import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; +import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart'; class LoginData { LoginData( @@ -63,4 +64,13 @@ class LoginData { } return map; } + + void updateStarchart( + StarChartRegisterNodeEntity starChartRegisterNodeEntity) { + starchart = Starchart( + starchartId: starChartRegisterNodeEntity.peer?.id, + starchartPeerPublicKey: starChartRegisterNodeEntity.peer?.publicKey, + starchartPeerPrivateKey: starChartRegisterNodeEntity.peer?.privateKey, + ); + } } diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart index 8518669b..6f7cff26 100755 --- a/lib/login/login/starLock_login_logic.dart +++ b/lib/login/login/starLock_login_logic.dart @@ -58,17 +58,22 @@ class StarLockLoginLogic extends BaseGetXController { 'login_res': '成功', }); - Storage.saveLoginData(entity.data); - Storage.setBool(saveIsVip, entity.data!.isVip == 1); //如已有星图配置则保存 无需重复注册节点及重复绑定 if (entity.data!.starchart != null) { final Starchart starChart = entity.data!.starchart!; - Storage.saveStarChartRegisterNodeInfo(StarChartRegisterNodeEntity( - peer: PeerData( - id: starChart.starchartId, - publicKey: starChart.starchartPeerPublicKey, - privateKey: starChart.starchartPeerPrivateKey))); + final StarChartRegisterNodeEntity starChartRegisterNodeEntity = + StarChartRegisterNodeEntity( + peer: PeerData( + id: starChart.starchartId, + publicKey: starChart.starchartPeerPublicKey, + privateKey: starChart.starchartPeerPrivateKey, + ), + ); + Storage.saveStarChartRegisterNodeInfo(starChartRegisterNodeEntity); + entity.data!.updateStarchart(starChartRegisterNodeEntity); } + Storage.saveLoginData(entity.data); + Storage.setBool(saveIsVip, entity.data!.isVip == 1); eventBus.fire(MineInfoChangeRefreshUI()); if (Get.isRegistered()) { Get.find().getStarLockInfo(isUnShowLoading: true); diff --git a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart index 0cea9990..e541f82a 100755 --- a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart +++ b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart @@ -53,9 +53,11 @@ class LockMainXHJLogic extends BaseGetXController { } } if (entity.data!.starchart != null) { - if (entity.data!.starchart!.starchartId!.isEmpty) { + if (entity.data!.starchart!.starchartId == null) { bindStarChart(); } + } else { + StartChartManage().init(); } } } diff --git a/lib/talk/starChart/star_chart_manage.dart b/lib/talk/starChart/star_chart_manage.dart index 095c27ac..ee9c8781 100644 --- a/lib/talk/starChart/star_chart_manage.dart +++ b/lib/talk/starChart/star_chart_manage.dart @@ -146,23 +146,23 @@ class StartChartManage { await _requestStarChartRegisterNode(); await _saveStarChartRegisterNodeToStorage(requestStarChartRegisterNode); FromPeerId = requestStarChartRegisterNode.peer!.id ?? ''; - bindUserStarchart(); + bindUserStarchart(requestStarChartRegisterNode); } } //绑定星图配置 - Future bindUserStarchart() async { + Future bindUserStarchart( + StarChartRegisterNodeEntity requestStarChartRegisterNode) async { try { - final StarChartRegisterNodeEntity? registerNodeEntity = - await Storage.getStarChartRegisterNodeInfo(); - final LoginEntity entity = await ApiRepository.to.bindUserStarchart( - starchartId: registerNodeEntity?.peer?.id ?? '', - starchartPeerPublicKey: registerNodeEntity?.peer?.publicKey ?? '', - starchartPeerPrivateKey: registerNodeEntity?.peer?.privateKey ?? '', + starchartId: requestStarChartRegisterNode.peer?.id ?? '', + starchartPeerPublicKey: + requestStarChartRegisterNode.peer?.publicKey ?? '', + starchartPeerPrivateKey: + requestStarChartRegisterNode.peer?.privateKey ?? '', ); - registerNodeEntity?.peer?.id = entity.data?.starchart?.starchartId; - await Storage.saveStarChartRegisterNodeInfo(registerNodeEntity!); + requestStarChartRegisterNode.peer?.id = + entity.data?.starchart?.starchartId; if (entity.errorCode!.codeIsSuccessful) { AppLog.log('绑定成功'); } else { @@ -762,6 +762,9 @@ class StartChartManage { StarChartRegisterNodeEntity starChartRegisterNodeEntity) async { if (starChartRegisterNodeEntity != null) { await Storage.saveStarChartRegisterNodeInfo(starChartRegisterNodeEntity); + final LoginData? loginData = await Storage.getLoginData(); + loginData?.updateStarchart(starChartRegisterNodeEntity); + Storage.saveLoginData(loginData); } } @@ -779,9 +782,9 @@ class StartChartManage { final RelayInfoEntity? relayInfoEntity = await Storage.getRelayInfo(); // 获取公钥 - final publicKey = await getPublicKey(); + final String publicKey = await getPublicKey(); // 获取私钥 - final privateKey = await getPrivateKey(); + final String privateKey = await getPrivateKey(); // 生成签名 final sign = await DoSign().generateSign( currentTimestamp: relayInfoEntity!.time ?? 0,