获取星锁状态添加UTC时间戳跟本地时间戳
This commit is contained in:
parent
4c61209cfb
commit
d2d22edc3c
@ -11,17 +11,21 @@ class GetStarLockStatuInfoCommand extends SenderProtocol {
|
|||||||
|
|
||||||
String? lockID;
|
String? lockID;
|
||||||
String? userID;
|
String? userID;
|
||||||
|
int? utcTimeStamp;
|
||||||
|
int? unixTimeStamp;
|
||||||
List<int>? privateKey;
|
List<int>? privateKey;
|
||||||
GetStarLockStatuInfoCommand({
|
GetStarLockStatuInfoCommand({
|
||||||
this.lockID,
|
this.lockID,
|
||||||
this.userID,
|
this.userID,
|
||||||
|
this.utcTimeStamp,
|
||||||
|
this.unixTimeStamp,
|
||||||
this.privateKey
|
this.privateKey
|
||||||
}) : super(CommandType.readStarLockStatusInfo);
|
}) : super(CommandType.readStarLockStatusInfo);
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'GetStarLockStatuInfoCommand{lockID: $lockID, '
|
return 'GetStarLockStatuInfoCommand{lockID: $lockID, '
|
||||||
|
'utcTimeStamp: $utcTimeStamp, unixTimeStamp: $unixTimeStamp, '
|
||||||
'userID: $userID, privateKey: $privateKey}';
|
'userID: $userID, privateKey: $privateKey}';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,6 +52,18 @@ class GetStarLockStatuInfoCommand extends SenderProtocol {
|
|||||||
data.addAll(utf8.encode(userID!));
|
data.addAll(utf8.encode(userID!));
|
||||||
data = getFixedLengthList(data, 20 - userIDLength);
|
data = getFixedLengthList(data, 20 - userIDLength);
|
||||||
|
|
||||||
|
// startDate 4
|
||||||
|
data.add((utcTimeStamp! & 0xff000000) >> 24);
|
||||||
|
data.add((utcTimeStamp! & 0xff0000) >> 16);
|
||||||
|
data.add((utcTimeStamp! & 0xff00) >> 8);
|
||||||
|
data.add((utcTimeStamp! & 0xff));
|
||||||
|
|
||||||
|
// endDate 4
|
||||||
|
data.add((unixTimeStamp! & 0xff000000) >> 24);
|
||||||
|
data.add((unixTimeStamp! & 0xff0000) >> 16);
|
||||||
|
data.add((unixTimeStamp! & 0xff00) >> 8);
|
||||||
|
data.add((unixTimeStamp! & 0xff));
|
||||||
|
|
||||||
if ((data.length % 16) != 0) {
|
if ((data.length % 16) != 0) {
|
||||||
int add = (16 - data.length % 16);
|
int add = (16 - data.length % 16);
|
||||||
for (int i = 0; i < add; i++) {
|
for (int i = 0; i < add; i++) {
|
||||||
|
|||||||
@ -212,15 +212,19 @@ class IoSenderManage {
|
|||||||
|
|
||||||
//todo:获取星锁状态信息
|
//todo:获取星锁状态信息
|
||||||
static void senderGetStarLockStatuInfo(
|
static void senderGetStarLockStatuInfo(
|
||||||
{String? lockID,
|
{required String? lockID,
|
||||||
String? userID,
|
required String? userID,
|
||||||
List<int>? privateKey,
|
required int? utcTimeStamp,
|
||||||
bool? isBeforeAddUser,
|
required int? unixTimeStamp,
|
||||||
CommandSendCallBack? callBack}) {
|
required List<int>? privateKey,
|
||||||
|
required bool? isBeforeAddUser,
|
||||||
|
CommandSendCallBack? callBack}) {
|
||||||
CommandSenderManager().managerSendData(
|
CommandSenderManager().managerSendData(
|
||||||
command: GetStarLockStatuInfoCommand(
|
command: GetStarLockStatuInfoCommand(
|
||||||
lockID: lockID,
|
lockID: lockID,
|
||||||
userID: userID,
|
userID: userID,
|
||||||
|
utcTimeStamp: utcTimeStamp,
|
||||||
|
unixTimeStamp: unixTimeStamp,
|
||||||
privateKey: privateKey,
|
privateKey: privateKey,
|
||||||
),
|
),
|
||||||
isBeforeAddUser: isBeforeAddUser!,
|
isBeforeAddUser: isBeforeAddUser!,
|
||||||
|
|||||||
@ -116,7 +116,7 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
keyID: BlueManage().connectDeviceName,
|
keyID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
openMode: state.openDoorModel,
|
openMode: state.openDoorModel,
|
||||||
openTime: getNetTime(),
|
openTime: getUTCNetTime(),
|
||||||
onlineToken: state.lockNetToken,
|
onlineToken: state.lockNetToken,
|
||||||
token: tokenData,
|
token: tokenData,
|
||||||
needAuthor: 1,
|
needAuthor: 1,
|
||||||
@ -357,7 +357,7 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
keyID: BlueManage().connectDeviceName,
|
keyID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
openMode: state.openDoorModel,
|
openMode: state.openDoorModel,
|
||||||
openTime: getNetTime(),
|
openTime: getUTCNetTime(),
|
||||||
onlineToken: state.lockNetToken,
|
onlineToken: state.lockNetToken,
|
||||||
token: getTokenList,
|
token: getTokenList,
|
||||||
needAuthor: 1,
|
needAuthor: 1,
|
||||||
@ -411,16 +411,14 @@ class LockDetailLogic extends BaseGetXController {
|
|||||||
|
|
||||||
// 从服务器获取锁的时间 开锁时传入
|
// 从服务器获取锁的时间 开锁时传入
|
||||||
void getServerDatetime() async{
|
void getServerDatetime() async{
|
||||||
var entity = await ApiRepository.to.getServerDatetimeData(
|
var entity = await ApiRepository.to.getServerDatetimeData();
|
||||||
lockId: state.keyInfos.value.lockId.toString(),
|
|
||||||
);
|
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
||||||
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int getNetTime(){
|
int getUTCNetTime(){
|
||||||
return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime;
|
return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -58,6 +58,8 @@ class UploadElectricQuantityLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderGetStarLockStatuInfo(
|
IoSenderManage.senderGetStarLockStatuInfo(
|
||||||
lockID: BlueManage().connectDeviceName,
|
lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
|
utcTimeStamp: getUTCNetTime(),
|
||||||
|
unixTimeStamp: getLocalNetTime(),
|
||||||
isBeforeAddUser: false,
|
isBeforeAddUser: false,
|
||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
);
|
);
|
||||||
@ -113,6 +115,8 @@ class UploadElectricQuantityLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderGetStarLockStatuInfo(
|
IoSenderManage.senderGetStarLockStatuInfo(
|
||||||
lockID: BlueManage().connectDeviceName,
|
lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
|
utcTimeStamp: getUTCNetTime(),
|
||||||
|
unixTimeStamp: getLocalNetTime(),
|
||||||
isBeforeAddUser: false,
|
isBeforeAddUser: false,
|
||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
);
|
);
|
||||||
@ -123,12 +127,37 @@ class UploadElectricQuantityLogic extends BaseGetXController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从服务器获取锁的时间 开锁时传入
|
||||||
|
void getServerDatetime() async{
|
||||||
|
var entity = await ApiRepository.to.getServerDatetimeData();
|
||||||
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
|
state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
||||||
|
getLocalNetTime();
|
||||||
|
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int getUTCNetTime(){
|
||||||
|
return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getLocalNetTime(){
|
||||||
|
DateTime utcTime = DateTime.fromMillisecondsSinceEpoch(getUTCNetTime()*1000, isUtc: true);
|
||||||
|
DateTime localTime = utcTime.toLocal();
|
||||||
|
|
||||||
|
// AppLog.log('getUTCNetTime: ${getUTCNetTime()}');
|
||||||
|
// AppLog.log('UTC time: $utcTime');
|
||||||
|
// AppLog.log('Local time: $localTime localTime.millisecondsSinceEpoch ~/ 1000:${localTime.millisecondsSinceEpoch ~/ 1000}');
|
||||||
|
return localTime.millisecondsSinceEpoch ~/ 1000;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() {
|
void onReady() {
|
||||||
// TODO: implement onReady
|
// TODO: implement onReady
|
||||||
super.onReady();
|
super.onReady();
|
||||||
|
|
||||||
_initReplySubscription();
|
_initReplySubscription();
|
||||||
|
getServerDatetime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@ -7,6 +7,7 @@ class UploadElectricQuantityState {
|
|||||||
var lockSetInfoData = LockSetInfoData().obs;
|
var lockSetInfoData = LockSetInfoData().obs;
|
||||||
var lockBasicInfo = LockBasicInfo().obs;
|
var lockBasicInfo = LockBasicInfo().obs;
|
||||||
var uploadElectricQuantityDate = 0.obs;
|
var uploadElectricQuantityDate = 0.obs;
|
||||||
|
int differentialTime = 0;
|
||||||
|
|
||||||
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
var sureBtnState = 0.obs;// 0普通状态可用 1不可用
|
var sureBtnState = 0.obs;// 0普通状态可用 1不可用
|
||||||
|
|||||||
@ -36,38 +36,38 @@ class LockTimeLogic extends BaseGetXController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取锁状态数据解析
|
// 获取锁状态数据解析
|
||||||
Future<void> _replyGetStarLockStatusInfo(Reply reply) async {
|
// Future<void> _replyGetStarLockStatusInfo(Reply reply) async {
|
||||||
int status = reply.data[2];
|
// int status = reply.data[2];
|
||||||
switch (status) {
|
// switch (status) {
|
||||||
case 0x00:
|
// case 0x00:
|
||||||
//成功
|
// //成功
|
||||||
cancelBlueConnetctToastTimer();
|
// cancelBlueConnetctToastTimer();
|
||||||
dismissEasyLoading();
|
// dismissEasyLoading();
|
||||||
|
//
|
||||||
// 有效时间
|
// // 有效时间
|
||||||
var indate = reply.data.sublist(149, 153);
|
// var indate = reply.data.sublist(149, 153);
|
||||||
int indateValue = ((0xff & indate[(0)]) << 24 |
|
// int indateValue = ((0xff & indate[(0)]) << 24 |
|
||||||
(0xff & indate[1]) << 16 |
|
// (0xff & indate[1]) << 16 |
|
||||||
(0xff & indate[2]) << 8 |
|
// (0xff & indate[2]) << 8 |
|
||||||
(0xFF & indate[3]));
|
// (0xFF & indate[3]));
|
||||||
state.dateTime.value = DateTool().dateToYMDHNString("$indateValue");
|
// state.dateTime.value = DateTool().dateToYMDHNString("$indateValue");
|
||||||
break;
|
// break;
|
||||||
case 0x06:
|
// case 0x06:
|
||||||
//需要鉴权
|
// //需要鉴权
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
// var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
// List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
IoSenderManage.senderGetStarLockStatuInfo(
|
// IoSenderManage.senderGetStarLockStatuInfo(
|
||||||
lockID: BlueManage().connectDeviceName,
|
// lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
// userID: await Storage.getUid(),
|
||||||
isBeforeAddUser: false,
|
// isBeforeAddUser: false,
|
||||||
privateKey: getPrivateKeyList,
|
// privateKey: getPrivateKeyList,
|
||||||
);
|
// );
|
||||||
break;
|
// break;
|
||||||
default:
|
// default:
|
||||||
//失败
|
// //失败
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 校时数据解析
|
// 校时数据解析
|
||||||
Future<void> _replyTiming(Reply reply) async {
|
Future<void> _replyTiming(Reply reply) async {
|
||||||
@ -75,7 +75,7 @@ class LockTimeLogic extends BaseGetXController{
|
|||||||
switch(status){
|
switch(status){
|
||||||
case 0x00:
|
case 0x00:
|
||||||
//成功
|
//成功
|
||||||
String dataEime = DateTool().dateToYMDHNString("${state.dateTimestamp.value}");
|
String dataEime = DateTool().dateToYMDHNString("${getUTCNetTime()}");
|
||||||
state.dateTime.value = dataEime;
|
state.dateTime.value = dataEime;
|
||||||
|
|
||||||
state.sureBtnState.value = 0;
|
state.sureBtnState.value = 0;
|
||||||
@ -118,7 +118,7 @@ class LockTimeLogic extends BaseGetXController{
|
|||||||
lockID:BlueManage().connectDeviceName,
|
lockID:BlueManage().connectDeviceName,
|
||||||
userID:await Storage.getUid(),
|
userID:await Storage.getUid(),
|
||||||
// nowTime:DateTime.now().millisecondsSinceEpoch~/1000,
|
// nowTime:DateTime.now().millisecondsSinceEpoch~/1000,
|
||||||
nowTime: state.dateTimestamp.value,
|
nowTime: getUTCNetTime(),
|
||||||
token:getTokenList,
|
token:getTokenList,
|
||||||
needAuthor:1,
|
needAuthor:1,
|
||||||
signKey:getSignKeyList,
|
signKey:getSignKeyList,
|
||||||
@ -173,19 +173,19 @@ class LockTimeLogic extends BaseGetXController{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 从服务器获取锁的时间
|
// 从服务器获取锁的时间 开锁时传入
|
||||||
void getServerDatetime(bool isSendBlue) async{
|
void getServerDatetime() async{
|
||||||
var entity = await ApiRepository.to.getServerDatetimeData(
|
var entity = await ApiRepository.to.getServerDatetimeData();
|
||||||
lockId: state.lockSetInfoData.value.lockId.toString(),
|
|
||||||
);
|
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
state.dateTimestamp.value = entity.data!.date!.toString().length > 10 ? entity.data!.date!~/ 1000 : entity.data!.date!;
|
state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
||||||
if(isSendBlue){
|
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
||||||
sendTiming();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getUTCNetTime(){
|
||||||
|
return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() {
|
void onReady() {
|
||||||
// TODO: implement onReady
|
// TODO: implement onReady
|
||||||
|
|||||||
@ -57,7 +57,7 @@ class _LockTimePageState extends State<LockTimePage> with RouteAware{
|
|||||||
onClick: () {
|
onClick: () {
|
||||||
// logic.sendTiming();
|
// logic.sendTiming();
|
||||||
// logic.getServerDatetime();
|
// logic.getServerDatetime();
|
||||||
logic.getServerDatetime(true);
|
logic.getServerDatetime();
|
||||||
}),
|
}),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 40.h,
|
height: 40.h,
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import '../lockSet/lockSetInfo_entity.dart';
|
|||||||
class LockTimeState{
|
class LockTimeState{
|
||||||
var lockSetInfoData = LockSetInfoData().obs;
|
var lockSetInfoData = LockSetInfoData().obs;
|
||||||
var dateTime = "".obs;
|
var dateTime = "".obs;
|
||||||
var dateTimestamp = 0.obs;
|
int differentialTime = 0;
|
||||||
|
|
||||||
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
var sureBtnState = 0.obs;// 0普通状态(可用) 1连接中(不可用)
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import '../../../blue/io_reply.dart';
|
|||||||
import '../../../blue/io_tool/io_tool.dart';
|
import '../../../blue/io_tool/io_tool.dart';
|
||||||
import '../../../blue/io_tool/manager_event_bus.dart';
|
import '../../../blue/io_tool/manager_event_bus.dart';
|
||||||
import '../../../blue/sender_manage.dart';
|
import '../../../blue/sender_manage.dart';
|
||||||
|
import '../../../network/api_repository.dart';
|
||||||
import '../../../tools/storage.dart';
|
import '../../../tools/storage.dart';
|
||||||
import 'nearbyLock_state.dart';
|
import 'nearbyLock_state.dart';
|
||||||
|
|
||||||
@ -338,10 +339,11 @@ class NearbyLockLogic extends BaseGetXController {
|
|||||||
IoSenderManage.senderGetStarLockStatuInfo(
|
IoSenderManage.senderGetStarLockStatuInfo(
|
||||||
lockID: BlueManage().connectDeviceName,
|
lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
|
utcTimeStamp: getUTCNetTime(),
|
||||||
|
unixTimeStamp: getLocalNetTime(),
|
||||||
isBeforeAddUser: true,
|
isBeforeAddUser: true,
|
||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
);
|
);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//失败
|
//失败
|
||||||
@ -360,14 +362,12 @@ class NearbyLockLogic extends BaseGetXController {
|
|||||||
AppLog.log("开始获取锁状态");
|
AppLog.log("开始获取锁状态");
|
||||||
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
var privateKey = await Storage.getStringList(saveBluePrivateKey);
|
||||||
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
List<int> getPrivateKeyList = changeStringListToIntList(privateKey!);
|
||||||
// IoSenderManage.senderGetLockStatu(
|
|
||||||
// lockID:BlueManage().connectDeviceName,
|
|
||||||
// userID:await Storage.getUid(),
|
|
||||||
// privateKey:getPrivateKeyList,
|
|
||||||
// );
|
|
||||||
IoSenderManage.senderGetStarLockStatuInfo(
|
IoSenderManage.senderGetStarLockStatuInfo(
|
||||||
lockID: BlueManage().connectDeviceName,
|
lockID: BlueManage().connectDeviceName,
|
||||||
userID: await Storage.getUid(),
|
userID: await Storage.getUid(),
|
||||||
|
utcTimeStamp: getUTCNetTime(),
|
||||||
|
unixTimeStamp: getLocalNetTime(),
|
||||||
isBeforeAddUser: true,
|
isBeforeAddUser: true,
|
||||||
privateKey: getPrivateKeyList,
|
privateKey: getPrivateKeyList,
|
||||||
);
|
);
|
||||||
@ -610,11 +610,36 @@ class NearbyLockLogic extends BaseGetXController {
|
|||||||
return bin;
|
return bin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从服务器获取锁的时间 开锁时传入
|
||||||
|
void getServerDatetime() async{
|
||||||
|
var entity = await ApiRepository.to.getServerDatetimeData();
|
||||||
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
|
state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000;
|
||||||
|
getLocalNetTime();
|
||||||
|
// AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int getUTCNetTime(){
|
||||||
|
return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
int getLocalNetTime(){
|
||||||
|
DateTime utcTime = DateTime.fromMillisecondsSinceEpoch(getUTCNetTime()*1000, isUtc: true);
|
||||||
|
DateTime localTime = utcTime.toLocal();
|
||||||
|
|
||||||
|
// AppLog.log('getUTCNetTime: ${getUTCNetTime()}');
|
||||||
|
// AppLog.log('UTC time: $utcTime');
|
||||||
|
// AppLog.log('Local time: $localTime localTime.millisecondsSinceEpoch ~/ 1000:${localTime.millisecondsSinceEpoch ~/ 1000}');
|
||||||
|
return localTime.millisecondsSinceEpoch ~/ 1000;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() {
|
void onReady() {
|
||||||
super.onReady();
|
super.onReady();
|
||||||
_initReplySubscription();
|
_initReplySubscription();
|
||||||
state.ifCurrentScreen.value = true;
|
state.ifCurrentScreen.value = true;
|
||||||
|
getServerDatetime();
|
||||||
startScanBlueList();
|
startScanBlueList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,6 +5,7 @@ class NearbyLockState {
|
|||||||
RxList<ScanResult> devices = <ScanResult>[].obs;
|
RxList<ScanResult> devices = <ScanResult>[].obs;
|
||||||
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示
|
||||||
// var sureBtnState = 0.obs;// 0可点击 1 不可点击
|
// var sureBtnState = 0.obs;// 0可点击 1 不可点击
|
||||||
|
int differentialTime = 0;
|
||||||
|
|
||||||
var selectLockName = "".obs;
|
var selectLockName = "".obs;
|
||||||
|
|
||||||
|
|||||||
@ -8,9 +8,7 @@ class SelectLockTypeLogic extends BaseGetXController {
|
|||||||
SelectLockTypeState state = SelectLockTypeState();
|
SelectLockTypeState state = SelectLockTypeState();
|
||||||
|
|
||||||
void getServerDatetime() async{
|
void getServerDatetime() async{
|
||||||
var entity = await ApiRepository.to.getServerDatetimeData(
|
var entity = await ApiRepository.to.getServerDatetimeData();
|
||||||
lockId: CommonDataManage().currentKeyInfo.lockId.toString(),
|
|
||||||
);
|
|
||||||
if(entity.errorCode!.codeIsSuccessful){
|
if(entity.errorCode!.codeIsSuccessful){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -790,11 +790,9 @@ class ApiProvider extends BaseProvider {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// 获取服务器当前时间
|
// 获取服务器当前时间
|
||||||
Future<Response> getServerDatetimeLoadData(String lockId) => post(
|
Future<Response> getServerDatetimeLoadData() => post(
|
||||||
getServerDatetimeUrl.toUrl,
|
getServerDatetimeUrl.toUrl,
|
||||||
jsonEncode({
|
jsonEncode({}),
|
||||||
'lockId': lockId,
|
|
||||||
}),
|
|
||||||
isUnShowLoading: true);
|
isUnShowLoading: true);
|
||||||
|
|
||||||
// 锁诊断
|
// 锁诊断
|
||||||
|
|||||||
@ -848,10 +848,8 @@ class ApiRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取服务器当前时间
|
// 获取服务器当前时间
|
||||||
Future<GetServerDatetimeEntity> getServerDatetimeData({
|
Future<GetServerDatetimeEntity> getServerDatetimeData() async {
|
||||||
required String lockId,
|
final res = await apiProvider.getServerDatetimeLoadData();
|
||||||
}) async {
|
|
||||||
final res = await apiProvider.getServerDatetimeLoadData(lockId);
|
|
||||||
return GetServerDatetimeEntity.fromJson(res.body);
|
return GetServerDatetimeEntity.fromJson(res.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user