/// 代充商人 class PayForModel { int? imId; //商人在聊天系统中的ID String? userId; //商人在代充系统中的ID String? avatar; //头像 String? nickName; //昵称 String? welcomeMsg; //商人欢迎语 List? payInfos; //支持的支付方式 PayForModel(); PayForModel.fromJson(Map? 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 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? payType; PayInfoModel(); PayInfoModel.fromJson(Map? json) { json ??= {}; payMethod = json['payMethod']; payType = (json['payType'] as List?)?.cast().toList() ?? []; } Map toJson() => { "payMethod": payMethod, "payType": payType, }; PayInfoModel clone() => PayInfoModel() ..payMethod = payMethod ..payType = [...?payType]; } /// 代充配置,整体 base64 后透传给代充 H5 class DCModel { bool? isReconnect; /// 商人列表 为空则不展示代充 List? 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? 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 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? json) { json ??= {}; uid = json['uid']; if (json['gender'] is String) gender = json['gender']; name = json['name']; portrait = json['portrait']; } Map toJson() => { "uid": uid, "gender": gender, "name": name, "portrait": portrait, }; DcUserInfo clone() => DcUserInfo() ..uid = uid ..gender = gender ..name = name ..portrait = portrait; }