修改websocket及其model

master
张萌 2 years ago
parent 02305ecf2f
commit 336fcf35fc

@ -31,13 +31,6 @@ void main() async {
const isDev = const isDev =
const String.fromEnvironment('ENV', defaultValue: 'dev')=='dev'; const String.fromEnvironment('ENV', defaultValue: 'dev')=='dev';
DevUtil.setDev(isDev); DevUtil.setDev(isDev);
WebSocketUtil().initWebSocket(
// heartDuration: Duration(seconds: 5),
onError: (e) {
LoggerData.addData(e);
}, onReceiveMes: (message) async {
await FireDialog.fireAlert(message);
});
jpush.addEventHandler( jpush.addEventHandler(
// //
onReceiveNotification: (Map<String, dynamic>? message) async { onReceiveNotification: (Map<String, dynamic>? message) async {

@ -125,7 +125,7 @@ class _SplashPageState extends State<SplashPage> {
WebSocketUtil().initWebSocket( WebSocketUtil().initWebSocket(
consolePrint: false, consolePrint: false,
onReceiveMes: (message) async { onReceiveMes: (message) async {
await FireDialog.fireAlert(message); await FireDialog.fireAlarm(message);
}, },
onError: (e) { onError: (e) {
LoggerData.addData(e); LoggerData.addData(e);

@ -25,7 +25,7 @@ class JpushMessageParse {
type = _innerMap['type'] ?? '0'; type = _innerMap['type'] ?? '0';
switch (type) { switch (type) {
case '1': case '1':
await FireDialog.fireAlert(subTitle!); await FireDialog.fireAlarm(subTitle!);
break; break;
default: default:
} }

@ -1,24 +0,0 @@
import 'package:json_annotation/json_annotation.dart';
part 'fall_model.g.dart';
@JsonSerializable()
class FallModel {
final String? userName;
final String? tel;
final String? address;
final num? lon;
final num? lat;
final int? type;
factory FallModel.fromJson(Map<String, dynamic> json) =>
_$FallModelFromJson(json);
const FallModel({
this.userName,
this.tel,
this.address,
this.lon,
this.lat,
this.type,
});
}

@ -1,16 +0,0 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'fall_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
FallModel _$FallModelFromJson(Map<String, dynamic> json) => FallModel(
userName: json['userName'] as String?,
tel: json['tel'] as String?,
address: json['address'] as String?,
lon: json['lon'] as num?,
lat: json['lat'] as num?,
type: json['type'] as int?,
);

@ -1,25 +1,136 @@
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:equatable/equatable.dart';
part 'fire_model.g.dart'; part 'fire_model.g.dart';
@JsonSerializable() @JsonSerializable()
class FireModel { class FireModel extends Equatable {
String? alarmNo; final String model;
String? alarmType; final String communityCode;
String? deviceName; final int type;
String? deviceNo; final FireAlarm? fireAlarm;
String? time; final DeviceAlarm? deviceAlarm;
int? type; final OneButtonAlarm? oneButtonAlarm;
final ClientAlarm? clientAlarm;
final ElderlyCareEquipmentReminder? elderlyCareEquipmentReminder;
factory FireModel.fromJson(Map<String, dynamic> json) => factory FireModel.fromJson(Map<String, dynamic> json) =>
_$FireModelFromJson(json); _$FireModelFromJson(json);
FireModel({ @override
this.alarmNo, List<Object?> get props => [
this.alarmType, model,
this.deviceName, communityCode,
this.deviceNo, type,
this.time, fireAlarm,
this.type, deviceAlarm,
oneButtonAlarm,
clientAlarm,
elderlyCareEquipmentReminder,
];
const FireModel({
required this.model,
required this.communityCode,
required this.type,
this.fireAlarm,
this.deviceAlarm,
this.oneButtonAlarm,
this.clientAlarm,
this.elderlyCareEquipmentReminder,
});
}
@JsonSerializable()
class FireAlarm extends Equatable {
final String time;
final String deviceName;
factory FireAlarm.fromJson(Map<String, dynamic> json) =>_$FireAlarmFromJson(json);
@override
List<Object?> get props => [
time,
deviceName,
];
const FireAlarm({
required this.time,
required this.deviceName,
});
}
@JsonSerializable()
class DeviceAlarm extends Equatable {
final String time;
final String deviceName;
factory DeviceAlarm.fromJson(Map<String, dynamic> json) =>_$DeviceAlarmFromJson(json);
@override
List<Object?> get props => [
time,
deviceName,
];
const DeviceAlarm({
required this.time,
required this.deviceName,
});
}
@JsonSerializable()
class OneButtonAlarm extends Equatable {
final String time;
final String roomName;
final String name;
final String tel;
factory OneButtonAlarm.fromJson(Map<String, dynamic> json) =>_$OneButtonAlarmFromJson(json);
@override
List<Object?> get props => [
time,
roomName,
name,
tel,
];
const OneButtonAlarm({
required this.time,
required this.roomName,
required this.name,
required this.tel,
});
}
@JsonSerializable()
class ClientAlarm extends Equatable {
final String time;
final String content;
factory ClientAlarm.fromJson(Map<String, dynamic> json) =>_$ClientAlarmFromJson(json);
@override
List<Object?> get props => [
time,
content,
];
const ClientAlarm({
required this.time,
required this.content,
});
}
@JsonSerializable()
class ElderlyCareEquipmentReminder extends Equatable {
final String deviceNo;
final int deviceType;
final String content;
factory ElderlyCareEquipmentReminder.fromJson(Map<String, dynamic> json) =>_$ElderlyCareEquipmentReminderFromJson(json);
@override
List<Object?> get props => [
deviceNo,
deviceType,
content,
];
const ElderlyCareEquipmentReminder({
required this.deviceNo,
required this.deviceType,
required this.content,
}); });
} }

@ -7,10 +7,55 @@ part of 'fire_model.dart';
// ************************************************************************** // **************************************************************************
FireModel _$FireModelFromJson(Map<String, dynamic> json) => FireModel( FireModel _$FireModelFromJson(Map<String, dynamic> json) => FireModel(
alarmNo: json['alarmNo'] as String?, model: json['model'] as String,
alarmType: json['alarmType'] as String?, communityCode: json['communityCode'] as String,
deviceName: json['deviceName'] as String?, type: json['type'] as int,
deviceNo: json['deviceNo'] as String?, fireAlarm: json['fireAlarm'] == null
time: json['time'] as String?, ? null
type: json['type'] as int?, : FireAlarm.fromJson(json['fireAlarm'] as Map<String, dynamic>),
deviceAlarm: json['deviceAlarm'] == null
? null
: DeviceAlarm.fromJson(json['deviceAlarm'] as Map<String, dynamic>),
oneButtonAlarm: json['oneButtonAlarm'] == null
? null
: OneButtonAlarm.fromJson(
json['oneButtonAlarm'] as Map<String, dynamic>),
clientAlarm: json['clientAlarm'] == null
? null
: ClientAlarm.fromJson(json['clientAlarm'] as Map<String, dynamic>),
elderlyCareEquipmentReminder: json['elderlyCareEquipmentReminder'] == null
? null
: ElderlyCareEquipmentReminder.fromJson(
json['elderlyCareEquipmentReminder'] as Map<String, dynamic>),
);
FireAlarm _$FireAlarmFromJson(Map<String, dynamic> json) => FireAlarm(
time: json['time'] as String,
deviceName: json['deviceName'] as String,
);
DeviceAlarm _$DeviceAlarmFromJson(Map<String, dynamic> json) => DeviceAlarm(
time: json['time'] as String,
deviceName: json['deviceName'] as String,
);
OneButtonAlarm _$OneButtonAlarmFromJson(Map<String, dynamic> json) =>
OneButtonAlarm(
time: json['time'] as String,
roomName: json['roomName'] as String,
name: json['name'] as String,
tel: json['tel'] as String,
);
ClientAlarm _$ClientAlarmFromJson(Map<String, dynamic> json) => ClientAlarm(
time: json['time'] as String,
content: json['content'] as String,
);
ElderlyCareEquipmentReminder _$ElderlyCareEquipmentReminderFromJson(
Map<String, dynamic> json) =>
ElderlyCareEquipmentReminder(
deviceNo: json['deviceNo'] as String,
deviceType: json['deviceType'] as int,
content: json['content'] as String,
); );

@ -1,18 +1,23 @@
import 'dart:convert'; import 'dart:convert';
import 'package:aku_new_community_manager/style/app_style.dart'; import 'package:aku_new_community_manager/const/resource.dart';
import 'package:aku_new_community_manager/new_ui/new_home/new_home_page.dart';
import 'package:aku_new_community_manager/utils/dev_util.dart';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/src/size_extension.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:aku_new_community_manager/extensions/num_ext.dart';
import 'package:power_logger/power_logger.dart';
import 'alarm_models/fall_model.dart';
import 'alarm_models/fire_model.dart'; import 'alarm_models/fire_model.dart';
class FireDialog { class FireDialog {
static Future fireAlert(String subTitle) async { static fireAlarm(String content) async {
Map<String, dynamic> json = jsonDecode(subTitle); LoggerData.addData(content);
var json = jsonDecode(content);
int type = json['type'] as int; int type = json['type'] as int;
await Get.dialog( await Get.dialog(
@ -20,12 +25,11 @@ class FireDialog {
title: getImage(type), title: getImage(type),
content: Column( content: Column(
children: [ children: [
20.w.heightBox,
Text( Text(
getTitle(type), getTitle(type),
style: TextStyle(color: Colors.black, fontSize: 34.sp), style: TextStyle(color: Colors.black, fontSize: 34.sp),
), ),
10.w.heightBox, 10.hb,
Text( Text(
getContent(json, type), getContent(json, type),
style: TextStyle(color: Colors.black, fontSize: 26.sp), style: TextStyle(color: Colors.black, fontSize: 26.sp),
@ -38,6 +42,13 @@ class FireDialog {
child: Text('确认'), child: Text('确认'),
onPressed: () => Get.back(), onPressed: () => Get.back(),
), ),
if (DevUtil.isDev)
CupertinoDialogAction(
child: Text('清除所有弹窗'),
onPressed: () => Get.offAll(
() => NewHomePage(),
),
),
], ],
), ),
barrierDismissible: false, barrierDismissible: false,
@ -53,7 +64,7 @@ class FireDialog {
case 3: case 3:
return '管家端APP报警'; return '管家端APP报警';
case 4: case 4:
return '跌倒报警'; return '消息通知';
case 5: case 5:
return 'SOS紧急联系报警'; return 'SOS紧急联系报警';
default: default:
@ -61,28 +72,26 @@ class FireDialog {
} }
} }
static String getContent(Map<String, dynamic> json, int type) { static String getContent(dynamic json, int type) {
var alarmModel = FireModel.fromJson(json);
switch (type) { switch (type) {
case 1: case 1:
var alarmModel = FireModel.fromJson(json); return '${DateUtil.formatDateStr(alarmModel.fireAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)},'
return '${alarmModel.time},${alarmModel.deviceName}附近出现了火灾报警,请各位业主、租户保持镇静,不要慌乱,有序开始撤离!'; '${alarmModel.fireAlarm!.deviceName}附近出现了火灾报警,请各位业主、租户保持镇静,不要慌乱,有序开始撤离!';
case 2: case 2:
var alarmModel = FireModel.fromJson(json); return '${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)},'
return '${alarmModel.time},小区内有设备${alarmModel.deviceName}发生了报警,请物业负责人员尽快前往现场排查故障!'; '小区内有设备${alarmModel.deviceAlarm!.deviceName}发生了报警,请物业负责人员尽快前往现场排查故障!';
case 3: case 3:
var alarmModel = FireModel.fromJson(json); return '注意:\n${DateUtil.formatDateStr(alarmModel.oneButtonAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}'
return '注意:\n${alarmModel.time},${alarmModel.deviceNo}${alarmModel.deviceName}' + ',${alarmModel.oneButtonAlarm!.roomName} ${alarmModel.oneButtonAlarm!.name}在管家端app上点击了"一键报警",请尽快联系他沟通情况。\n'
'在管家端app上点击了"一键报警",请尽快联系他沟通情况。\n' + '${alarmModel.oneButtonAlarm!.name}联系方式:${alarmModel.oneButtonAlarm!.tel}\n'
'${alarmModel.deviceName}联系方式:${alarmModel.alarmNo}\n' + '如未能联系到${alarmModel.oneButtonAlarm!.name}。可择情报警';
'如未能联系到${alarmModel.deviceName}。可择情报警';
case 4: case 4:
var alarmModel = FallModel.fromJson(json); return '${DateUtil.formatDateStr(alarmModel.deviceAlarm!.time, format: DateFormats.zh_y_mo_d_h_m)}\n\n${alarmModel!.clientAlarm!.content}';
return '注意:\n\n有住户 ${alarmModel.userName} 发生跌倒情况,请及时上门或联系人员前往查看,住户联系方式:${alarmModel.tel}\n\n' +
'跌倒位置————\n${alarmModel.address},经度${alarmModel.lon},纬度${alarmModel.lat}\n\n如未能联系到住户,可择情报警';
case 5: case 5:
var alarmModel = FallModel.fromJson(json); return '注意:\n\n有住户使用了SOS紧急联系报警请及时上门或联系人员前往查看设备号${alarmModel!.elderlyCareEquipmentReminder!.deviceNo}'
return '注意:\n\n有住户 ${alarmModel.userName} 使用了SOS紧急联系报警请及时上门或联系人员前往查看住户联系方式${alarmModel.tel}\n\n' + '\n\n${alarmModel.elderlyCareEquipmentReminder!.content}';
'跌倒位置————\n${alarmModel.address},经度${alarmModel.lon},纬度${alarmModel.lat}\n\n如未能联系到住户,可择情报警';
default: default:
return ''; return '';
} }
@ -126,10 +135,7 @@ class FireDialog {
fit: BoxFit.fitHeight, fit: BoxFit.fitHeight,
); );
default: default:
return SizedBox( return SizedBox(width: 110.w, height: 110.w);
width: 110.w,
height: 110.w,
);
} }
} }
} }

Loading…
Cancel
Save