173 lines
4.1 KiB
Dart
173 lines
4.1 KiB
Dart
/// 代充商人
|
|
class PayForModel {
|
|
int? imId; //商人在聊天系统中的ID
|
|
String? userId; //商人在代充系统中的ID
|
|
String? avatar; //头像
|
|
String? nickName; //昵称
|
|
String? welcomeMsg; //商人欢迎语
|
|
List<PayInfoModel>? payInfos; //支持的支付方式
|
|
|
|
PayForModel();
|
|
|
|
PayForModel.fromJson(Map<String, dynamic>? json) {
|
|
json ??= {};
|
|
imId = json['imId'];
|
|
userId = json['userId'];
|
|
avatar = json['avatar'];
|
|
nickName = json['nickName'];
|
|
welcomeMsg = json['welcomeMsg'];
|
|
payInfos = (json['payInfos'] as List?)?.map((e) => PayInfoModel.fromJson(e)).toList();
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"imId": imId,
|
|
"userId": userId,
|
|
"avatar": avatar,
|
|
"welcomeMsg": welcomeMsg,
|
|
"nickName": nickName,
|
|
"payInfos": payInfos,
|
|
};
|
|
|
|
PayForModel clone() => PayForModel()
|
|
..imId = imId
|
|
..userId = userId
|
|
..avatar = avatar
|
|
..nickName = nickName
|
|
..welcomeMsg = welcomeMsg
|
|
..payInfos = payInfos?.map((e) => e.clone()).toList() ?? [];
|
|
}
|
|
|
|
/// 一种支付方式
|
|
class PayInfoModel {
|
|
int? payMethod;
|
|
List<int>? payType;
|
|
|
|
PayInfoModel();
|
|
|
|
PayInfoModel.fromJson(Map<String, dynamic>? json) {
|
|
json ??= {};
|
|
payMethod = json['payMethod'];
|
|
payType = (json['payType'] as List?)?.cast<int>().toList() ?? [];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"payMethod": payMethod,
|
|
"payType": payType,
|
|
};
|
|
|
|
PayInfoModel clone() => PayInfoModel()
|
|
..payMethod = payMethod
|
|
..payType = [...?payType];
|
|
}
|
|
|
|
/// 代充配置,整体 base64 后透传给代充 H5
|
|
class DCModel {
|
|
bool? isReconnect;
|
|
|
|
/// 商人列表 为空则不展示代充
|
|
List<PayForModel>? traders;
|
|
String? url;
|
|
String? ordUrl;
|
|
String? traderUrl;
|
|
|
|
int? chargeMoney;
|
|
|
|
///大额支付 小额支付
|
|
int? limit;
|
|
String? userAgent;
|
|
|
|
String? wsUrl;
|
|
|
|
String? picUrl;
|
|
|
|
/// 商品id,客户端添加,非后端返回,代充值给h5的时候使用
|
|
String? productInfo;
|
|
|
|
DcUserInfo? userInfo;
|
|
|
|
/// 支付渠道,客户端下单时赋值,非后端返回
|
|
String? channel;
|
|
|
|
DCModel();
|
|
|
|
DCModel.fromJson(Map<String, dynamic>? json) {
|
|
json ??= {};
|
|
isReconnect = json['isReconnect'];
|
|
//只取第一个商人,后续逻辑都按 traders[0] 走
|
|
final trader = (json['traders'] as List?)?.firstOrNull;
|
|
if (trader != null) traders = [PayForModel.fromJson(trader)];
|
|
url = json['url'];
|
|
wsUrl = json['wsUrl'];
|
|
picUrl = json['picUrl'];
|
|
ordUrl = json['ordUrl'];
|
|
traderUrl = json['traderUrl'];
|
|
userInfo = DcUserInfo.fromJson(json['userInfo']);
|
|
chargeMoney = json['chargeMoney'];
|
|
limit = json['limit'];
|
|
userAgent = json['userAgent'];
|
|
productInfo = json['productInfo'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"isReconnect": isReconnect,
|
|
"traders": traders,
|
|
"url": url,
|
|
"ordUrl": ordUrl,
|
|
"traderUrl": traderUrl,
|
|
"userInfo": userInfo,
|
|
"chargeMoney": chargeMoney,
|
|
"limit": limit,
|
|
"wsUrl": wsUrl,
|
|
"picUrl": picUrl,
|
|
"userAgent": userAgent,
|
|
"productInfo": productInfo,
|
|
"channel": channel,
|
|
};
|
|
|
|
DCModel clone() => DCModel()
|
|
..isReconnect = isReconnect
|
|
..traders = traders?.map((e) => e.clone()).toList() ?? []
|
|
..url = url
|
|
..ordUrl = ordUrl
|
|
..traderUrl = traderUrl
|
|
..userInfo = userInfo?.clone()
|
|
..chargeMoney = chargeMoney
|
|
..limit = limit
|
|
..userAgent = userAgent
|
|
..wsUrl = wsUrl
|
|
..picUrl = picUrl
|
|
..productInfo = productInfo
|
|
..channel = channel;
|
|
}
|
|
|
|
/// 代充里透传给 H5 的用户信息
|
|
class DcUserInfo {
|
|
int? uid;
|
|
String? gender;
|
|
String? name;
|
|
String? portrait;
|
|
|
|
DcUserInfo();
|
|
|
|
DcUserInfo.fromJson(Map<String, dynamic>? json) {
|
|
json ??= {};
|
|
uid = json['uid'];
|
|
if (json['gender'] is String) gender = json['gender'];
|
|
name = json['name'];
|
|
portrait = json['portrait'];
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"uid": uid,
|
|
"gender": gender,
|
|
"name": name,
|
|
"portrait": portrait,
|
|
};
|
|
|
|
DcUserInfo clone() => DcUserInfo()
|
|
..uid = uid
|
|
..gender = gender
|
|
..name = name
|
|
..portrait = portrait;
|
|
}
|