feat: 工具类提交。
This commit is contained in:
1 parent
a2b38fa1e8
commit
557f900187
20 files changed
+2026
-3
No files matched your search
@@ -0,0 +1,60 @@
|
||||
import 'package:novyronst/common/model/parse_model.dart';
|
||||
|
||||
|
||||
class NovyronstUser {
|
||||
final String customerId;
|
||||
final bool isTourist;
|
||||
final String userLevel;
|
||||
final String avator;
|
||||
final String? familyName;
|
||||
final String? givingName;
|
||||
|
||||
const NovyronstUser({
|
||||
required this.customerId,
|
||||
required this.isTourist,
|
||||
required this.userLevel,
|
||||
required this.avator,
|
||||
this.familyName,
|
||||
this.givingName,
|
||||
});
|
||||
|
||||
factory NovyronstUser.fromJson(Map<String, dynamic> json) {
|
||||
return NovyronstUser(
|
||||
customerId: parseString(json['customer_id']),
|
||||
isTourist: parseBool(json['is_tourist']),
|
||||
userLevel: parseString(json['user_level']),
|
||||
avator: parseString(json['avator']),
|
||||
familyName: json['family_name'] as String?,
|
||||
givingName: parseString(json['giving_name']),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'customer_id': customerId,
|
||||
'is_tourist': isTourist,
|
||||
'user_level': userLevel,
|
||||
'avator': avator,
|
||||
'family_name': familyName,
|
||||
'giving_name': givingName,
|
||||
};
|
||||
}
|
||||
|
||||
NovyronstUser copyWith({
|
||||
String? customerId,
|
||||
bool? isTourist,
|
||||
String? userLevel,
|
||||
String? avator,
|
||||
String? familyName,
|
||||
String? givingName,
|
||||
}) {
|
||||
return NovyronstUser(
|
||||
customerId: customerId ?? this.customerId,
|
||||
isTourist: isTourist ?? this.isTourist,
|
||||
userLevel: userLevel ?? this.userLevel,
|
||||
avator: avator ?? this.avator,
|
||||
familyName: familyName ?? this.familyName,
|
||||
givingName: givingName ?? this.givingName,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
bool parseBool(dynamic value) {
|
||||
if (value == null) return false;
|
||||
if (value is bool) return value;
|
||||
if (value is num) return value != 0;
|
||||
if (value is String) {
|
||||
final v = value.trim().toLowerCase();
|
||||
return v == 'true' || v == '1' || v == 'yes' || v == 'y';
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int parseInt(dynamic value) {
|
||||
if (value == null) return 0;
|
||||
if (value is int) return value;
|
||||
if (value is double) return value.toInt();
|
||||
if (value is num) return value.toInt();
|
||||
if (value is String) return int.tryParse(value) ?? 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
String parseString(dynamic value) {
|
||||
if (value == null) return '';
|
||||
return value.toString();
|
||||
}
|
||||
|
||||
List<String>? parseStringList(dynamic value) {
|
||||
if (value == null) return null;
|
||||
if (value is List) {
|
||||
return value.map((item) => parseString(item)).toList();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
List<int>? parseIntList(dynamic value) {
|
||||
if (value == null) return null;
|
||||
if (value is List) {
|
||||
return value.map((item) => parseInt(item)).toList();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Map<String, dynamic>? parseMap(dynamic value) {
|
||||
if (value is Map<String, dynamic>) return value;
|
||||
if (value is Map) return Map<String, dynamic>.from(value);
|
||||
return null;
|
||||
}
|
||||
|
||||
List<T> parseModelList<T>(
|
||||
dynamic value,
|
||||
T Function(Map<String, dynamic> json) fromJson,
|
||||
) {
|
||||
if (value is! List) return <T>[];
|
||||
return value
|
||||
.whereType<Map>()
|
||||
.map((item) => fromJson(Map<String, dynamic>.from(item)))
|
||||
.toList();
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
class RegisterModel {
|
||||
final String token;
|
||||
final int customerId;
|
||||
final bool? autoLogin;
|
||||
final int touristId;
|
||||
|
||||
RegisterModel({required this.token, required this.customerId, this.autoLogin, required this.touristId});
|
||||
|
||||
factory RegisterModel.fromJson(Map<String, dynamic> json) {
|
||||
return RegisterModel(
|
||||
token: json['token'],
|
||||
customerId: json['customer_id'],
|
||||
autoLogin: json['auto_login'],
|
||||
touristId: json['tourist_id'],
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user