You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
4.0 KiB
127 lines
4.0 KiB
// 数据模型类 - 根据真实API返回格式调整
|
|
import 'user_info_data.dart';
|
|
|
|
class MarriageData {
|
|
final String miId;
|
|
final String userId;
|
|
final String profilePhoto;
|
|
final String nickName;
|
|
final bool isRealNameCertified;
|
|
final String birthYear;
|
|
final String birthDate;
|
|
final int age;
|
|
final int provinceCode;
|
|
final String provinceName;
|
|
final int cityCode;
|
|
final String cityName;
|
|
final int districtCode;
|
|
final String districtName;
|
|
final String describeInfo;
|
|
final String createTime;
|
|
final int genderCode;
|
|
final List<PhotoItem> photoList;
|
|
|
|
// 为了兼容UI展示,添加一些计算属性
|
|
String get name => nickName;
|
|
String get avatar => profilePhoto.trim().replaceAll('`', ''); // 移除照片URL中的反引号
|
|
String get city => cityName;
|
|
String get description => describeInfo;
|
|
List<String> get images => photoList.map((photo) => photo.photoUrl.trim().replaceAll('`', '')).toList();
|
|
|
|
MarriageData({
|
|
required this.miId,
|
|
required this.userId,
|
|
required this.profilePhoto,
|
|
required this.nickName,
|
|
required this.isRealNameCertified,
|
|
required this.birthYear,
|
|
required this.birthDate,
|
|
required this.age,
|
|
required this.provinceCode,
|
|
required this.provinceName,
|
|
required this.cityCode,
|
|
required this.cityName,
|
|
required this.districtCode,
|
|
required this.districtName,
|
|
required this.describeInfo,
|
|
required this.createTime,
|
|
required this.photoList,
|
|
required this.genderCode,
|
|
});
|
|
|
|
factory MarriageData.fromJson(Map<String, dynamic> json) {
|
|
return MarriageData(
|
|
miId: json['miId'] ?? '',
|
|
userId: json['userId'] ?? '',
|
|
profilePhoto: json['profilePhoto'] ?? '',
|
|
nickName: json['nickName'] ?? '',
|
|
isRealNameCertified: json['isRealNameCertified'] ?? false,
|
|
birthYear: json['birthYear'] ?? '',
|
|
birthDate: json['birthDate'] ?? '',
|
|
age: json['age'] ?? 0,
|
|
provinceCode: json['provinceCode'] ?? 0,
|
|
provinceName: json['provinceName'] ?? '',
|
|
cityCode: json['cityCode'] ?? 0,
|
|
cityName: json['cityName'] ?? '',
|
|
districtCode: json['districtCode'] ?? 0,
|
|
districtName: json['districtName'] ?? '',
|
|
describeInfo: json['describeInfo'] ?? '',
|
|
createTime: json['createTime'] ?? '',
|
|
genderCode: json['genderCode'] ?? 0,
|
|
photoList: (json['photoList'] as List<dynamic>?)?.map((e) => PhotoItem.fromJson(e as Map<String, dynamic>)).toList() ?? [],
|
|
);
|
|
}
|
|
|
|
/// 从 UserInfoData 转换为 MarriageData
|
|
factory MarriageData.fromUserInfoData(UserInfoData userInfo) {
|
|
return MarriageData(
|
|
miId: userInfo.miId ?? '',
|
|
userId: userInfo.userId ?? '',
|
|
profilePhoto: userInfo.profilePhoto ?? '',
|
|
nickName: userInfo.nickName ?? '',
|
|
isRealNameCertified: userInfo.identityCard != null && userInfo.identityCard!.isNotEmpty,
|
|
birthYear: userInfo.birthYear ?? '',
|
|
birthDate: userInfo.birthDate ?? '',
|
|
age: userInfo.age?.toInt() ?? 0,
|
|
provinceCode: userInfo.provinceCode?.toInt() ?? 0,
|
|
provinceName: userInfo.provinceName ?? '',
|
|
cityCode: userInfo.cityCode?.toInt() ?? 0,
|
|
cityName: userInfo.cityName ?? '',
|
|
districtCode: userInfo.districtCode?.toInt() ?? 0,
|
|
districtName: userInfo.districtName ?? '',
|
|
describeInfo: userInfo.describeInfo ?? '',
|
|
createTime: userInfo.createTime ?? '',
|
|
genderCode: userInfo.genderCode?.toInt() ?? 0,
|
|
photoList: (userInfo.photoList ?? []).map((photo) => PhotoItem(
|
|
photoUrl: photo.photoUrl ?? '',
|
|
auditStatus: photo.auditStatus,
|
|
id: photo.id ?? '',
|
|
miId: photo.miId ?? 0,
|
|
)).toList(),
|
|
);
|
|
}
|
|
}
|
|
|
|
// 照片项数据模型
|
|
class PhotoItem {
|
|
final String photoUrl;
|
|
final String? id;
|
|
final num? miId;
|
|
final dynamic auditStatus;
|
|
|
|
PhotoItem({
|
|
required this.photoUrl,
|
|
this.id,
|
|
this.miId,
|
|
this.auditStatus,
|
|
});
|
|
|
|
factory PhotoItem.fromJson(Map<String, dynamic> json) {
|
|
return PhotoItem(
|
|
photoUrl: json['photoUrl'] ?? '',
|
|
auditStatus: json['auditStatus'],
|
|
id: json['id'],
|
|
miId: json['miId'],
|
|
);
|
|
}
|
|
}
|