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,