diff --git a/lib/login/login/starLock_login_page.dart b/lib/login/login/starLock_login_page.dart index b9e9acaf..80cbc1d4 100755 --- a/lib/login/login/starLock_login_page.dart +++ b/lib/login/login/starLock_login_page.dart @@ -37,7 +37,7 @@ class _StarLockLoginPageState extends State { WidgetsBinding.instance.addPostFrameCallback((_) async { AppFirstEnterHandle().getAppFirstEnter(isAgreePrivacy); }); - StartChartManage().init(); + // StartChartManage().init(); } @override @@ -235,21 +235,21 @@ class _StarLockLoginPageState extends State { } } : null)), - SubmitBtn( - btnName: '发送回声测试消息', - onClick: () { - StartChartManage().sendEchoMessage( - ToPeerId: '3phX8Ng2cZHz5NtP8xAf6nYy2z1BYytoejgjoHrWMGhH'); - }, - ), - SubmitBtn( - btnName: '发送对讲请求1', - onClick: () { - StartChartManage().sendCallRequestMessage( - ToPeerId: 'CqKJUADeUZsHrSD4SEVnPBr73fbsHNUXCEq9kyCtE3wp', - ); - }, - ), + // SubmitBtn( + // btnName: '发送回声测试消息', + // onClick: () { + // StartChartManage().sendEchoMessage( + // ToPeerId: '3phX8Ng2cZHz5NtP8xAf6nYy2z1BYytoejgjoHrWMGhH'); + // }, + // ), + // SubmitBtn( + // btnName: '发送对讲请求1', + // onClick: () { + // StartChartManage().sendCallRequestMessage( + // ToPeerId: 'CqKJUADeUZsHrSD4SEVnPBr73fbsHNUXCEq9kyCtE3wp', + // ); + // }, + // ), SizedBox(height: 50.w), Row( mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/main/lockMian/lockMain/lockMain_logic.dart b/lib/main/lockMian/lockMain/lockMain_logic.dart index 74bdaf3c..64dddf4b 100755 --- a/lib/main/lockMian/lockMain/lockMain_logic.dart +++ b/lib/main/lockMian/lockMain/lockMain_logic.dart @@ -140,7 +140,6 @@ class LockMainLogic extends BaseGetXController { return !connectResults.contains(ConnectivityResult.none); } - /// 设置网络切换监听 // Future connectListener() async { // Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { @@ -304,6 +303,9 @@ class LockMainLogic extends BaseGetXController { @override Future onReady() async { super.onReady(); + //初始化星图服务并绑定配置 + await StartChartManage().init(); + // 初始化JPush服务并绑定设备ID final XSJPushProvider jpushProvider = XSJPushProvider(); await jpushProvider.initJPushService(); @@ -313,7 +315,6 @@ class LockMainLogic extends BaseGetXController { // AppLog.log('onReady() LockMainLogic'); UdpHelp().openUDP(); BlueManage(); - } @override diff --git a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart index c731f137..ce6ecb96 100755 --- a/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart +++ b/lib/main/lockMian/lockMain/xhj/lockMain_xhj_logic.dart @@ -7,6 +7,7 @@ import 'package:star_lock/main/lockMian/lockMain/lockMain_page.dart'; import 'package:star_lock/main/lockMian/lockMain/xhj/lockMain_xhj_state.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart'; import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/talk/startChart/start_chart_manage.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/push/xs_jPhush.dart'; import 'package:star_lock/tools/storage.dart'; @@ -39,7 +40,12 @@ class LockMainXHJLogic extends BaseGetXController { Storage.setBool(saveIsVip, entity.data!.isVip == 1); if (entity.data!.deviceId != null) { if (entity.data!.deviceId!.isEmpty) { - bindDevice(); + bindPushDevice(); + } + } + if (entity.data!.starchart != null) { + if (entity.data!.starchart!.starchartId!.isEmpty) { + bindStarChart(); } } } @@ -68,18 +74,24 @@ class LockMainXHJLogic extends BaseGetXController { }); } - Future bindDevice() async { + Future bindPushDevice() async { // 初始化JPush服务并绑定设备ID final XSJPushProvider jpushProvider = XSJPushProvider(); await jpushProvider.initJPushService(); await jpushProvider.initLocalNotification(isCancelLocalPush: false); } +//绑定星图 + Future bindStarChart() async { + //初始化星图服务并绑定配置 + await StartChartManage().init(); + } + @override Future onReady() async { super.onReady(); - bindDevice(); + bindPushDevice(); } @override diff --git a/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart b/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart index 6999f581..16b87225 100755 --- a/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart +++ b/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart @@ -41,7 +41,8 @@ class MinePersonInfoData { this.deviceId, this.lang, this.amazonAlexa, - this.googleHome}); + this.googleHome, + this.starchart}); MinePersonInfoData.fromJson(Map json) { mobile = json['mobile']; @@ -62,6 +63,9 @@ class MinePersonInfoData { googleHome = json['googleHome'] != null ? GoogleHome.fromJson(json['googleHome']) : null; + starchart = json['starchart'] != null + ? Starchart.fromJson(json['starchart']) + : null; } String? mobile; int? uid; @@ -77,6 +81,7 @@ class MinePersonInfoData { String? lang; AmazonAlexa? amazonAlexa; GoogleHome? googleHome; + Starchart? starchart; Map toJson() { final Map data = {}; @@ -98,6 +103,9 @@ class MinePersonInfoData { if (googleHome != null) { data['googleHome'] = googleHome!.toJson(); } + if (starchart != null) { + data['starchart'] = starchart!.toJson(); + } return data; } @@ -138,3 +146,28 @@ class GoogleHome { return data; } } + +class Starchart { + String? starchartId; + String? starchartPeerPublicKey; + String? starchartPeerPrivateKey; + + Starchart( + {this.starchartId, + this.starchartPeerPublicKey, + this.starchartPeerPrivateKey}); + + Starchart.fromJson(Map json) { + starchartId = json['starchartId']; + starchartPeerPublicKey = json['starchartPeerPublicKey']; + starchartPeerPrivateKey = json['starchartPeerPrivateKey']; + } + + Map toJson() { + final Map data = Map(); + data['starchartId'] = this.starchartId; + data['starchartPeerPublicKey'] = this.starchartPeerPublicKey; + data['starchartPeerPrivateKey'] = this.starchartPeerPrivateKey; + return data; + } +} diff --git a/lib/network/api.dart b/lib/network/api.dart index b03de34c..f5f8f951 100755 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -284,12 +284,11 @@ abstract class Api { final String updateZoneOffsetsAndLanguagesURL = '/cloudUser/updateSettings'; //更新云用户时区偏移与语言 - final String starChartRegisterNodeURL = - '/SL-A-1.0/peer/register'; // 星图--注册节点 - final String relayQueryInfoURL = - '/SL-A-1.0/relay/query'; // 星图--中继查询 - final String reportInformationDataURL = - '/SL-A-1.0/peer/login'; // 星图--信息上报 + final String starChartRegisterNodeURL = '/SL-A-1.0/peer/register'; // 星图--注册节点 + final String relayQueryInfoURL = '/SL-A-1.0/relay/query'; // 星图--中继查询 + final String reportInformationDataURL = '/SL-A-1.0/peer/login'; // 星图--信息上报 final String analyzeInformationOtherEndURL = '/SL-A-1.0/peer/nslookup'; // 星图--解析对端信息 + final String bindUserStarchartURL = + '/userStarchart/bindUserStarchart'; // 绑定星图配置 } diff --git a/lib/network/api_provider.dart b/lib/network/api_provider.dart index 1c753af3..de6ed9dd 100755 --- a/lib/network/api_provider.dart +++ b/lib/network/api_provider.dart @@ -801,13 +801,12 @@ class ApiProvider extends BaseProvider { })); // 电机扭力设置 - Future setMotorPowerData(int lockId, int motorTorsion) => - post( - updateLockSettingUrl.toUrl, - jsonEncode({ - 'lockId': lockId, - 'motorTorsion': motorTorsion, - })); + Future setMotorPowerData(int lockId, int motorTorsion) => post( + updateLockSettingUrl.toUrl, + jsonEncode({ + 'lockId': lockId, + 'motorTorsion': motorTorsion, + })); // 远程开锁 Future remoteUnlockingOpenOrCloseLoadData( @@ -2693,6 +2692,21 @@ class ApiProvider extends BaseProvider { // 'language': language, }), isUnShowLoading: true); + + // 绑定星图配置 + Future bindUserStarchart( + String starchartId, + String starchartPeerPublicKey, + String starchartPeerPrivateKey, + ) => + post( + bindUserStarchartURL.toUrl, + jsonEncode({ + 'starchartId': starchartId, + 'starchartPeerPublicKey': starchartPeerPublicKey, + 'starchartPeerPrivateKey': starchartPeerPrivateKey, + }), + isUnShowLoading: true); } extension ExtensionString on String { diff --git a/lib/network/api_repository.dart b/lib/network/api_repository.dart index 72cb332f..8df748f6 100755 --- a/lib/network/api_repository.dart +++ b/lib/network/api_repository.dart @@ -2685,4 +2685,16 @@ class ApiRepository { ); return LoginEntity.fromJson(res.body); } + + // 绑定星图配置 + Future bindUserStarchart({ + required String starchartId, + required String starchartPeerPublicKey, + required String starchartPeerPrivateKey, + }) async { + final Response res = await apiProvider.bindUserStarchart( + starchartId, starchartPeerPublicKey, starchartPeerPrivateKey); + + return LoginEntity.fromJson(res.body); + } } diff --git a/lib/talk/startChart/start_chart_manage.dart b/lib/talk/startChart/start_chart_manage.dart index fb1090ac..59fb805f 100644 --- a/lib/talk/startChart/start_chart_manage.dart +++ b/lib/talk/startChart/start_chart_manage.dart @@ -8,6 +8,8 @@ import 'package:get/get.dart'; import 'package:pointycastle/export.dart' as pc; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/flavors.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; +import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/network/start_chart_api.dart'; import 'package:star_lock/talk/startChart/command/message_command.dart'; import 'package:star_lock/talk/startChart/constant/ip_constant.dart'; @@ -22,6 +24,7 @@ import 'package:star_lock/talk/startChart/handle/scp_message_handle.dart'; import 'package:star_lock/talk/startChart/handle/scp_message_handler_factory.dart'; import 'package:star_lock/talk/startChart/proto/talk_expect.pb.dart'; import 'package:star_lock/talk/startChart/start_chart_talk_status.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/deviceInfo_utils.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:uuid/uuid.dart'; @@ -93,6 +96,9 @@ class StartChartManage { await _onlineRelayService(); // 上报 await reportInformation(); + + //测试 + sendEchoMessage(ToPeerId: ToPeerId); } /// 客户端注册 @@ -109,6 +115,28 @@ class StartChartManage { await _saveStarChartRegisterNodeToStorage(requestStarChartRegisterNode); FromPeerId = requestStarChartRegisterNode.peer!.id ?? ''; } + bindUserStarchart(); + } + + //绑定星图配置 + Future bindUserStarchart() 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 ?? '', + ); + if (entity.errorCode!.codeIsSuccessful) { + AppLog.log('绑定成功'); + } else { + AppLog.log('绑定失败'); + } + } catch (e) { + AppLog.log('Error bindUserStarchart: $e'); + } } // 中继查询